多重插补数据集的置信区间和多元回归

机器算法验证 回归 多重回归 置信区间 缺失数据 多重插补
2022-04-03 14:35:28

我生成了 20 个估算数据集来处理缺失值。使用 SPSS,我无法使用这个多重插补数据集进行多重回归和计算置信区间。有没有办法在 SPSS 中进行这些测试?如果是,如何?如果没有,我可以使用其他哪些软件?还是有其他选择?

关于研究的背景信息:我有 156 个案例。每个案例/人必须回答202个项目。总共 31512 个项目的答案中有 0.75% 缺失。

2个回答

尽管您问题中的信息不太有意义(0.75% 的缺失与 156 个观察值),但您问题的答案是您需要应用 Rubin 的规则来汇集对 20 个估算数据集的分析。本质上,这涉及简单地平均点估计,但标准误差没有被平均,因为插补之间以及插补内部存在差异。

您可以使用任何统计软件应用鲁宾规则,但您必须在每个估算数据集上运行分析模型,然后手动(或以编程方式)计算合并值。

或者,您可以只使用miceR 中的包并使用提供的pool函数。例如使用 nhanes 数据集:

> library(mice)    
> imp <- mice(nhanes, seed = 15)  # perform imputations with defaults

> fit <- with(imp, lm(chl ~ age + bmi))   # fit the analysis model to each imputed dataset
> round(summary(pool(fit), conf.int = TRUE), 3)
            estimate std.error statistic     df p.value    2.5 %  97.5 %
(Intercept)   -7.222    68.901    -0.105  9.462   0.919 -161.933 147.490
age           36.655    10.351     3.541 11.529   0.004   13.998  59.311
bmi            5.199     2.156     2.412  9.332   0.038    0.349  10.050

这会使用鲁宾规则生成汇总估计,包括标准误差、置信区间和 p 值。

有一个新的解决方案:新的 R 包 ( hmi , Speidel et al 2020)。它处理丢失的数据插补+像老鼠一样的系数池,但也处理分层设计。这将解决多重测量/人的问题(又名纵向数据、重复测量、随机效应)。

使用 sleepstudy 数据集的简单演示如下所示:

# load required libraries
library(hmi)    # imputation
library(lme4)   # mixed effects models

# simulate 10% missing cells (not 10% missing rows)
# while avoiding rows missing both variables
set.seed(321321)
sleep <- sleepstudy
iremove <- sample(nrow(sleepstudy), size = 0.1*nrow(sleepstudy))
sleep$Reaction[head(iremove, length(iremove)/2)] <- NA
sleep$Days[tail(iremove, length(iremove)/2)] <- NA

# Impute missing data and fit the model
# ! this takes a few minutes to run !
myForm <- formula(Reaction ~ 1 + Days + (1|Subject))
sleep.imp <- hmi(data = sleep, 
                 model_formula = myForm,
                 # family = Gamma(link = "log"),
                 m = 10)

# Get the pooled model coefficients
summary(sleep.imp$pooling)

根据文档,池化也遵循鲁本的规则。(注意:为了简洁起见,我省略了诊断检查,但应该完成!)

作为附加说明:如果将 202 个项目用作多元回归中的预测变量,则共线性可能是一个问题。

我希望这会有所帮助!