在某些情况下,我必须手动进行预测,这意味着使用模型的公式。对于 AR(p) 模型,这很容易。但是对于 ARIMA 模型 (p, d, q),d> = 1,我有点困难。下面的例子,我用模型 AR(2) 计算。我有 1990 年到 2010 年的系列,我需要 2011 年的预测:
> a<-c(198,150,120,84,150,136,80,128,160,132,144,234,300,312,400,468,420,500,650,612,516)
> series<-ts(a,frequency=1,start=c(1990))
> fit<-Arima(series,c(2,0,0),method="ML")
> fit
Series: series
ARIMA(2,0,0) with non-zero mean
Coefficients:
ar1 ar2 intercept
1.1923 -0.2881 305.3748
s.e. 0.2174 0.2346 111.5251
sigma^2 estimated as 3727: log likelihood=-117.2
AIC=242.4 AICc=244.9 BIC=246.58
我收到了模型AR(2)的计算公式:
y[t]=305.3748+1.1923*y[t-1]-0.2881*y[t-2]
我对 2011 年的预测:
y[2011] = 305.3748+1.1923*y[2010]-0.2881*y[2009]
= 305.3748+1.1923*516-0.2881*612
= 744
但是,当我拟合 ARIMA 模型(2,1,0)时:
> fit2<-Arima(series,c(2,1,0),method="ML")
> fit2
Series: series
ARIMA(2,1,0)
Coefficients:
ar1 ar2
0.2561 -0.3494
s.e. 0.2196 0.2117
sigma^2 estimated as 3489: log likelihood=-110.1
AIC=226.2 AICc=227.7 BIC=229.19
当d = 1时我不知道如何写公式?还有一个问题,为什么当我用 function 进行预测时forecast()
,结果与 - 当我用公式计算时不同?
> forecast(fit,h=1)
Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
2011 468.1754 389.9369 546.4138 348.52 587.8308