我正在尝试使用回归来估算缺失的值,并在网上进行了彻底的搜索并且没有多大帮助。我阅读了knn.reg函数的FNN包文档,发现很难解释。我在测试数据中有一列缺失值,我希望使用我的训练数据进行预测,并且有一个像这样的代码::
regress<-knn.reg(data.train[data.train[,4]==1,][c(1,2,3)],test=data.test[c(1,2,3)],data.test[c(2)],5)
但是我得到以下错误:: get.knnx(train,test,k,algorithm)中的错误:数据包括NA。包含缺失值的列是col#2。当我排除具有NA值的列,即
regress<-knn.reg(data.train[data.train[,4]==1,][c(1,2,3)],test=data.test[c(1,3)],data.test[c(2)],5)
我收到错误:: get.knnx中的错误(train,test,k,algorithm):列数必须相同!请帮忙 !!
答案 0 :(得分:0)
您可能需要考虑mice
包(并阅读paper的一部分)。
使用已证明具有良好起点的标准设置:
library(mice)
mi <- mice(dataset)
mi.reg <- with(data=mi,exp=glm(y~x+z))
此处,只需在您的数据上调用mice()
即可填写每个NA
值。当然可以进行更精细的调整(如果需要花费很长时间才能收敛,或者如果你有理由相信它不准确则需要调整)。许多不同类型的插补都是可能的,并列在第16页。