首页 文章

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

提问于
浏览
1

我正在尝试运行此代码

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

现在,我收到错误:

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

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

2 回答

  • 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

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

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

相关问题