【问题标题】:Arima formula in RR中的Arima公式
【发布时间】:2018-04-02 09:53:55
【问题描述】:

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

【问题讨论】:

  • ARIMA 模型是构造的加法模型,因此在您的 MA(1) 模型的情况下:x_t = mean + w_t + ma1 * w_{t-1}。参见例如here.

标签: r arima


【解决方案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}

【讨论】:

    猜你喜欢
    • 2020-10-15
    • 2018-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-01
    • 2019-07-17
    • 2021-04-13
    • 1970-01-01
    相关资源
    最近更新 更多