Этот пример показывает, как предсказать ответы и условные отклонения от составного условного среднего значения и модели отклонения.
Загрузите данные 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.0010147 0.00016937 5.9907 2.0895e-09 AR{1} 0.14317 0.019155 7.4745 7.7512e-14 DoF 7.6316 0.92896 8.2152 2.1177e-16 GARCH(1,1) Conditional Variance Model (t Distribution): Value StandardError TStatistic PValue __________ _____________ __________ __________ Constant 1.5253e-06 6.2591e-07 2.4369 0.014814 GARCH{1} 0.89538 0.011474 78.033 0 ARCH{1} 0.10037 0.011749 8.5428 1.3103e-17 DoF 7.6316 0.92896 8.2152 2.1177e-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).