如何在R?

时间:2016-11-07 17:28:31

标签: r time-series regression forecasting autoregressive-models

我必须使用R对时间序列 Y(t)进行一步预测。理论建议理想模型应该是:

Y(t)=αX+βY(t-1) - βY(t-2)

但是,我不知道如何处理以下问题:

  • 我必须选择βY(t-1) 减去 βY(t-2)
  • autoregressive Y(t-1) Y(t-2))和外生变量( X )。
  • 我必须测试“βY(t-1) - βY(t-2)”是否是表达自回归的最佳方式,而不是其他ARIMA模型。

有问题的时间序列 Y(t)是:

Y <- c(57.4, 51.6, 36.1, 34.8, 41.2, 59.1, 62.5, 55.0, 53.8, 52.4, 44.5, 42.2, 50.1, 61.3, 49.6, 38.2, 51.1, 44.7, 40.8, 46.1, 53.5, 54.7, 50.3, 48.8, 53.7, 52.0)

使用的外生变量 X 是:

X <- c(-12.1, 30.0, 13.5, 30.0, -3.8, -24.3, 30.0, 30.0, 30.0, 30.0, -21.6, 30.0, 0.0, 26.5, -30.0, 20.5, -4.8, -9.2, 22.2, -7.3, 15.9, 16.0, 13.7, 5.6, 5.7, 1.8)

正如您可能已经注意到的那样,这个实际的X在预测Y方面没有提供太多帮助。不过,我作为一个例子报告了它,因为我目前正在寻找正确的X值。

如果有什么不对或不清楚,请告诉我,我会给出必要的解释。

提前致谢。

1 个答案:

答案 0 :(得分:3)

您可以使用lag函数进行转换,使用lmglm进行回归:

Y <- c(57.4, 51.6, 36.1, 34.8, 41.2, 59.1, 62.5, 55.0, 53.8, 52.4, 44.5, 42.2, 50.1, 61.3, 49.6, 38.2, 51.1, 44.7, 40.8, 46.1, 53.5, 54.7, 50.3, 48.8, 53.7, 52.0)
X <- c(-12.1, 30.0, 13.5, 30.0, -3.8, -24.3, 30.0, 30.0, 30.0, 30.0, -21.6, 30.0, 0.0, 26.5, -30.0, 20.5, -4.8, -9.2, 22.2, -7.3, 15.9, 16.0, 13.7, 5.6, 5.7, 1.8)

y_1 <- lag(Y)
y_2 <- lag(Y,2)

lm(Y~X+y_1+y_2)

你也可以直接在回归方程中进行滞后变换:

lm(Y ~ X + I(lag(Y)) + I(lag(Y, 2)))

最后,差异只是操作员对此的改变:

lm(Y ~ X + I(lag(Y)) - I(lag(Y, 2)))
Call:
lm(formula = Y ~ X + I(lag(Y)) - I(lag(Y, 2)))

Coefficients:
(Intercept)            X    I(lag(Y))  
  3.906e-14   -4.693e-18    1.000e+00