7

运行 MICE 包后,在 5 个完整的插补集中,缺失值的数量从 147428 减少到 46093。但是它不应该是0 NA吗???

谢谢!

这是我的 MICE 代码:

imp = mice(newdata)

imputationSet1 = complete(imp)
imputationSet2 = complete(imp,2)
imputationSet3 = complete(imp,3)
imputationSet4 = complete(imp,4)
imputationSet5 = complete(imp,5)
4

4 回答 4

7

Ben,mice() 函数检测多重共线性,并通过删除矩阵的一个或多个预测变量来解决问题。每次删除都会在 mids 对象的 loggedEvents 元素中记录。例如,

imp <- 老鼠(cbind(nhanes,chl2 = 2 * nhanes$chl),print = FALSE)

imp$loggedEvents

通知我们重复变量 chl2 在迭代之前已被删除。该算法还在迭代期间检测多重共线性。

控制算法的另一个措施是岭参数。ridge 参数被指定为mice() 的参数。设置 ridge=0.001 或 ridge=0.01 会使算法更加健壮,但会牺牲偏差。

在终端节点,我们可以应用一个简单的方法,比如mice.impute.sample(),它本身不需要任何预测器。

此信息取自 Stef van Buuren 所著的《遗失数据的灵活插补》一书,p。129

于 2016-12-17T22:56:45.417 回答
3

帮助我的是将 as-character 变量转换为 as-factor 变量,并且 NA 已从估算数据集中消失。

于 2016-12-17T23:34:06.857 回答
2

尝试切换一个名为 的附加参数threshold,其默认值为0.999。如果您将其设置为更接近1甚至更大的值,您的问题应该会消失。

请注意,仅当数据中的共线性很高时才会出现此问题。

于 2015-06-10T12:45:50.223 回答
-1

是的,应该没有遗漏值。

我敢打赌,您的数据集中有一些行因缺失而严重受损,以至于老鼠的插补模型崩溃了。您的数据集中是否有可能缺少每个值的行?这样就可以了。

一时兴起尝试的另一件事 - 将迭代次数提高到 15: imp = mice(newdata, maxit = 15)。这有什么改变吗?

于 2014-01-06T06:55:07.380 回答