R中的有马公式

时间:2018-04-02 09:53:56

标签: r arima

我正在使用“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

1 个答案:

答案 0 :(得分:0)

为了详细说明我上面的评论,我们可以使用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)))
    
  4. enter image description here

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