R 笔记 MICE

Posted UQI-LIUWJ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R 笔记 MICE相关的知识,希望对你有一定的参考价值。

1 MICE 算法理论部分

        MICE(Multiple Imputation by Chained Equations)是一种处理数据集中缺失数据的稳健、信息丰富的方法。 该过程通过一系列迭代的预测模型“填充”(估算)数据集中的缺失数据。

        在每次迭代中,数据集中的每个指定变量都使用数据集中的其他变量进行估算。 不断迭代在,直至收敛。

1.1 MICE举例

         上述这个过程一直持续到所有指定的变量都被插补。 如果没有收敛,则可以运行额外的迭代,尽管通常不超过 5 次迭代是必要的。

         插补的准确性取决于数据集中的信息密度。 没有相关性的完全独立变量的数据集不会产生准确的插补。

1.2 PMM,Predictive Mean Matching

        MICE 可以使用称为预测均值匹配 (PMM) 的程序来选择要估算的值。 PMM 从原始非缺失数据中选择一个数据点,该数据点的预测值接近缺失样本的预测值。

         选择最接近的 N个数据点作为候选值,从中随机选择一个值来进行补全。

 2 R语言MICE

2.0 导入包

library(magrittr)
library(dplyr)
library(mice)
library(missForest)

2.1 导入数据

data(iris)
summary(iris)


#  Sepal.Length    Sepal.Width     Petal.Length  
# Min.   :4.300   Min.   :2.000   Min.   :1.000  
# 1st Qu.:5.100   1st Qu.:2.800   1st Qu.:1.600  
# Median :5.800   Median :3.000   Median :4.350  
# Mean   :5.843   Mean   :3.057   Mean   :3.758  
# 3rd Qu.:6.400   3rd Qu.:3.300   3rd Qu.:5.100  
# Max.   :7.900   Max.   :4.400   Max.   :6.900  

#  Petal.Width          Species  
# Min.   :0.100   setosa    :50  
# 1st Qu.:0.300   versicolor:50  
# Median :1.300   virginica :50  
# Mean   :1.199                  
# 3rd Qu.:1.800                  
# Max.   :2.500  

2.2 随机丢失一定量数据

随机在数据里产生 10% 的 缺失值。同时把 Species 这个分类变量也去掉。

iris_mis <- missForest::prodNA(iris, noNA = 0.1) %>%    select(-Species)

summary(iris_mis)
#  Sepal.Length    Sepal.Width     Petal.Length  
# Min.   :4.300   Min.   :2.000   Min.   :1.000  
# 1st Qu.:5.100   1st Qu.:2.800   1st Qu.:1.500  
# Median :5.800   Median :3.000   Median :4.300  
# Mean   :5.856   Mean   :3.049   Mean   :3.707  
# 3rd Qu.:6.400   3rd Qu.:3.300   3rd Qu.:5.100  
# Max.   :7.900   Max.   :4.200   Max.   :6.900  
# NA's   :16      NA's   :15      NA's   :7      
#  Petal.Width   
# Min.   :0.100  
# 1st Qu.:0.300  
# Median :1.300  
# Mean   :1.201  
# 3rd Qu.:1.800  
# Max.   :2.500  
# NA's   :13     

2.3 可视化缺失数据

md.pattern(iris_mis)

        表达的意思是Petal.Length一共7个missing 数据,其中两个和第二列的Petal.Weight在同样的坐标处丢失数据;剩下5个只有在自己的坐标处丢失数据。 

2.4 进行补全

imputed_Data <- mice(iris_mis, m=5, maxit = 50, method = 'pmm', seed = 123)
  • m = 5 ,表示生成 5 组填补好的数据
  • maxit = 50,每次产生填补数据的迭代次数,这里取 50 次
  • method = ‘pmm’,使用1.2介绍的 Predictive Mean Matching 的方法(连续型数据采用之)

2.5 查看数据

由于我们这边生成了5组数据,所以可以一组一组查看

completeData <- mice::complete(imputed_Data,2)

后面这个2就表示查看哪一组的数据

以上是关于R 笔记 MICE的主要内容,如果未能解决你的问题,请参考以下文章

Text to Image 文本生成图像定量评价指标分析笔记 Metric Value总结 ISFIDR-prec等

R语言ggplot2可视化自定义多个图例(legend)标签之间的距离实战(例如,改变数据点颜色和数据点大小图例之间的距离)

R语言与虚拟变量模型

R语言plotly可视化:可视化箱图数据点自定义设置箱图中数据点的显示方式添加抖动数据点无异常数据点(whisker轴须边界包含所有数据)可疑异常值为数据点异常值为数据点(outlier)

吴裕雄--天生自然 R语言开发学习:处理缺失数据的高级方法(续一)

R语言使用ggplot2包的快速可视化函数qplot绘制散点图(设置每个数据点的文本标签信息)实战