0

我正在做一个预测练习。首选模型是 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 模型中的差异内化并具有与第一个模型相同的结果模型?

谢谢

4

1 回答 1

0

在第一个第一个有马模型中,

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)
于 2017-03-16T20:36:27.360 回答