问题描述
我一直在使用 R 中的 mouse-package (van Buuren) 执行多重插补,m = 50(50 个插补数据集)和 20 次迭代,用于大约 9 个变量的缺失数据(MAR = 随机缺失)范围从 5 -13%。在此之后,我想继续估计我的数据集的描述性统计数据(即不只对描述性统计数据使用完整的案例分析,还要将结果与我的插补的描述性统计数据进行比较)。所以我现在的问题是,如何继续。
我知道处理 MICE 数据的正确程序是:
- 通过mice函数对缺失数据进行插补,得到多重插补数据集(class mids);
- 通过 with() 函数在每个插补数据集上拟合感兴趣的模型(科学模型),得到一个类 Mira 的对象;
- 将每个模型的估计值合并为一组估计值和标准误差,结果是 mipo 类的对象; 或者,通过 D1() 或 D3() 函数比较来自不同科学模型的汇总估计值。
我的问题是我不明白如何将这个理论应用于我的数据。我已经完成了:
#Load package:
library(mice)
library(dplyr)
#Perform imputation:
Imp_Data <- mice(MY_DATA,m=50,method = "pmm",maxit = 20,seed = 123)
#Make the imputed data in long format:
Imp_Data_Long <- complete(Imp_Data,action = "long",include = FALSE)
然后我假设这个过程对于获取 BMI 变量的中位数是正确的,其中 .imp 变量是插补数据集的数量(即从 1 到 50):
BMI_Medians_50 <- Imp_Data_Long %>% group_by(.imp,Smoker) %>% summarise(Med_BMI = median(BMI))
BMI_Median_Pooled <- mean(BMI_Medians_50$Med_BMI)
我可能完全理解错误,但我非常努力地理解正确的程序,并在 StackOverflow 和 StatQuest 上发现了非常不同的程序。
解决方法
一般来说,您执行多重插补(与单次插补相比),因为您想考虑执行插补带来的不确定性。
丢失的数据最终会丢失 - 我们只能估计真实数据可能是什么样子。通过多重插补,我们生成了多个估计,即真实数据的样子。我们的目标是为估算值的值提供类似概率分布的东西。
对于描述性统计,您不需要使用 rubins 规则进行池化(这些对于线性模型的标准误差和其他指标很重要)。您将分别计算每个 m = 50 个插补数据集的统计数据,然后将它们与所需的指标合并/汇总。
您想要存档的是为您的读者提供有关插补带来的不确定性的信息。 (以及估算值最有可能在哪个范围内的估计)
例如将均值视为描述性统计量。在这里你可以例如提供这些插补数据集的最低均值和最高均值。您可以提供这些均值的均值以及插补数据集均值的标准差。
您的完整案例分析只会提供例如3.3 作为变量的均值。但是,在您的 m=50 多个插补数据集中,相同的平均值可能变化很大,例如从 1.1 到 50.3。这可以为您提供有价值的信息,您应该非常小心地从完整的案例分析中获取 3.3,并且该数据集的这种统计数据通常存在很多不确定性。