В этом примере показано, как спрогнозировать модель условного отклонения с помощью forecast
.
Загрузите данные курса иностранного обмена Deutschmark/British pound, включенные в тулбокс, и преобразуйте в возвраты. Для численной устойчивости преобразуйте возврат в процентные возвраты.
load Data_MarkPound
r = price2ret(Data);
pR = 100*r;
T = length(r);
Задайте и подбирайте модель GARCH (1,1).
Mdl = garch(1,1); EstMdl = estimate(Mdl,pR);
GARCH(1,1) Conditional Variance Model (Gaussian Distribution): Value StandardError TStatistic PValue ________ _____________ __________ __________ Constant 0.010868 0.0012972 8.3779 5.3898e-17 GARCH{1} 0.80452 0.016038 50.162 0 ARCH{1} 0.15432 0.013852 11.141 7.9447e-29
Используйте подобранную модель, чтобы сгенерировать прогнозы MMSE в 200-периодическом горизонте. Используйте наблюдаемую последовательность возвратов в качестве предварительных образцов данных. По умолчанию forecast
выводит соответствующие предварительные условные отклонения. Сравните асимптоту прогноза отклонения с теоретическим безусловным отклонением модели GARCH (1,1 ).
v = forecast(EstMdl,200,pR); sig2 = EstMdl.Constant/(1-EstMdl.GARCH{1}-EstMdl.ARCH{1}); figure plot(v,'r','LineWidth',2) hold on plot(ones(200,1)*sig2,'k--','LineWidth',1.5) xlim([0,200]) title('Forecast Conditional Variance') legend('Forecast','Theoretical','Location','SouthEast') hold off
Прогнозы MMSE сходятся к теоретическому безусловному отклонению примерно после 160 шагов.