Модель VAR: как рассчитать 95% интервал прогноза для статических прогнозов на один период вперед
Я создал модель VAR с двумя лагами, используя только часть данных (series_mod), и хотел бы оценить ее по остальным данным (series_fore):
library(vars)
data(Canada)
series_mod = window(Canada, start = c(1990, 1), end = c(1998, 4))
series_fore = window(Canada, start = c(1999, 1), end = c(2000, 4))
Последние два наблюдения за series_mod:
e prod rw U
1998 Q3 956.0561 412.2659 465.7478 8.17
1998 Q4 956.7966 412.9106 465.8995 8.03
Модель:
mod = VAR(series_mod, p = 2, type = "const")
summary(mod)
Коэффициенты для e:
e = e.l1 + prod.l1 + rw.l1 + U.l1 + e.l2 + prod.l2 + rw.l2 + U.l2 + const
Estimate Std. Error t value Pr(>|t|)
e.l1 1.45052 0.28617 5.069 3.12e-05 ***
prod.l1 0.03016 0.09467 0.319 0.753
rw.l1 0.03656 0.09443 0.387 0.702
U.l1 0.40652 0.28380 1.432 0.164
e.l2 -0.34092 0.32648 -1.044 0.306
prod.l2 0.05677 0.10165 0.558 0.582
rw.l2 -0.06119 0.08542 -0.716 0.480
U.l2 0.04745 0.33353 0.142 0.888
const -132.60074 107.65099 -1.232 0.229
Серия для прогноза, series_fore:
series_fore
e prod rw U
1999 Q1 957.3865 413.8294 466.4099 7.90
1999 Q2 958.0634 414.2242 466.9552 7.87
1999 Q3 958.7166 415.1678 467.6281 7.53
1999 Q4 959.4881 415.7016 467.7026 6.93
2000 Q1 960.3625 416.8674 469.1348 6.80
2000 Q2 960.7834 417.6104 469.3364 6.70
2000 Q3 961.0290 418.0030 470.0117 6.93
2000 Q4 961.7657 417.2667 469.6472 6.87
Но я не хочу делать динамический прогноз, который по умолчанию реализован в библиотеке vars (когда для следующих прогнозов модель использует ранее предсказанные значения):
predict(mod, n.ahead = 8, ci = 0.95)
Instead, I would like to make static forecasts - while making forecasts, on each step I want to use actual available data. For example, for e - 3 static forecasts:
1999, Q1
1.45052 * 956.7966 +
0.03016 * 412.9106 +
0.03656 * 465.8995 +
0.40652 * 8.03 +
-0.34092 * 956.0561 +
0.05677 * 412.2659 +
-0.06119 * 465.7478 +
0.04745 * 8.17 +
-132.60074 = 957.3571
1999, Q2
1.45052 * 957.3865 +
0.03016 * 413.8294 +
0.03656 * 466.4099 +
0.40652 * 7.90 +
-0.34092 * 956.7966 +
0.05677 * 412.9106 +
-0.06119 * 465.8995 +
0.04745 * 8.03 +
-132.60074 = 957.9745
1999, Q3
1.45052 * 958.0634 +
0.03016 * 414.2242 +
0.03656 * 466.9552 +
0.40652 * 7.87 +
-0.34092 * 957.3865 +
0.05677 * 413.8294 +
-0.06119 * 466.4099 +
0.04745 * 7.90 +
-132.60074 = 958.7897
And so on till 2000, Q4.
My question is: how in this case can I calculate 95% prediction intervals for each of my static predictions (957.3571, 957.9745, 958.7897,..)?
P.S. I guess that prediction interval should be flat. Here is example from EViews (not for this model) with static forecast:
In contrast - dynamic forecast with increasing prediction intervals for the same model: