使用差分响应变量的r中的线性回归

时间:2016-02-10 23:47:36

标签: r time-series

我正在尝试运行此代码

 r2<-lm(diff(Y)~.,data=credit.train)

现在,我收到错误:

  

model.frame.default中的错误(公式= diff(Y)〜。,data = credit.train,:     变量长度不同(找到&#39; t&#39;)

据我所知,在差分处,Y的行数减少1,这对于X变量没有发生。知道怎么解决这个问题吗?

2 个答案:

答案 0 :(得分:6)

您可以使用I() - 函数

在一端或另一端扩展(丢失一组预测变量)

来自?lm页面:

ctl <- c(4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14)
trt <- c(4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69)
group <- gl(2, 10, 20, labels = c("Ctl","Trt"))
weight <- c(ctl, trt)
lm.D9 <- lm(I(c(diff(weight),NA)) ~ group)  # no error

同样没有错误:

lm.D9 <- lm( c(diff(weight),NA) ~ group)

答案 1 :(得分:1)

我想你想要对某些变量YY(n+1)-Y(n)等的x(n)值进行回归,即t(n),所以只需过滤出最后一行你的数据框:

  r2 <- lm(diff(Y) ~ ., data = credit.train[1:(length(credit.train)-1), ])