我用 MICE 估算了数据(然后将一些列汇总在一起作为“复合度量”——现在只是对一些模拟数据执行此操作)。我现在尝试运行回归并合并结果。所有模型都具有相同的预测变量,但预测值不同。奇怪的是,这适用于某些型号,但并非所有型号。我看不到它适用或不适用的列之间有任何明显差异。我不确定如何解决这个问题。
这里是两个模型的代码:
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)
对于 fit.somatic.anxiety.pooled,代码运行,我可以提取摘要。对于 fit.shaps.pooled,我得到了回溯错误:
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)
我尝试过的: [1] 我比较了数据(例如 df$Imputation_1$shapspredicted.H3Bi 和 df$Imputation_1$sticsa.trait.somatic.predicted.H2B),对于所有插补,它们看起来很相似——即没有 NAN 值和这些值的相关性整个插补是相似的(大约 r=0.96) [2] 我已经检查了 with(...) 命令的输出,它们看起来很相似(只是显示第一个插补,其他看起来也很相似):
$statistics
$statistics[[1]]
Call: glm(formula = sticsa.trait.somatic.predicted.H2B ~ group + Age +
Gender + Education, family = "gaussian")
Coefficients:
(Intercept) group Age Gender Education
-0.16961 -0.03702 -0.02191 0.11369 0.01292
Degrees of Freedom: 51 Total (i.e. Null); 47 Residual
Null Deviance: 1.946
Residual Deviance: 1.707 AIC: -18.07
> fit.shaps
$call
with.milist(data = df, expr = glm(shaps.predicted.H3Bi ~ group +
Age + Gender + Education, family = "gaussian"))
$statistics
$statistics[[1]]
Call: glm(formula = shaps.predicted.H3Bi ~ group + Age + Gender + Education,
family = "gaussian")
Coefficients:
(Intercept) group Age Gender Education
-1.486e-01 5.611e-03 -2.360e-02 -6.384e-03 5.231e-05
Degrees of Freedom: 51 Total (i.e. Null); 47 Residual
Null Deviance: 0.8112
Residual Deviance: 0.7794 AIC: -58.85
如果这对其他人有用:我认为 clean_P,它是 mice 包的一部分,在做列名时会出错。我会提交一个错误。解决方法:手动将列名称更改为更简单的名称。