В этом примере показано, как предсказать условную модель отклонения использование forecast
.
Загрузите данные об обменном курсе валюты Дойчмарки/Британского фунта, включенные с тулбоксом, и преобразуйте в возвраты. Для числовой устойчивости преобразуйте, возвращается к проценту, возвращается.
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.3897e-17 GARCH{1} 0.80452 0.016038 50.162 0 ARCH{1} 0.15433 0.013852 11.141 7.9449e-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 шагов.