Back to Projects

Forecasting Volatility with Nontraditional Data

Time SeriesARIMAGARCHFinancial MarketsR

Forecasting Volatility with Nontraditional Data

Overview

This project explores whether alternative data sources can improve volatility forecasting beyond traditional GARCH models.

Methodology

We combine classical volatility models with features derived from:

R: Enhanced GARCH Model
library(rugarch)
library(quantmod)
library(tidyverse)

Standard GARCH(1,1) specification

spec_base <- ugarchspec( variance.model = list(model = "sGARCH", garchOrder = c(1, 1)), mean.model = list(armaOrder = c(1, 0)), distribution.model = "std" )

GARCH-X with external regressors

spec_enhanced <- ugarchspec( variance.model = list( model = "sGARCH", garchOrder = c(1, 1), external.regressors = as.matrix(alt_data[, c("vix_lag", "news_sentiment", "social_volume")]) ), mean.model = list(armaOrder = c(1, 0)), distribution.model = "std" )

Fit models

fit_base <- ugarchfit(spec_base, returns) fit_enhanced <- ugarchfit(spec_enhanced, returns)

Compare information criteria

cat("Base AIC:", infocriteria(fit_base)[1], "\n") cat("Enhanced AIC:", infocriteria(fit_enhanced)[1], "\n")

Results

The enhanced model with external regressors achieved: