• 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 导入包

    1. library(magrittr)
    2. library(dplyr)
    3. library(mice)
    4. library(missForest)

    2.1 导入数据

    1. data(iris)
    2. summary(iris)
    3. # Sepal.Length Sepal.Width Petal.Length
    4. # Min. :4.300 Min. :2.000 Min. :1.000
    5. # 1st Qu.:5.100 1st Qu.:2.800 1st Qu.:1.600
    6. # Median :5.800 Median :3.000 Median :4.350
    7. # Mean :5.843 Mean :3.057 Mean :3.758
    8. # 3rd Qu.:6.400 3rd Qu.:3.300 3rd Qu.:5.100
    9. # Max. :7.900 Max. :4.400 Max. :6.900
    10. # Petal.Width Species
    11. # Min. :0.100 setosa :50
    12. # 1st Qu.:0.300 versicolor:50
    13. # Median :1.300 virginica :50
    14. # Mean :1.199
    15. # 3rd Qu.:1.800
    16. # Max. :2.500

    2.2 随机丢失一定量数据

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

    1. iris_mis <- missForest::prodNA(iris, noNA = 0.1) %>% select(-Species)
    2. summary(iris_mis)
    3. # Sepal.Length Sepal.Width Petal.Length
    4. # Min. :4.300 Min. :2.000 Min. :1.000
    5. # 1st Qu.:5.100 1st Qu.:2.800 1st Qu.:1.500
    6. # Median :5.800 Median :3.000 Median :4.300
    7. # Mean :5.856 Mean :3.049 Mean :3.707
    8. # 3rd Qu.:6.400 3rd Qu.:3.300 3rd Qu.:5.100
    9. # Max. :7.900 Max. :4.200 Max. :6.900
    10. # NA's :16 NA's :15 NA's :7
    11. # Petal.Width
    12. # Min. :0.100
    13. # 1st Qu.:0.300
    14. # Median :1.300
    15. # Mean :1.201
    16. # 3rd Qu.:1.800
    17. # Max. :2.500
    18. # 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就表示查看哪一组的数据

  • 相关阅读:
    五个人的五个成绩
    伪原创工具-免费伪原创软件
    python2环境问题
    gcd(最大公约数)和lcm(最小公倍数)的代码
    mysql基础
    基于水循环优化的BP神经网络(分类应用) - 附代码
    SpringMVC的上传下载
    RNA 25. SCI文章中估计组织浸润免疫细胞和基质细胞群的群体丰度(MCP-counter)
    (53)linux
    购物单 机试题
  • 原文地址:https://blog.csdn.net/qq_40206371/article/details/126020086