当鼠标返回“系统在计算上是单一的”错误时,在 R 中进行插补

use*_*077 1 r r-mice imputation

我正在尝试对中等大小的数据框(~100,000 行)进行插补,其中 30 列中有 5 列具有 NA(很大比例,大约 60%)。

我用以下代码尝试了鼠标:

library(mice)    
data_3 = complete(mice(data_2))
Run Code Online (Sandbox Code Playgroud)

第一次迭代后,我得到以下异常:

iter imp variable
  1   1  Existing_EMI  Loan_Amount  Loan_Period

Error in solve.default(xtx + diag(pen)): system is computationally singular: reciprocal condition number = 1.08007e-16
Run Code Online (Sandbox Code Playgroud)

是否有其他一些更适合这种情况的软件包?我该如何处理这个问题?

phi*_*ver 9

您的 5 列可能有许多不平衡的因素。当这些变成虚拟变量时,您很可能会看到一列是另一列的线性组合。mice涉及线性回归的默认插补方法,这会导致无法反转的 X 矩阵,并会导致您的错误。

将正在使用的方法更改为其他类似购物车 -- mice(data_2, method = "cart")-- 的方法。还要检查您在插补之前/期间调用的种子以获得可重复的结果。

我的建议是通过老鼠的 7 个小插曲。您可以了解如何更改method用于单独列而不是整个数据集的插补。