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)
是否有其他一些更适合这种情况的软件包?我该如何处理这个问题?
您的 5 列可能有许多不平衡的因素。当这些变成虚拟变量时,您很可能会看到一列是另一列的线性组合。mice涉及线性回归的默认插补方法,这会导致无法反转的 X 矩阵,并会导致您的错误。
将正在使用的方法更改为其他类似购物车 -- mice(data_2, method = "cart")-- 的方法。还要检查您在插补之前/期间调用的种子以获得可重复的结果。
我的建议是通过老鼠的 7 个小插曲。您可以了解如何更改method用于单独列而不是整个数据集的插补。