В этом примере показано, как задать составную условную модель среднего и отклонения с помощью arima
.
Загрузите данные NASDAQ, включенные в тулбокс. Преобразуйте ежедневное закрытие составного ряда индексов в процентный возвращаемый ряд.
load Data_EquityIdx nasdaq = DataTable.NASDAQ; r = 100*price2ret(nasdaq); T = length(r); figure plot(r) xlim([0 T]) title('NASDAQ Daily Returns')
Возвраты, по-видимому, колеблются вокруг постоянного уровня, но демонстрирует волатильность кластеризации. Большие изменения в возвратах, как правило, кластеризуются вместе, а небольшие изменения, как правило, кластеризуются вместе. То есть серия проявляет условную гетероскедастичность.
Возвраты имеют относительно высокую частоту. Поэтому ежедневные изменения могут быть небольшими. Для численной устойчивости рекомендуется масштабировать такие данные.
Постройте график функции автокорреляции (ACF) и функции частичной автокорреляции (PACF) для возврата ряда.
figure subplot(2,1,1) autocorr(r) subplot(2,1,2) parcorr(r)
Автокорреляционные функции предполагают, что существует значительная автокорреляция при задержке.
Проведите Q-тест Ljung-Box с задержкой 5.
[h,p] = lbqtest(r,'Lags',5)
h = logical
1
p = 0.0120
Нулевая гипотеза о том, что все автокорреляции 0 до лага 5, отклоняется (h = 1
).
Постройте график выборки ACF и PACF квадратного возвратного ряда.
figure subplot(2,1,1) autocorr(r.^2) subplot(2,1,2) parcorr(r.^2)
Автокорреляционные функции показывают значительную последовательную зависимость, что предполагает, что ряд является условно гетероскедастическим.
Проведите тест ARCH Engle. Протестируйте нулевую гипотезу об отсутствии условной гетероскедастичности против альтернативной гипотезы модели ARCH с двумя лагами (что локально эквивалентно модели GARCH (1,1 )).
[h,p] = archtest(r-mean(r),'lags',2)
h = logical
1
p = 0
Нулевая гипотеза отвергается в пользу альтернативной гипотезы (h = 1
).
Задайте модель AR (1) для условных средних возвратов NASDAQ и модель GARCH (1,1) для условного отклонения. Это модель вида
где ,
и является независимым и идентично распределенным стандартизированным Гауссовым процессом.
Mdl = arima('ARLags',1,'Variance',garch(1,1))
Mdl = arima with properties: Description: "ARIMA(1,0,0) Model (Gaussian Distribution)" Distribution: Name = "Gaussian" P: 1 D: 0 Q: 0 Constant: NaN AR: {NaN} at lag [1] SAR: {} MA: {} SMA: {} Seasonality: 0 Beta: [1×0] Variance: [GARCH(1,1) Model]
Выход модели показывает, что garch
модель сохранена в Variance
свойство arima
модель, Mdl
.