R 中的缺失值填补处理
Michal Oleszak
Machine Learning Engineer
缺失数据问题可分三类。区分它们很重要,因为解决方案不同。
数据集中缺失位置完全随机,不依赖任何其他数据。
示例:
一个气象传感器测温并把数据发送到数据库。传感器故障时,数据库出现缺失记录。
缺失位置依赖于其他可观测数据。
示例:
维护时传感器被关闭,数据库出现缺失温度。因维护团队周末不工作,缺失位置取决于星期几。
缺失位置取决于其自身的缺失值。
示例:
极寒时传感器结冰停工,无法记录极低温。因此温度变量的缺失位置取决于该变量本身的取值。
若直接丢弃不完整观测会怎样?
示例:均值差异的 t 检验
p 值小 → 拒绝原假设 → 均值不同
p 值大 → 不拒绝原假设 → 均值相等
目标:检验一个变量的缺失比例在另一个变量的不同取值下是否不同。
示例:PhysActive 的缺失比例在男性与女性间是否不同?
检验流程:
PhysActive 是否缺失的虚拟变量。nhanes <- nhanes %>%
mutate(missing_phys_active = is.na(PhysActive))
missing_phys_active_male <- nhanes %>%
filter(Gender == "male") %>%
pull(missing_phys_active)
missing_phys_active_female <- nhanes %>%
filter(Gender == "female") %>%
pull(missing_phys_active)
t.test(missing_phys_active_female, missing_phys_active_male)
Welch Two Sample t-test
data: missing_phys_active_female and missing_phys_active_male
t = -1.7192, df = 781.18, p-value = 0.08597
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-0.044414688 0.002940477
sample estimates:
mean of x mean of y
0.02083333 0.04157044
R 中的缺失值填补处理