Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R中具有xts的回归_R_Time Series_Xts_Zoo_Lm - Fatal编程技术网

R中具有xts的回归

R中具有xts的回归,r,time-series,xts,zoo,lm,R,Time Series,Xts,Zoo,Lm,是否有使用以下类型的xts对象运行回归的实用程序: lm(y ~ lab(x, 1) + lag(x, 2) + lag(x,3), data=as.data.frame(coredata(my_xts))) 其中my_xts是一个xts对象,它包含一个x和一个y。问题的关键是,有没有一种方法可以避免进行大量的延迟和合并,从而生成一个包含所有延迟的data.frame?我认为包dyn适用于zoo对象,因此我希望它与xts的工作方式相同,但可能会有一些更新。因为您已经从xts环境中删除了数据,所

是否有使用以下类型的xts对象运行回归的实用程序:

lm(y ~ lab(x, 1) + lag(x, 2) + lag(x,3), data=as.data.frame(coredata(my_xts)))

其中
my_xts
是一个
xts
对象,它包含一个
x
和一个
y
。问题的关键是,有没有一种方法可以避免进行大量的延迟和合并,从而生成一个包含所有延迟的
data.frame
?我认为包
dyn
适用于
zoo
对象,因此我希望它与
xts
的工作方式相同,但可能会有一些更新。

因为您已经从xts环境中删除了数据,所以我这里没有使用任何xts功能。有一个
embed
函数,它将构造一个任意程度的“滞后”矩阵。(我从未理解时间序列
lag
函数。)(嵌入滞后变量的顺序与我预期的相反。)


dyn和dynlm包可以对zoo对象执行此操作。对于dyn,只需编写
dyn$lm
而不是
lm
,并向其传递zoo对象而不是数据帧

注意,xts中的滞后与通常的R约定相反,因此,如果x属于xts类,则滞后(x,1)与滞后(x,-1)相同,如果x属于zoo或ts类

> library(xts)
> library(dyn)
> x <- xts(anscombe[c("y1", "x1")], as.Date(1:11)) # test data
> dyn$lm(y1 ~ lag(x1, -(1:3)), as.zoo(x))

Call:
lm(formula = dyn(y1 ~ lag(x1, -(1:3))), data = as.zoo(x))

Coefficients:
     (Intercept)  lag(x1, -(1:3))1  lag(x1, -(1:3))2  lag(x1, -(1:3))3  
         3.80530           0.04995          -0.12042           0.46631  
>库(xts)
>图书馆(dyn)
>x dyn$lm(y1~lag(x1,-(1:3)),as.zoo(x))
电话:
lm(公式=dyn(y1~lag(x1,-(1:3)),数据=as.zoo(x))
系数:
(截距)滞后(x1,-(1:3))1滞后(x1,-(1:3))2滞后(x1,-(1:3))3
3.80530           0.04995          -0.12042           0.46631  
 lm( tail(xx[,"y1"], NROW(xx)-3) ~ embed(xx[,"x1"], 4)[,2:4] )

Call:
lm(formula = tail(xx[, "y1"], NROW(xx) - 3) ~ embed(xx[, "x1"], 
    4)[, 2:4])

Coefficients:
                 (Intercept)  embed(xx[, "x1"], 4)[, 2:4]1  embed(xx[, "x1"], 4)[, 2:4]2  
                     3.80530                       0.04995                      -0.12042  
embed(xx[, "x1"], 4)[, 2:4]3  
                     0.46631  
> library(xts)
> library(dyn)
> x <- xts(anscombe[c("y1", "x1")], as.Date(1:11)) # test data
> dyn$lm(y1 ~ lag(x1, -(1:3)), as.zoo(x))

Call:
lm(formula = dyn(y1 ~ lag(x1, -(1:3))), data = as.zoo(x))

Coefficients:
     (Intercept)  lag(x1, -(1:3))1  lag(x1, -(1:3))2  lag(x1, -(1:3))3  
         3.80530           0.04995          -0.12042           0.46631