通过mice包进行多重插补

通过mice包应用多重插补的步骤

基于mice包的分析通常符合以下分析过程:

library(mice)
imp <- mice(data, m)
fit <- with(imp, analysis)
pooled <- pool(fit)
summary(pooled)

其中,

  • data是一个包含缺失值的矩阵或数据框。
  • imp是一个包含m个插补数据集的列表对象,同时还含有完成插补过程的信息。 默认m为5。
  • analysis是一个表达式对象,用来设定应用于m个插补数据集的统计分析方法。方法包括
    做线性回归模型的lm()函数、做广义线性模型的glm()函数、做广义可加模型的gam(),以及做负二项模型的nbrm()函数。
    表达式在函数的括号中, ~的左边是应变量,
    右边是预测变量(用+符号分隔开)。
  • fit是一个包含m个单独统计分析结果的列表对象。
  • pooled是一个包含这m个统计分析平均结果的列表对象

实例

 imp <- mice(sleep, seed=1234)
 summary(imp)
 fit <- with(imp, lm(Dream ~ Span + Gest))
 pooled <- pool(fit)
 summary(pooled)

补充

  1. predictorMatrix是预测矩阵,1代表由列变量来预测行变量,0代表否,该矩阵可以改变
    如果我想要不做梦时长( NonD)的值的插补不由体重( BodyWgt )情况所影响,则可以通过改变predictorMatrix以实现。
predictorMatrix1 <- imp$predictorMatrix
head(predictorMatrix1,10)
imp2 <- mice(sleep, predictorMatrix = predictorMatrix1,seed=1234)
  1. 插补后的数据亦可以进行单变量分析
    假设该例中我们研究不做梦时长( NonD)与面临的总危险度( Danger)之间的关系,危险度有多个分级,故使用非参数检验中的Kruskal-Wallis检验:
    仅需改变“analysis”即
kw <- with(imp2,kruskal.test(NonD ~ Danger))

你可能感兴趣的:(通过mice包进行多重插补)