MICE pooling glm - 某些模型的错误,但不是来自同一数据集的其他模型

问题描述 投票:0回答:1

我用 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
glm r-mice
1个回答
0
投票

如果这对其他人有用:我认为 clean_P,它是 mice 包的一部分,在做列名时会出错。我会提交一个错误。解决方法:手动将列名称更改为更简单的名称。

© www.soinside.com 2019 - 2024. All rights reserved.