Модель ARMA-GARCH и ошибка прогноза
Я хочу спрогнозировать временной ряд цен индекса с ARMA(2,2)-GARCH(1,1)
Модель в R. Насколько я понимаю, остатки в этой модели в теории являются случайной величиной с нулевым средним и условной дисперсией sigma^2(t+h)
при этом среднее уравнение такое же, как в модели ARMA(2,2). Я пытался прогнозировать с помощью методов ugarchspec
, ugarchfit
а также ugarchforecast
из пакета rugarch
, Вот мой код:
GARCHspec<-ugarchspec(variance.model = list(model = "sGARCH", garchOrder = c(1, 1)),mean.model = list(armaOrder = c(2,2),include.mean = TRUE),distribution.model = "sstd")
GARCHfit<-ugarchfit(GARCHspec,closingkursu)
GARCHforecast<-ugarchforecast(GARCHfit,n.ahead=50)
с закрытием курса, являющимся моим временным рядом, и я хочу сделать прогноз на 50 дней вперед с фиксированными параметрами. Теперь вывод следующий:
*------------------------------------*
* GARCH Model Forecast *
*------------------------------------*
Model: sGARCH
Horizon: 50
Roll Steps: 0
Out of Sample: 0
0-roll forecast [T0=1976-11-23 01:00:00]:
Series Sigma
T+1 10.39 0.7406
T+2 10.51 0.8011
T+3 10.62 0.8561
T+4 10.72 0.9066
T+5 10.82 0.9534
T+6 10.92 0.9969
T+7 11.01 1.0377
T+8 11.10 1.0761
T+9 11.18 1.1122
T+10 11.27 1.1465
T+11 11.35 1.1790
T+12 11.43 1.2099
T+13 11.52 1.2393
T+14 11.60 1.2674
T+15 11.67 1.2943
T+16 11.75 1.3200
T+17 11.83 1.3447
T+18 11.90 1.3683
T+19 11.98 1.3910
T+20 12.05 1.4129
T+21 12.12 1.4339
T+22 12.19 1.4541
T+23 12.26 1.4736
T+24 12.33 1.4924
T+25 12.40 1.5105
T+26 12.46 1.5280
T+27 12.53 1.5449
T+28 12.59 1.5613
T+29 12.66 1.5771
T+30 12.72 1.5924
T+31 12.78 1.6072
T+32 12.84 1.6215
T+33 12.90 1.6354
T+34 12.96 1.6488
T+35 13.02 1.6618
T+36 13.08 1.6745
T+37 13.13 1.6867
T+38 13.19 1.6986
T+39 13.24 1.7101
T+40 13.30 1.7213
T+41 13.35 1.7321
T+42 13.40 1.7426
T+43 13.45 1.7529
T+44 13.50 1.7628
T+45 13.55 1.7724
T+46 13.60 1.7818
T+47 13.65 1.7909
T+48 13.70 1.7998
T+49 13.74 1.8084
T+50 13.79 1.8168
Похоже, что метод принимает среднее значение невязок (равное 0), потому что оно не меняется, когда я прогнозирую его несколько раз, а также прогноз выглядит сглаженным, чтобы содержать случайную часть (всегда повышающуюся). Теперь мой вопрос, могу ли я установить остатки случайной величины, скажем, N-distributed(0,sigma^2(t))
вместо установки остатков = 0. Возможно ли сделать это в этом методе или мне нужно делать кодирование "вручную" (что было бы довольно сложно, потому что я новичок в R с ограниченным опытом).