在 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 中以插補處理遺漏值