1.加载包mice,加载数据nhanes

library(mice)
data(nhanes)

2.删除缺失值计算变量的相关矩阵

nhanes_complete <- nhanes[complete.cases(nhanes),]
cor(nhanes_complete)

3.用成对删除法计算变量的相关矩阵

nhanes_pairwise <- mice(nhanes, method = "pairwise")
nhanes_pairwise_complete <- complete(nhanes_pairwise)
cor(nhanes_pairwise_complete)

4.比较前两个相关矩阵

可以发现,通过成对删除法填补缺失值后,相关矩阵与完整数据的相关矩阵相比缺少了很多信息,相关系数也相对偏小。

5.用均值法或者众数法填补缺失值

以变量“age”为例,使用均值法填补缺失值:

nhanes_mean <- nhanes
nhanes_mean$age[is.na(nhanes_mean$age)] <- mean(nhanes_mean$age, na.rm = TRUE)

6.从相关矩阵出发,选择最相关的变量用回归、随机回归进行缺失值的填补,注意不同变量类型使用不同的方法

以变量“bmi”为例,使用回归法填补缺失值:

nhanes_regression <- mice(nhanes, method = "norm")
nhanes_regression_complete <- complete(nhanes_regression)
cor(nhanes_regression_complete)

fit <- with(nhanes_regression_complete, lm(bmi ~ age + hyp + chl))
nhanes_regression$predictors <- list(bmi = fit)
nhanes_regression_imputed <- complete(nhanes_regression, 1)

nhanes_regression_imputed$bmi[is.na(nhanes$bmi)] <- nhanes_regression_imputed$bmi[is.na(nhanes$bmi), 1]

7.用多重插补进行缺失值填补

nhanes_mice <- mice(nhanes, method = "pmm", m = 5)
nhanes_mice_complete <- complete(nhanes_mice)
``
缺失数据练习1加载包mice加载数据nhanes2删除缺失值计算变量的相关矩阵3用成对删除法计算变量的相关矩阵4比较前两个相关矩阵5用均值法或者众数法填补缺失值6从相关矩阵出发选择最相关的变量用回归、随机回归进行缺失值的填补注意不同变量类型使用不同的方法7用多重插补进行缺失值填补

原文地址: https://www.cveoy.top/t/topic/fGQN 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录