R中的哪些包允许时间序列分析的滞后变量?
我想在回归中包含外生变量的多重滞后。假设我有以下数据:R中的哪些包允许时间序列分析的滞后变量?,r,R,我想在回归中包含外生变量的多重滞后。假设我有以下数据: X = c(1, 4, 8, 9, 3, 5...) X2 = c(4, 6, 7, 9, 7, 8...) 我想使用X2的滞后来预测X。有人知道为什么软件包允许我这么做吗?我试过使用stats中的dynlm和lag() 谢谢图书馆(动物园) library(zoo) set.seed(1111) x <- as.zoo(rnorm(10, 0, 0.02)) y <- lag(x, 2, na.pad = TRUE) cbi
X = c(1, 4, 8, 9, 3, 5...)
X2 = c(4, 6, 7, 9, 7, 8...)
我想使用X2
的滞后来预测X
。有人知道为什么软件包允许我这么做吗?我试过使用stats中的dynlm
和lag()
谢谢图书馆(动物园)
library(zoo)
set.seed(1111)
x <- as.zoo(rnorm(10, 0, 0.02))
y <- lag(x, 2, na.pad = TRUE)
cbind(x, y)
种子集(1111)
x这将在X2的前两个滞后上执行x的普通线性回归,该滞后上有一个截距(fit2),第一个滞后上有一个截距(fit1),并且仅在一个截距(fit0)上执行x的普通线性回归。注意,在R中,通常使用负数表示滞后,因此为了方便起见,我们定义了一个lag
函数,该函数使用正数表示滞后。lag.zoo允许向量滞后,因此lag(z2,1:2)有两列,每列对应两个滞后
library(dyn)
X = c(1, 4, 8, 9, 3, 5)
X2 = c(4, 6, 7, 9, 7, 8)
z <- zoo(X)
z2 <- zoo(X2)
Lag <- function(x, k = 1) lag(x, k = -k)
fit2 <- dyn$lm(z ~ Lag(z2, 1:2))
fit1 <- dyn$lm(z ~ Lag(z2))
fit0 <- dyn$lm(z ~ 1)
这是三种拟合的比较,表明一种和两种滞后拟合并不比仅使用截距好多少;但是,通过将第一个滞后添加到仅截距模型,剩余平方和会有相当大的下降,因此您可能希望忽略统计显著性,而使用第一个滞后
> anova(fit0, fit1, fit12)
Analysis of Variance Table
Model 1: z ~ 1
Model 2: z ~ Lag(z2)
Model 3: z ~ Lag(z2, 1:2)
Res.Df RSS Df Sum of Sq F Pr(>F)
1 3 22.7500
2 2 8.4211 1 14.3289 2.1891 0.3784
3 1 6.5455 1 1.8756 0.2865 0.6871
也可以使用ts类代替动物园类;但是,lag.ts不支持向量滞后,因此,对于ts,每个项都必须单独写出<代码>滞后
来自上方
tt <- ts(X)
tt2 <- ts(X2)
fits12_ts <- dyn$lm(tt ~ Lag(tt2) + Lag(tt2, 2))
tt我想说,不需要外部R库
X2 = c(4, 6, 7, 9, 7, 8)
lag = 2
lagged_data <- function(x) c(tail(X2, -x), rep(NA, x))
lagged_data(lag)
# [1] 7 9 7 8 NA NA
X2=c(4,6,7,9,7,8)
滞后=2
滞后数据
X2 = c(4, 6, 7, 9, 7, 8)
lag = 2
lagged_data <- function(x) c(tail(X2, -x), rep(NA, x))
lagged_data(lag)
# [1] 7 9 7 8 NA NA