我有一个包含27个变量和约30,000个观测值的数据集.前17个变量是连续的,余数是二进制的.当使用指定为基于主题ID的所有固定效果+随机效果拦截的模型运行glmer时,我不断收到以下警告消息:
In checkConv(attr(opt, "derivs"), opt$par, ctrl=control$checkConv, : Model is nearly unidentifiable: very large eigenvalue - Rescale variables?
使用"scale"函数缩放所有连续变量,并将center和scale设置为TRUE.所以我不明白为什么我一直收到这条消息.有些变量有点倾斜,是否会导致警告?
tl; dr如果有疑问尝试使用不同的优化器并确保结果稳定,但我可能愿意忽略此警告,特别是因为您的数据集很大(> 10,000 obs).
lme4
报告参数估计的估计 Hessian(二阶导数矩阵)的一些特征值很大(> 500); 这表明可能存在数值不稳定性,有时可以通过缩放和居中参数来解决(如果您还没有这样做).
但是,我猜这是由于对Hessian的错误估计,导致对特征值的误导性估计.这是一个肮脏的秘密lme4
- 自从我们在几个版本之前引入融合测试以来,我们一直在努力使它们正确(这很难).特别是,我们使用了Hessian的朴素有限差分近似,它对大型(> 10,000 obs)数据集效果不佳......这里是模拟研究的一个例子(结果在这里完整) - 蓝点是最小的特征值. Hessian通过Richardson外推估计(numDeriv::hessian
),粉红点是使用我们的幼稚有限差分规则的最小特征值.小组有不同的优化者; 顶行不受约束,底行被夹紧到范围(0.5,5)...