【发布时间】:2017-02-28 03:21:00
【问题描述】:
当我使用 mice 包来估算数据时,我遇到了以下问题:
鉴于我已经在训练集中估算了缺失的数据,我似乎无法找到替换 NA 新观察值的方法。
示例 1
我已经使用来自具有 10 个特征和 1000 个观察值的数据框的数据训练了一个算法。
如何使用此算法预测新的观察结果(数据缺失)?
示例 2
假设我们有一个带有NA 值的数据框:
V1 V2 V3 R1
1 2 NA 1
1.4 -1 0 0
1.2 NA 0 1
1.6 NA 1 1
1.2 3 1 0
我使用mice 包估算缺失值:
imp <- mice(df, m = 2, maxit = 100, meth = 'pmmm', seed = 12345)
对象 df 现在有 2 个带有估算值的数据帧。
(dfImp1)
V1 V2 V3 R1
1 2 0.5 1
1.4 -1 0 0
1.2 1.5 0 1
1.6 1.5 1 1
1.2 3 1 0
现在有了这个数据框,我可以训练一个算法:
modl <- glm(R1~., (dfImp1), family = binomial)
我想预测一个新观察的反应,例如:
obs1 <- data.frame(V1 = 1, V2 = 1.4, V3 = NA)
我如何对新的个体观察的缺失数据进行估算?
【问题讨论】:
-
您能发布一些示例代码和示例数据框吗?通常您在具有新数据的算法上使用 predict() 函数,但如果没有更多信息就很难说。
-
我已经在操作中添加了。
-
我已经咨询过这个软件包的创建者之一 Stefen Van Buuren,他告诉我这是不可能的。抱歉浪费时间,谢谢!
-
根据 y 变量和 x 变量之间的关系类型,您可能只对缺失 y 变量的所有新观察结果使用 MICE。另一种方法是仅对 x 值进行插补,然后在此之后预测 y,但这假设缺失的 x 值与 y 除了与其他 x 值的关系之外没有其他关系(以非缺少 x 值,缺少 x 值对 y) 没有影响。
-
是的!这就是想法,但事情是这样的:想象我今天进行了培训和测试,我创建了预测性能最佳的模型,但是明天会有新的观察结果,并且有空数据,所以我不能使用我今天创建的模型,因为我无法为新观察估算数据,这需要为每个新观察重新创建一个新模型。
标签: r machine-learning missing-data imputation r-mice