Xử lý dữ liệu khuyết bằng Imputation trong R
Michal Oleszak
Machine Learning Engineer
Vấn đề dữ liệu thiếu có thể chia thành ba loại. Phân biệt chúng rất quan trọng vì mỗi loại cần cách xử lý khác nhau.
Vị trí giá trị thiếu là ngẫu nhiên hoàn toàn, không phụ thuộc dữ liệu nào khác.
Ví dụ:
Một cảm biến thời tiết đo nhiệt độ và gửi về cơ sở dữ liệu. Có một số bản ghi thiếu khi cảm biến bị hỏng.
Vị trí giá trị thiếu phụ thuộc vào dữ liệu quan sát được khác.
Ví dụ:
Có một số nhiệt độ bị thiếu khi cảm biến tắt để bảo trì. Đội bảo trì không làm việc cuối tuần, nên vị trí giá trị thiếu phụ thuộc vào ngày trong tuần.
Vị trí giá trị thiếu phụ thuộc chính vào các giá trị bị thiếu.
Ví dụ:
Khi cực lạnh, cảm biến bị đóng băng và ngừng hoạt động, nên không ghi nhiệt độ rất thấp. Do đó, vị trí giá trị thiếu của biến nhiệt độ phụ thuộc vào chính giá trị của biến này.
Nếu ta đơn giản loại các quan sát thiếu thì sao?
Ví dụ: t-test cho chênh lệch trung bình
p-value nhỏ → bác bỏ giả thuyết không → trung bình khác nhau
p-value lớn → không bác bỏ giả thuyết không → trung bình bằng nhau
Mục tiêu: kiểm tra tỷ lệ giá trị thiếu ở một biến có khác nhau theo giá trị của biến khác không.
Ví dụ: tỷ lệ thiếu ở PhysActive có khác giữa nam và nữ không?
Quy trình kiểm định:
PhysActive có thiếu hay không.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
Xử lý dữ liệu khuyết bằng Imputation trong R