综合应用

R 中的缺失值填补处理

Michal Oleszak

Machine Learning Engineer

案例研究:非洲的公民自由

head(africa)
  year      country gdp_pc  infl trade    civlib population
1 1972 Burkina Faso    377 -2.92 29.69 0.5000000    5848380
2 1973 Burkina Faso    376  7.60 31.31 0.5000000    5958700
3 1974 Burkina Faso    393  8.72 35.22 0.3333333    6075700
4 1975 Burkina Faso    416 18.76 40.11 0.3333333    6202000
5 1976 Burkina Faso    435 -8.40 37.76 0.5000000    6341030
6 1977 Burkina Faso    448 29.99 41.11 0.6666667    6486870
1 数据来源:https://scholar.harvard.edu/rbates/data
R 中的缺失值填补处理

不完整数据建模

目标:研究公民自由 civlib 与人均 GDP gdp_pc 的关系。

  1. 可视化不完整数据。
    • 哪些变量缺失?
    • 可能的缺失机制是什么?
  2. 插补缺失数据并检查插补质量。
  3. 在插补数据上建模,并考虑插补不确定性。
R 中的缺失值填补处理

所需工具

  • aggr()
  • spineMiss()
  • mice() - with() - pool()
R 中的缺失值填补处理

用 MICE 评估插补质量

  • mice() 会生成多个插补数据集。
  • VIM 的函数逐一可视化会很繁琐。
  • mice 包提供了可自动处理多数据集的绘图函数。
nhanes_multiimp <- mice(nhanes, m = 5, defaultMethod = "pmm")
stripplot(nhanes_multiimp, 
          Weight ~ Height | .imp,
          pch = 20, cex = 2)
R 中的缺失值填补处理

条带图

六个身高与体重散点图的网格。每个图用颜色突出显示插补值。插补值与观测值非常接近,除了颜色外几乎无法区分。

R 中的缺失值填补处理

让我们将所学付诸实践!

R 中的缺失值填补处理

Preparing Video For Download...