R:如何拟合"Y(t) = αX + βY(t-1)"这样的时间序列模型?
R: How to fit a time series model such as "Y(t) = αX + βY(t-1)"?
如何逐步在 R 中拟合此模型?我的范围是预测 t+1。
Y(t) = αX(t) + βY(t-1)
- Y(t) <- 从 1900 年到 2000 年的年份。
- X <- 从 0 到 100 的分数度量。
- Y(t-1) <- Y 的阶数 1 的滞后值。
提前致谢。
使用 forecast 包并使用 ARIMAX 函数并指定结构,在本例中为 (1,0,0)。 xreg 参数将允许您包含其他协变量。
它应该看起来像这样..
library(forecast)
fit <- Arima(y, order=c(1,0,0),xreg = x)
您的模型是 y
的 AR(1) 时间序列,协变量 x
。我们可以只使用 arima0
(无缺失值)或 arima
(允许缺失值)来自 R base:
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
请注意,估计值与我们的真实模型一致。
Thanks. How do I insert more covariates (x1,x2,etc.), just in case?
看看?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)
然后
fit <- arima0(y, order = c(1, 0, 0), xreg = X)
如何逐步在 R 中拟合此模型?我的范围是预测 t+1。
Y(t) = αX(t) + βY(t-1)
- Y(t) <- 从 1900 年到 2000 年的年份。
- X <- 从 0 到 100 的分数度量。
- Y(t-1) <- Y 的阶数 1 的滞后值。
提前致谢。
使用 forecast 包并使用 ARIMAX 函数并指定结构,在本例中为 (1,0,0)。 xreg 参数将允许您包含其他协变量。
它应该看起来像这样..
library(forecast)
fit <- Arima(y, order=c(1,0,0),xreg = x)
您的模型是 y
的 AR(1) 时间序列,协变量 x
。我们可以只使用 arima0
(无缺失值)或 arima
(允许缺失值)来自 R base:
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
请注意,估计值与我们的真实模型一致。
Thanks. How do I insert more covariates (x1,x2,etc.), just in case?
看看?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)
然后
fit <- arima0(y, order = c(1, 0, 0), xreg = X)