r - MICE LoggedEvents 是什么意思?
问题描述
我正在尝试使用mice
R 中的函数(来自同名包)运行多重插补。我收到一个警告,表明事件已被记录。这是mice(.)$loggedEvents
我的 MWE 的输出(见下文):
it im dep meth out
1 1 X pmm H
我不确定是什么导致了这个警告以及影响是什么。据我了解,这可能是由变量之间的共线性引起的,但这应该通过使用来防止remove_collinear=FALSE
,但这并不能修复警告。
MWE:
Pop <- data.frame(X = c( NA, 0.02, -1.15, 0.54, -0.61, -2.07),
Z = c( 0.83, 1.40, -3.07, -0.07, -0.20, -1.90),
D = c( 0, 0, 0, 1, 0, 0),
H = c( 0.01, 0.01, 0.01, 0.01, 0.02, 0.02))
Pop.Imp <- mice(Pop, m = 1, maxit = 1, print = T)
显然,我最初的问题涉及更多的数据行和列以及更多的插补和迭代,但我已经设法减少它以找到这个 MWE。
找出导致此问题的原因的任何帮助都会很棒。mice
在确定协变量是否/何时共线时,是否有某种截止值?如果它非常高,这会覆盖remove_collinear=FALSE
参数吗?
解决方案
这不是一个完整的答案,但我无法在评论中回复。
记录的事件警告可能来自各种问题。可以从mice()$loggedEvents 输出中的“meth”列中确定提出的问题。
我知道的两个问题是共线性,以及所有值的常数预测因子(或者可能所有缺失/未缺失的常数也满足这个标准)。添加了一些变量以突出显示这些:
Pop <- data.frame(X = c( NA, 0.02, -1.15, 0.54, -0.61, -2.07, NA),
Z1 = c( 0.83, 1.40, -3.07, -0.07, -0.20, -1.90, 2.00),
Z2 = c( 0.83, 1.40, -3.07, -0.07, -0.20, -1.90, 2.00),
D = c( 0, 0, 0, 1, 0, 0, 1),
H = c( 0.01, 0.01, 0.01, 0.01, 0.02, 0.02, 0.02))
Pop.Imp <- mice(Pop, m = 1, maxit = 1, print = T)
Pop.Imp$loggedEvents
it im dep meth out
1 0 0 collinear Z2
2 1 1 X pmm H
Pop <- data.frame(X = c( NA, 0.02, -1.15, 0.54, -0.61, -2.07, NA),
Z1 = c( 0.83, 1.40, -3.07, -0.07, -0.20, -1.90, 2.00),
consvar = c( 0.83, 0.83, 0.83, 0.83, 0.83, 0.83, 0.83),
D = c( 0, 0, 0, 1, 0, 0, 1),
H = c( 0.01, 0.01, 0.01, 0.01, 0.02, 0.02, 0.02))
Pop.Imp <- mice(Pop, m = 1, maxit = 1, print = T)
Pop.Imp$loggedEvents
it im dep meth out
1 0 0 constant consvar
2 1 1 X pmm H
不幸的是,我不知道“pmm”是什么问题。也许与无法在如此小的数据集中工作的预测均值匹配(选择的插补方法)有关?
推荐阅读
- javascript - Jquery 总是返回“jQuery.fn.init [global]”。我无法选择元素
- javascript - JavaScript 对象引用
- wpf - 由按钮触发时从屏幕边缘滑动的 WPF 应用程序
- javascript - OAuth2 的“/usercallback”在已发布的 Google Addon 上作为 HEAD 运行
- javascript - 无法使过滤器与 Immer.js 一起使用以删除数组中的嵌套对象
- android - 没有 OpenCV 的 Android 图像矩形检测
- laravel - Laravel Nova 将文件保存为 base64
- algorithm - 为每个 M 团队负责人组成 K 成员团队的算法
- laravel - 调用数据表中的数据时参数名称未知
- javascript - 为什么这些 js 对象字面量会被冻结?