使用R中的回归FNN包计算值时抛出的错误

时间:2013-10-26 08:05:36

标签: r

我正在尝试使用回归来估算缺失的值,并在网上进行了彻底的搜索并且没有多大帮助。我阅读了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):列数必须相同!请帮忙 !!

1 个答案:

答案 0 :(得分:0)

您可能需要考虑mice包(并阅读paper的一部分)。

使用已证明具有良好起点的标准设置:

library(mice)
mi <- mice(dataset)
mi.reg <- with(data=mi,exp=glm(y~x+z))

此处,只需在您的数据上调用mice()即可填写每个NA值。当然可以进行更精细的调整(如果需要花费很长时间才能收敛,或者如果你有理由相信它不准确则需要调整)。许多不同类型的插补都是可能的,并列在第16页。