>我正在尝试对中等大小的数据帧(~100,000 行(进行插补,其中 5 列中有 30 列具有 NA(比例很大,约为 60%(。
我使用以下代码尝试了鼠标:
library(mice)
data_3 = complete(mice(data_2))
第一次迭代后,我得到了以下异常:
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
是否有其他软件包对这种情况更强大? 我该如何处理这个问题?
您的 5 列可能有许多不平衡因素。当这些变量变成虚拟变量时,您很有可能将一列作为另一列的线性组合。mice
的默认插补方法涉及线性回归,这会导致 X 矩阵无法反转,并将导致您的错误。
将正在使用的方法更改为其他内容,例如购物车 - mice(data_2, method = "cart")
--.还要检查您在插补之前/期间调用的种子,以获得可重现的结果。
我的建议是浏览老鼠的7个小插曲。您可以了解如何更改用于单独列而不是整个数据集的插补method
。