我生成了 20 个估算数据集来处理缺失值。使用 SPSS,我无法使用这个多重插补数据集进行多重回归和计算置信区间。有没有办法在 SPSS 中进行这些测试?如果是,如何?如果没有,我可以使用其他哪些软件?还是有其他选择?
关于研究的背景信息:我有 156 个案例。每个案例/人必须回答202个项目。总共 31512 个项目的答案中有 0.75% 缺失。
我生成了 20 个估算数据集来处理缺失值。使用 SPSS,我无法使用这个多重插补数据集进行多重回归和计算置信区间。有没有办法在 SPSS 中进行这些测试?如果是,如何?如果没有,我可以使用其他哪些软件?还是有其他选择?
关于研究的背景信息:我有 156 个案例。每个案例/人必须回答202个项目。总共 31512 个项目的答案中有 0.75% 缺失。
尽管您问题中的信息不太有意义(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 个项目用作多元回归中的预测变量,则共线性可能是一个问题。
我希望这会有所帮助!