我有一个数据集,其中包含大约12个类别变量,级别范围为2-10,以及其他数字变量。约280条记录。我正在使用mice中的r包使用所有默认设置对丢失的数据执行插补。
但是,当我尝试进行如下估算时:

imp <- mice(df)


我继续收到此警告:

glm.fit: algorithm did not converge


我在网上找到的解决方案herehere仅专注于直接使用glm函数,但就我而言,这是从mice内部调用的函数。我试过像这样设置maxit = 50

imp <- mice(df, maxit = 50)


但最终却得到了更多相同警告的实例。知道是什么原因造成的吗?

最佳答案

mice()在内部对要估算的每个变量进行回归分析,并默认情况下根据数据类型自动选择一种方法。因此,对于您的分类变量,它选择使用glm.fit()且未收敛的多逻辑方法。

为了简单地消除错误,您可以为所有变量设置method="pmm"(预测均值匹配),或者预先将分类变量转换为数字。但是,这可能会导致错误的结果,因此我强烈建议您考虑一下插补方法,并检查为什么算法无法收敛。

08-19 22:22