使用Arima(

时间:2017-02-21 10:25:35

标签: r statistics forecasting arima

我正在进行预测练习。首选模型是ARIMA(0,0,1)(0,1,1)4,其中有三个外生变量(Forestalling.1,Forestalling.2,Break)。

我的因变量是Pmean,平均房价,外生变量是虚拟变量,表示立法和财产危机的变化(这些变量由以下值0,1,-1组成) )。

我最初的方法是区分原始和适合Arima模型;然而,当试图预测系列时,这会给我带来麻烦,因为预测是在静止系列上完成的 - diff(log(x$Pmean),4)

fit = Arima(diff(log(x$Pmean),4),
      order=c(1,0,0),
      seasonal=list(order=c(0,0,1), period =4),
      xreg=xregvariables)

               Estimate Std. Error z value  Pr(>|z|)    
ar1             0.686212   0.128593  5.3363 9.485e-08 ***
sma1           -0.583000   0.110908 -5.2566 1.467e-07 ***
intercept       0.101515   0.010318  9.8386 < 2.2e-16 ***
Forestalling 1  0.035008   0.011365  3.0804  0.002067 ** 
Forestalling 2 -0.033731   0.013151 -2.5649  0.010320 *  
Break          -0.087386   0.013113 -6.6640 2.664e-11 ***

AIC=-216.75

我试图选择一个替代模型,其中包含了季节性差异,但结果不是最优的,我的估计并不重要。他们甚至为一些参数返回不同的方向(Forestalling2);它在原始模型中具有负面影响,在第二个模型中具有正(空)效果。

  fit = Arima(log(x$Pmean)
       order=c(1,0,0),
       seasonal=list(order=c(0,1,1), period =4),
       xreg=xregvariables ,
       include.drift = TRUE)

z test of coefficients:

                  Estimate  Std. Error z value  Pr(>|z|)    
ar1             0.97042096  0.03430919 28.2846 < 2.2e-16 ***
sma1           -0.53044592  0.13689248 -3.8749 0.0001067 ***
drift           0.01407096  0.01016345  1.3845 0.1662158    
Forestalling 1  0.03475176  0.01210626  2.8706 0.0040974 ** 
Forestalling 2  0.00094803  0.01343471  0.0706 0.9437434    
Break          -0.01077423  0.02376049 -0.4535 0.6502236   

AIC=-206.84

有人知道是否可以在我的第一个模型中重新转换系列,以便我可以使用模型估算来预测原始系列log(x$Pmean)x$Pmean

如果不可能,是否可以将第二个Arima模型中的差分内化并且具有与第一个模型相同的结果模型?

由于

1 个答案:

答案 0 :(得分:0)

在第一个第一个Arima模型中,

fit=Arima(diff(log(x$Pmean),4),
  order=c(1,0,0),
  seasonal=list(order=c(0,0,1), period =4),
  xreg=xregvariables)

看起来您手动获取第一个季节性差异。这应该等同于Arima模型,

fit=Arima(log(x$Pmean),
  order=c(1,0,0),
  seasonal=list(order=c(0,1,1), period =4),
  xreg=xregvariables)

采取季节性的第一个区别。然后,您可以使用“fpp”包自动形成记录数据的预测。

library(fpp)
forecast(fit,h=12,xreg=x_test)