0

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

4

1 回答 1

0

您可能需要考虑mice包装(并阅读部分论文)。

使用已被证明是一个良好起点的标准设置:

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

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

于 2013-10-26T08:32:22.767 回答