数据是否随机缺失?

R 的可扩展数据处理

Michael Kane

Assistant Professor, Yale University

R 的可扩展数据处理

缺失数据类型

  • 完全随机缺失(MCAR)
  • 随机缺失(MAR)
  • 非随机缺失(MNAR)
R 的可扩展数据处理

MCAR

完全随机缺失

  • 无法预测哪些值缺失
  • 可删除缺失数据
R 的可扩展数据处理

MAR

随机缺失

  • 缺失性依赖于数据集中的其他变量
  • 用多重插补估计缺失值
R 的可扩展数据处理

MNAR

非随机缺失

  • 既非 MCAR 也非 MAR
  • 变量间存在确定性关系
R 的可扩展数据处理

本课程中的缺失数据处理

  • 本课程不全面覆盖缺失机制

  • 我们仅检验数据是否可能为 MCAR,并删除缺失值

R 的可扩展数据处理

快速检验 MAR

  • 生成指示列:缺失记为 1,否则为 0
  • 用逻辑回归将其他变量回归到该指示列上
  • 显著的 p 值提示为 MAR
  • 对其他有缺失的列重复该步骤
  • 多次回归可能偶然显著,需按回归次数调整显著性阈值
R 的可扩展数据处理

MAR 快速检验示例

# Our dependent variable
is_missing <- rbinom(1000, 1, 0.5)

# Our independent variables data_matrix <- matrix(rnorm(1000*10), nrow = 1000, ncol = 10) # A vector of p-values we'll fill in p_vals <- rep(NA, ncol(data_matrix))
R 的可扩展数据处理

MAR 快速检验示例

# Perform logistic regression
for (j in 1:ncol(data_matrix)) {
 s <- summary(glm(is_missing ~ data_matrix[, j]), 
              family = binomial)
              p_vals[j] <- s$coefficients[2, 4]
 }

# Show the p-values p_vals
0.5930082 0.7822695 0.7560343 0.3689330 0.8757048 
0.8812320 0.8281008 0.4888898 0.4781299 0.5655739
R 的可扩展数据处理

Ayo berlatih!

R 的可扩展数据处理

Preparing Video For Download...