В этом примере показано, как спрогнозировать отклики и условные отклонения из составной условной модели среднего и дисперсии.
Загрузите данные NASDAQ, включенные в тулбокс. Подбор условной модели среднего и отклонения к данным.
load Data_EquityIdx nasdaq = DataTable.NASDAQ; r = price2ret(nasdaq); N = length(r); Mdl = arima('ARLags',1,'Variance',garch(1,1),... 'Distribution','t'); EstMdl = estimate(Mdl,r,'Variance0',{'Constant0',0.001});
ARIMA(1,0,0) Model (t Distribution): Value StandardError TStatistic PValue _________ _____________ __________ __________ Constant 0.0009524 0.00017051 5.5855 2.3308e-08 AR{1} 0.13987 0.019051 7.342 2.1037e-13 DoF 8.3525 1.0273 8.1308 4.266e-16 GARCH(1,1) Conditional Variance Model (t Distribution): Value StandardError TStatistic PValue __________ _____________ __________ __________ Constant 1.6076e-06 6.1538e-07 2.6123 0.0089925 GARCH{1} 0.89701 0.011191 80.153 0 ARCH{1} 0.095254 0.010975 8.679 3.9935e-18 DoF 8.3525 1.0273 8.1308 4.266e-16
[E0,V0] = infer(EstMdl,r);
Использование forecast
для вычисления прогнозов MMSE по возвратам и условным отклонениям для 1000-периодного будущего горизонта. Используйте наблюдаемые возвраты и выведенные невязки и условные отклонения в качестве предварительных образцов данных.
[Y,YMSE,V] = forecast(EstMdl,1000,r,'E0',E0,'V0',V0); upper = Y + 1.96*sqrt(YMSE); lower = Y - 1.96*sqrt(YMSE); figure subplot(2,1,1) plot(r,'Color',[.75,.75,.75]) hold on plot(N+1:N+1000,Y,'r','LineWidth',2) plot(N+1:N+1000,[upper,lower],'k--','LineWidth',1.5) xlim([0,N+1000]) title('Forecasted Returns') hold off subplot(2,1,2) plot(V0,'Color',[.75,.75,.75]) hold on plot(N+1:N+1000,V,'r','LineWidth',2); xlim([0,N+1000]) title('Forecasted Conditional Variances') hold off
Прогнозы условных отклонений сходятся к асимптотическому отклонению модели условных отклонений GARCH. Прогнозируемые возвраты сходятся к оценочной константе модели (безусловному среднему условной средней модели AR).