1

我如何一步一步地在 R 中拟合这个模型?我的范围是对 t+1 进行预测。

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

  • Y(t) <- 从 1900 年到 2000 年。
  • X <- 从 0 到 100 的分数度量。
  • Y(t-1) <- Y 的 1 阶滞后值。

提前致谢。

4

2 回答 2

1

您的模型是y带有 covariate的 AR(1) 时间序列x。我们可以只使用R 基础的arima0(no missing value) 或arima(missing value allowed):

fit <- arima0(y, order = c(1, 0, 0), xreg = x)

让我们考虑一个小例子:

set.seed(0)
x <- runif(100)
## intercept: 0.1
## slope of `x`: 1.2
## AR(1) with coefficient 0.5
y <- 0.1 + 1.2 * x + arima.sim(list(ar = 0.5), n = 100, sd = 0.2)

fit <- arima0(y, order = c(1, 0, 0), xreg = x)

#Call:
#arima0(x = y, order = c(1, 0, 0), xreg = x)
#
#Coefficients:
#         ar1  intercept    xreg
#      0.4639     0.0645  1.2139
#s.e.  0.0879     0.0448  0.0590
#
#sigma^2 estimated as 0.03046:  log likelihood = 32.55,  aic = -57.11

请注意,该估计与我们的真实模型一致。


谢谢。如何插入更多协变量(x1、x2 等),以防万一?

看看?arima0(或?arima):

xreg: Optionally, a vector or matrix of external regressors, which
      must have the same number of rows as ‘x’.

您可以通过 指定模型矩阵xreg。假设您在数据框中有回归量x1, x2, , 您可以通过以下方式生成此模型矩阵:x3dat

X <- model.matrix(~ x1 + x2 + x3, dat)

然后

fit <- arima0(y, order = c(1, 0, 0), xreg = X)
于 2016-11-02T16:31:21.680 回答
0

使用预测包并使用 ARIMAX 函数并指定结构,在这种情况下它将是 (1,0,0)。xreg 参数将允许您包含其他协变量。

它应该看起来像这样..

library(forecast)
fit <- Arima(y, order=c(1,0,0),xreg = x)
于 2016-11-02T16:28:51.247 回答