MICE填充后GLM模型合并报错:部分正常部分异常
问题:MICE填充后使用pool_glm合并模型时出现变量未找到错误
用MICE填充数据后,生成了「复合指标」列(基于模拟数据操作)。构建多个回归模型并合并结果时,所有模型使用相同的预测变量,但因因变量不同,部分模型可正常运行并提取汇总结果(如fit.somatic.anxiety.pooled),而fit.shaps.pooled执行pool_glm时抛出错误:Error in eval(predvars, data, env) : object 'shaps.predicted.H3Bi' not found。
已尝试的排查步骤
- 对比各填充数据集的因变量列,确认无缺失值,且不同填充版本的因变量相关性接近(r≈0.96)
- 检查
with()命令的输出,两个模型的结果格式一致
相关代码
df=list2milist(imputed.withPredictions) fit.somatic.anxiety=with(df,glm(sticsa.trait.somatic.predicted.H2B ~ group+Age+Gender+Education,family='gaussian')) fit.somatic.anxiety.pooled <- pool_glm(fit.somatic.anxiety) fit.somatic.anxiety.pooled$pmodel fit.shaps = with(df,glm(shaps.predicted.H3Bi ~ group+Age+Gender+Education,family='gaussian')) fit.shaps.pooled=pool_glm(fit.shaps)
错误回溯信息
Error when running pool_glm(fit.shaps): Error in eval(predvars, data, env) : object 'shaps.predicted.H3Bi' not found traceback() 10: eval(predvars, data, env) 9: eval(predvars, data, env) 8: model.frame.default(formula = form1, data = imp.dt[[i]], drop.unused.levels = TRUE) 7: stats::model.frame(formula = form1, data = imp.dt[[i]], drop.unused.levels = TRUE) 6: eval(mf, parent.frame()) 5: eval(mf, parent.frame()) 4: glm(form1, data = imp.dt[[i]]) 3: glm_lm_bw(data = data, nimp = nimp, impvar = impvar, Outcome = Outcome, P = P, p.crit = p.crit, method = method, keep.P = keep.P) 2: glm_mi(data = imp_dat, formula = fm, p.crit = p.crit, direction = direction, nimp = nimp, impvar = "imp_id", keep.predictors = keep.predictors, method = method, model_type = "linear") 1: pool_glm(fit.shaps)
内容的提问来源于stack exchange,提问作者JacquieS
相关产品推荐
相关产品推荐

