R中的Arima公式

Arima formula in R

我正在使用 "Arima" 为 "Airpassengers" 构建 MA(1) 模型,代码如下:

 test3=Arima(AirPassengers,c(0,0,1))

结果是

Series: AirPassengers 
ARIMA(0,0,1)            with non-zero mean 

Coefficients:
         ma1      mean
      0.9642  280.6464
s.e.  0.0214   10.5788

sigma^2 estimated as 4265:  log likelihood=-806.43
AIC=1618.86   AICc=1619.03   BIC=1627.77

我想知道最后的公式,哪个是正确的:

(1) Yt=280.6464+et+0.9642et-1

(2) Yt=280.6464+et-0.9642et-1

为了详细说明我上面的评论,我们可以使用 MA(1) 模型方程 x_t = mean + w_t + ma1 * w_{t-1} 中的模型系数和残差显式重建源数据。这样做我们可以确认附加项的正确符号。

  1. 将 MA(1) 模型拟合到数据 AirPassengers:

    fit <- arima(AirPassengers, c(0,0,1));
    
  2. 使用存储在 fit$residuals.

    中的估计模型系数和残差重建数据
    # Reconstruct the data from the model coefficients and residuals
    # x_t = mean + w_t + ma1 * w_{t-1}
    x.model <- coef(fit)["intercept"] + fit$residuals + coef(fit)["ma1"] * stats::lag(fit$residuals, k = -1)
    
  3. 我们绘制原始数据AirPassengers和重构数据。因为两个时间序列数据会重叠,所以我们将重建的数据垂直移动shift = 50。如果设置 shift = 0,您可以确认它们确实重叠。

    shift <- 50;
    ts.plot(AirPassengers, x.model + shift, gpars=list(xlab = "Date", col = c(1, 2)))
    

所以我们得出结论,MA(1)模型方程确实是x_t = mean + w_t + ma1 * w_{t-1},而不是x_t = mean + w_t - ma1 * w_{t-1}