Bù khuyết hot-deck

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

Michal Oleszak

Machine Learning Engineer

Lịch sử của hot-deck

  • Bắt nguồn từ thập niên 1950, khi dữ liệu lưu trên thẻ đục lỗ.
  • Duyệt qua dữ liệu qua lại rất chậm.
  • Cục Thống kê Hoa Kỳ đề xuất phương pháp chỉ cần duyệt dữ liệu một lần.

Ảnh một thẻ đục lỗ cũ dùng để lập trình máy tính.

1 Image source: https://en.wikipedia.org/wiki/Punched_card#/media/File:Used_Punchcard_(5151286161).jpg
Xử lý dữ liệu khuyết bằng Imputation trong R

Bù khuyết hot-deck

  • Với mỗi biến, thay mọi giá trị thiếu bằng giá trị quan sát gần nhất trước đó.
  • “Hot-deck” ám chỉ bộ thẻ đục lỗ đang được xử lý.

Nhược điểm

  • Cần dữ liệu MCAR.
  • Hot-deck cơ bản có thể phá vỡ quan hệ giữa các biến.

Ưu điểm

  • Nhanh (chỉ một lượt duyệt dữ liệu).
  • Giá trị bù khuyết không hằng.
  • Mẹo đơn giản giúp giữ quan hệ.
Xử lý dữ liệu khuyết bằng Imputation trong R

Bù khuyết hot-deck trong thực hành

nhanes_imp <- hotdeck(nhanes, variable = c("Height", "Weight"))
head(nhanes_imp)
  Age Gender Weight Height Diabetes TotChol Pulse PhysActive Height_imp Weight_imp
1  16   male   73.2  172.0    FALSE    3.00    76       TRUE      FALSE      FALSE
2  17   male   72.3  176.0    FALSE    2.61    74       TRUE      FALSE      FALSE
3  12   male   57.7  158.9    FALSE    4.27    80       TRUE      FALSE      FALSE
4  16   male   88.9  183.3    FALSE    3.62    58       TRUE      FALSE      FALSE
5  13 female   45.1  157.6    FALSE    2.66    92       TRUE      FALSE      FALSE
6  16 female   48.7  180.7    FALSE    4.32    58      FALSE       TRUE      FALSE
Xử lý dữ liệu khuyết bằng Imputation trong R

Bù khuyết trong từng miền

Một bảng với hai cột: PhysActive và Cân nặng. Có một giá trị thiếu ở Cân nặng. Do các hàng ở thứ tự ngẫu nhiên, một hàng có PhysActive=FALSE đứng trước hàng có PhysActive=TRUE và cân nặng bị thiếu. Điều này cho thấy hot-deck chuyển tiếp giá trị cân nặng từ người không hoạt động sang người hoạt động.

Một bảng với hai cột: PhysActive và Cân nặng. Có một giá trị thiếu ở Cân nặng. Vì dữ liệu được nhóm theo PhysActive, hot-deck chuyển tiếp giá trị của người hoạt động sang người hoạt động khác.

nhanes_imp <- hotdeck(
    nhanes, 
    variable = "Weight", 
    domain_var = "PhysActive"
)
Xử lý dữ liệu khuyết bằng Imputation trong R

Sắp theo biến tương quan

Một bảng với hai biến: Chiều cao và Cân nặng. Có một giá trị thiếu ở Cân nặng. Do các hàng ở thứ tự ngẫu nhiên, một hàng có chiều cao lớn đứng trước hàng có chiều cao nhỏ và cân nặng bị thiếu. Điều này cho thấy hot-deck chuyển tiếp giá trị cân nặng từ người cao sang người thấp.

Một bảng với hai biến: Chiều cao và Cân nặng. Có một giá trị thiếu ở Cân nặng. Vì các hàng được sắp theo Chiều cao, hot-deck chuyển tiếp giá trị cân nặng từ người thấp sang người thấp khác.

nhanes_imp <- hotdeck(
    nhanes, 
    variable = "Weight"
    ord_var = "Height"
)
Xử lý dữ liệu khuyết bằng Imputation trong R

Thực hành bù khuyết hot-deck!

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

Preparing Video For Download...