В этом примере показано, как предсказать ответы и условные отклонения от составного условного среднего значения и модели отклонения.
Загрузите данные 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.0010108 0.00016919 5.9744 2.3088e-09 AR{1} 0.14268 0.019128 7.4593 8.6982e-14 DoF 7.6096 0.92474 8.2289 1.8891e-16 GARCH(1,1) Conditional Variance Model (t Distribution): Value StandardError TStatistic PValue __________ _____________ __________ __________ Constant 1.5013e-06 6.2224e-07 2.4127 0.015833 GARCH{1} 0.89624 0.011398 78.633 0 ARCH{1} 0.099554 0.011663 8.5358 1.392e-17 DoF 7.6096 0.92474 8.2289 1.8891e-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).