代码之家  ›  专栏  ›  技术社区  ›  lydias

缺失数据的R回归插补

  •  1
  • lydias  · 技术社区  · 7 年前

    你好我试图对包“faraway”和库“faraway”中的数据集“chmiss”的未命中值应用回归插补,但到目前为止,我的代码在同时删除列时很难将回归与数据帧相匹配。谁能帮我修改一下密码吗?

    X <- chmiss
    for(j in c(1:4,6)){
         new_Y <- X[,j]
         new_X <- X[,c(-j,-5)]
         new_XY <- cbind(new_X,new_Y)
         temp_lm <- lm(new_Y~.,data=new_XY)
         X[is.na(new_Y),j] <- predict(temp_lm,new_X[is.na(new_Y),c(-j,-5)])
    }
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   Bastien    7 年前

    尝试以下操作:

    library(faraway)
    data(chmiss)
    X <- chmiss
    for(j in c(1:4,6)){
      new_Y <- X[,j]
      new_X <- X[,c(-j,-5)]
      new_XY <- cbind(new_X,new_Y)
      temp_lm <- lm(new_Y~.,data=new_XY)
      X[is.na(new_Y),j] <- predict(temp_lm,new_X[is.na(new_Y),]) ## difference here
    }
    

    删除列 c(-j,-5) 已创建 new_X ,所以当您再次为 predict 取而代之的是将其称为drop有用列。