R对丢失数据的回归估算

时间:2017-12-11 15:27:01

标签: r statistics regression missing-data imputation

嗨!我试图对数据集的未命中值应用回归估算' 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 个答案:

答案 0 :(得分:1)

试试这个:

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调用时,会删除有用的列。