如何在R中逐步适应此模型?我的范围是对t + 1进行预测。
提前致谢。
答案 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
中有回归量x1
,x2
,x3
,则可以通过以下方式生成此模型矩阵:
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)