我正在尝试对中等大小的数据帧(约100,000行)进行估算,其中30列中的5列具有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
是否还有其他一些对这种情况更加强大的软件包?我该如何处理这个问题?
您的建议将不胜感激。
答案 0 :(得分:2)
您的5列可能包含许多不平衡因素。当这些变为虚拟变量时,很可能您将一列与另一列成线性组合。 SELECT d.Service_id, t.type as diagnoses_type
FROM diagnose d JOIN
Types t
ON d.Type_id = t.Type_id;
的默认插补方法涉及线性回归,这会导致X矩阵无法反转并导致错误。
将正在使用的方法更改为购物车 - mice
- 。同时检查在插补前/插入期间调用的种子,以获得可重现的结果。
我的建议是通过7个老鼠的小插曲。您可以了解如何更改用于单独列而不是整个数据集的插补的mice(data_2, method = "cart")
。