Thế giá trị thiếu bằng trung bình

Xử lý dữ liệu khuyết bằng Imputation trong R

Michal Oleszak

Machine Learning Engineer

Thuật ngữ về thế giá trị thiếu

Imputation = suy đoán hợp lý cho giá trị thiếu

  • Thế dựa trên quan sát tương tự (donor-based) - điền giá trị thiếu từ các quan sát đầy đủ khác.
  • Thế dựa trên mô hình - dự đoán giá trị thiếu bằng mô hình thống kê hoặc học máy.

Chương này tập trung vào phương pháp donor-based:

  • Thế trung bình
  • Hot-deck
  • kNN
Xử lý dữ liệu khuyết bằng Imputation trong R

Thế trung bình

Bảng có hai cột: dữ liệu gốc (có một giá trị thiếu) và dữ liệu sau thế (giống cột gốc nhưng giá trị thiếu được thế bằng trung bình).

Thế trung bình phù hợp với chuỗi thời gian dao động ngẫu nhiên quanh một trung bình dài hạn.

Với dữ liệu chéo, thế trung bình thường rất kém:

  • Phá vỡ quan hệ giữa biến.
  • Giá trị được thế không có phương sai.
Xử lý dữ liệu khuyết bằng Imputation trong R

Thực hành: thế trung bình

Nhiệm vụ: thế trung bình HeightWeight trong dữ liệu NHANES.

  • Tạo biến nhị phân chỉ báo giá trị ban đầu bị thiếu.
nhanes <- nhanes %>% 
  mutate(Height_imp = ifelse(is.na(Height), TRUE, FALSE)) %>% 
  mutate(Weight_imp = ifelse(is.na(Weight), TRUE, FALSE))
  • Thay giá trị thiếu ở HeightWeight bằng trung bình tương ứng.
nhanes_imp <- nhanes %>% 
  mutate(Height = ifelse(is.na(Height), mean(Height, na.rm = TRUE), Height)) %>% 
  mutate(Weight = ifelse(is.na(Weight), mean(Weight, na.rm = TRUE), Weight))
Xử lý dữ liệu khuyết bằng Imputation trong R

Dữ liệu NHANES sau khi thế trung bình

nhanes_imp %>%
    select(Weight, Height, Height_imp, Weight_imp) %>%
    head()
     Weight   Height Height_imp Weight_imp
1  73.20000 166.2499       TRUE      FALSE
2  72.30000 166.2499       TRUE      FALSE
3  57.70000 158.9000      FALSE      FALSE
4  88.90000 183.3000      FALSE      FALSE
5  45.10000 157.6000      FALSE      FALSE
6  66.77065 158.4000      FALSE       TRUE
Xử lý dữ liệu khuyết bằng Imputation trong R

Đánh giá chất lượng thế: margin plot

nhanes_imp %>% select(Weight, Height, Height_imp, Weight_imp) %>% marginplot(delimiter="imp")

Biểu đồ lề: scatter "Height" vs "Weight", các giá trị được thế ở một trong hai biến được tô màu khác.

Xử lý dữ liệu khuyết bằng Imputation trong R

Vấn đề với thế trung bình

Phá vỡ quan hệ giữa biến:

  • Sau khi thế trung bình cho HeightWeight, tương quan dương yếu đi.
  • Mô hình dự đoán biến này từ biến kia sẽ bị nhiễu bởi các giá trị thế ngoại lai và cho kết quả sai lệch.

Không có biến thiên ở dữ liệu được thế:

  • Độ biến thiên giảm làm sai số chuẩn bị đánh giá thấp. Điều này cản trở kiểm định giả thuyết và ước lượng khoảng tin cậy đáng tin cậy.
Xử lý dữ liệu khuyết bằng Imputation trong R

Thế bằng trung vị và mode

  • Thay vì trung bình, có thể thế bằng trung vị hoặc mode.
  • Trung vị phù hợp hơn khi dữ liệu có ngoại lai.
  • Với biến phân loại, không tính được trung bình hay trung vị, nên dùng mode.
  • Trung vị và mode có cùng nhược điểm như thế trung bình.

Biểu đồ lề: scatter "Height" vs "Weight", các giá trị được thế ở một trong hai biến được tô màu khác.

Xử lý dữ liệu khuyết bằng Imputation trong R

Ayo berlatih!

Xử lý dữ liệu khuyết bằng Imputation trong R

Preparing Video For Download...