R:如何拟合时间序列模型,如“Y(t)=αX+βY(t-1)”?

时间:2016-11-02 16:17:39

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

如何在R中逐步适应此模型?我的范围是对t + 1进行预测。

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

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

提前致谢。

2 个答案:

答案 0 :(得分:1)

您的模型是带有协变量y的{​​{1}}的AR(1)时间序列。我们可以使用来自R base的x(没有缺失值)或arima0(允许缺失值):

arima

让我们考虑一个小例子:

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

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

  

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

查看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 (或?arima0):

?arima

您可以通过xreg: Optionally, a vector or matrix of external regressors, which must have the same number of rows as ‘x’. 指定模型矩阵。假设您在数据框xreg中有回归量x1x2x3,则可以通过以下方式生成此模型矩阵:

dat

然后

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

答案 1 :(得分:0)

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

看起来应该是这样的......

library(forecast)
fit <- Arima(y, order=c(1,0,0),xreg = x)