预测包中的Arima函数和predict()

时间:2017-03-10 14:06:48

标签: r time-series prediction

我有一个名为Price的系列,有30个观察结果:

Price
[1] 0.2946825 0.2962453 0.2995118 0.3250501 0.3413176 0.3212861 0.3285121
 [8] 0.3223009 0.3219386 0.3049079 0.3046129 0.2912507 0.2947570 0.2947570
[15] 0.2930427 0.2877321 0.2875071 0.2929681 0.2890062 0.2896052 0.2863812
[22] 0.2826947 0.2799019 0.2758878 0.2742928 0.2847277 0.2839752 0.2919977
[29] 0.2797507 0.2739887

我运行此命令Prediction_Price_30 <-predict(Arima((Price[1:29]),order=c(1,1,0)),n.ahea=1)以便使用完全29次观察生成Arima(1,1,0)模型,并使用“一个提前”预测第30个模型。

结果为0.2805374

Time Series:
Start = 30 
End = 30 
Frequency = 1 
[1] 0.2805374

我想知道predict函数如何进行预测。它是否将第29次实际观测(通过差分)插入到生成的ARIMA(1,1,0)模型中并计算第30个值的预测值?

summary(Arima((Price[1:29]),order=c(1,1,0)))
Series: (Price[1:29]) 
ARIMA(1,1,0)                    

Coefficients:
          ar1
      -0.0662
s.e.   0.1910

sigma^2 estimated as 0.0001622:  log likelihood=82.96
AIC=-161.91   AICc=-161.43   BIC=-159.25

Training set error measures:
                        ME       RMSE         MAE         MPE      MAPE
Training set -0.0006482771 0.01228864 0.008384534 -0.05293643 0.6172495
                  MASE        ACF1
Training set 0.9673133 0.003299951

我的意思是Price_prediction30 = -0.0662*(Price_actual29 - Price_actual28)

1 个答案:

答案 0 :(得分:0)

我认为这个问题应该在交叉验证中提出。

然而,要回答你的问题。当你指定d = 1时,你认为两个成功值之间的差异是&#39;&#39;&#39;&#39;&#39;是不变的。

Ŷt  =  μ  + Yt-1  +  ϕ1 (Yt-1 - Yt-2)