我正在尝试使用 MICE 来估算数据集中的缺失值。 我有一个由 116 个 obs 组成的数据集。 134 个变量。我的数据集包含数字、分类和二进制数据。所有缺失数据超过 50% 的变量均已被删除。我使用 Quickpred 函数来选择预测变量。 但是,我不断收到错误:
Error in solve.default(xtx + diag(pen)):
system is computationally singular: reciprocal condition number = 1.77279e-16
这是我使用的代码
inlist <- c("r_age", "r_sex")
exlist <- c("studysubjectid", "studyid")
pred_matrix <- quickpred(dataset, minpuc = 0.5, include = inlist, exclude = exlist)
imputed_data <- mice(dataset, m = 20, maxit = 20, pred = pred_matrix, printFlag = FALSE, seed=1234)
我尝试对 mincor 和 minpuc 使用不同的值,但结果没有改变。 我该如何解决这个问题?
我怀疑您可能会遇到共线性问题,尤其是在使用这么多变量时,而我的理解是quickpred并不能直接解决这个问题。解决问题的一种方法是将岭参数从默认值 1e-5 增加到例如 1e-3。这种调整可以使算法更加稳健,但代价是引入一些偏差(参见https://stefvanbuuren.name/fimd/sec-modelform.html)