R 在xts对象上执行多变量动态NLM
我试图在xts对象中执行此操作,但得到一个错误。使用的库和数据包括:R 在xts对象上执行多变量动态NLM,r,time-series,regression,R,Time Series,Regression,我试图在xts对象中执行此操作,但得到一个错误。使用的库和数据包括: #Libraries library(xts) library(dynlm) #Data index <- seq.Date(from = Sys.Date() - 999, to = Sys.Date(), by = "days") x <- xts(1:1000, order.by = index) y <- xts(2001:3000, order.by = index) z <- xts(30
#Libraries
library(xts)
library(dynlm)
#Data
index <- seq.Date(from = Sys.Date() - 999, to = Sys.Date(), by = "days")
x <- xts(1:1000, order.by = index)
y <- xts(2001:3000, order.by = index)
z <- xts(3001:4000, order.by = index)
data <- merge(x,y,z)
有什么想法吗?或者我应该把信息转换成数据帧,然后从那里开始工作。
提前谢谢 一种方法是使用dyn软件包。请确保未加载dplyr,因为dplyr使用与R的其余部分不兼容的自己的版本覆盖lag
library(dyn)
dyn$lm(x ~ lag(y) + lag(z, 4), data = data)
给予:
Call:
lm(formula = dyn(x ~ lag(y) + lag(z, 4)), data = data)
Coefficients:
(Intercept) lag(y) lag(z, 4)
-1999 1 NA
dynlm似乎不能很好地处理“xts”对象 Grothendieck给出的一个解决方案建议使用另一个有效的包 另一种解决方案是将对象更改为zoo 然而,这是令人困惑的,因为我最初工作的对象是类:xts zoo;而dynlm也没有认出“动物园”那部分 把它改成“动物园”后,如果有人想留下来,一切都会正常
#Libraries
library(xts)
library(dynlm)
#Data
index <- seq.Date(from = Sys.Date() - 999, to = Sys.Date(), by = "days")
x <- xts(1:1000, order.by = index)
y <- xts(2001:3000, order.by = index)
z <- xts(3001:4000, order.by = index)
data <- merge(x,y,z)
data.zoo <- zoo(data, order.by = index(data))
dynlm(x ~ L(y) + L(z,4), data = data.zoo)
奇怪的是,得到的截距是不同的。它们不同的原因是我忘记了lag.xts的作用方向与R基部的lag相反,因此使用lag.xts滞后1。而在R基部,它是lagy,-1。我认为这是xts中的一个设计错误。如果他们想使用不同的约定,他们真的应该使用不同的名称,而不是lag。无论如何,我已经确定了我的答案。请注意,如果要将数据转换为zoo,可以使用as.zoodata。
#Libraries
library(xts)
library(dynlm)
#Data
index <- seq.Date(from = Sys.Date() - 999, to = Sys.Date(), by = "days")
x <- xts(1:1000, order.by = index)
y <- xts(2001:3000, order.by = index)
z <- xts(3001:4000, order.by = index)
data <- merge(x,y,z)
data.zoo <- zoo(data, order.by = index(data))
dynlm(x ~ L(y) + L(z,4), data = data.zoo)
Time series regression with "zoo" data:
Start = 2017-05-23, End = 2020-02-12
Call:
dynlm(formula = x ~ L(y) + L(z, 4), data = data.zoo)
Coefficients:
(Intercept) L(y) L(z, 4)
-1999 1 NA