首页 > 解决方案 > MICE LoggedEvents 是什么意思?

问题描述

我正在尝试使用miceR 中的函数(来自同名包)运行多重插补。我收到一个警告,表明事件已被记录。这是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参数吗?

标签: rr-mice

解决方案


这不是一个完整的答案,但我无法在评论中回复。

记录的事件警告可能来自各种问题。可以从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”是什么问题。也许与无法在如此小的数据集中工作的预测均值匹配(选择的插补方法)有关?


推荐阅读