Skip to main content

Câu chuyện khuyết dữ liệu

1. Khuyết dữ liệu (Missing values) là gì?

Dữ liệu bị khuyết hoặc không đầy đủ (thường được hiển thị như NaN, Null, N/A,… trong Pandas) là 1 thách thức có tác động lớn đến bất kỳ dự án khoa học dữ liệu nào. Việc khuyết dữ liệu xảy ra có thể bởi nhiều nguyên nhân như:

  • Thông tin vốn không tồn tại
  • Người dùng quên điền
  • Lỗi từ phần mềm thu thập dữ liệu
  • Dữ liệu bị mất trong quá trình chuyển thủ công từ cơ sở dữ liệu cũ ...

Mặc dù giải pháp tốt nhất cho việc khuyết dữ liệu là tránh ngay từ đầu, tức là phát triển các chính sách quản lý và thu thập dữ liệu thật tốt. Tuy nhiên, không phải lúc nào việc thu thập dữ liệu cũng dễ dàng và màu hường như vậy.

Xét về mặt chất lượng, dữ liệu bị khuyết có thể được chia về 4 loại:

  • Dữ liệu bị khuyết về cấu trúc
  • Dữ liệu bị khuyết hoàn toàn ngẫu nhiên (MCAR)
  • Dữ liệu bị khuyết ngẫu nhiên (MAR)
  • Dữ liệu bị khuyết không phải ngẫu nhiên (MNAR)

Trong bài viết này, ZootoPi sẽ giúp bạn hiểu được sự khác nhau giữa các loại khuyết dữ liệu này cũng như cách ta có thể xử lý với từng loại để mọi phân tích đều có ý nghĩa.

1.1 Dữ liệu bị khuyết về cấu trúc

Dữ liệu bị khuyết về mặt cấu trúc là dữ liệu bị khuyết vì một lý do hợp lý. Nói cách khác, đó là dữ liệu bị khuyết bởi vì nó không tồn tại.

  • Ví dụ: Kết quả thi 1 học kỳ tại 1 trường đại học bị khuyết điểm 1 số môn của 1 số sinh viên. Điều này có thể xảy ra khi học sinh đã bỏ học môn đó trước kỳ thi hoặc có thể vắng mặt trong buổi thi. Vì vậy, đây là một giá trị bị khuyết về mặt cấu trúc.

  • Giải pháp:

    • Loại trừ những bản ghi có dữ liệu bị khuyết như vậy khỏi bất kỳ phân tích nào về các biến có giá trị bị khuyết về cấu trúc.
    • Luận suy bằng cách chèn số 0 vào những chỗ còn khuyết đó.

1.2 Dữ liệu bị khuyết hoàn toàn ngẫu nhiên (MCAR)

Như tên gọi, dữ liệu bị khuyết trong trường hợp này xảy ra hoàn toàn do ngẫu nhiên, nghĩa là không tồn tại bất kỳ mối quan hệ hay sự liên quan nào giữa dữ liệu bị khuyết với các dữ liệu quan sát được.

1.3 Dữ liệu bị khuyết ngẫu nhiên (MAR)

Dữ liệu bị khuyết trong trường hợp này xảy ra do ngẫu nhiên, tuy nhiên vẫn có mối quan hệ giữa dữ liệu bị khuyết và dữ liệu quan sát được. Điều đó cũng có nghĩa là dữ liệu bị khuyết ngẫu nhiên có tác động đến sự sai lệch của dữ liệu cũng như độ tin cậy của mô hình về sau.

1.4 Dữ liệu bị khuyết không phải ngẫu nhiên (MNAR)

Dữ liệu bị khuyết không phải là ngẫu nhiên mà các giá trị này bị bỏ sót 1 cách có chủ ý, tức là có sự liên quan về mặt xu hướng 1 cách có hệ thống giữa giá trị bị khuyết và giá trị không bị khuyết trong một biến và điều đó có thể tác động đến sự sai lệch của dữ liệu.

2. Phân biệt các loại khuyết dữ liệu

Trong thực tế, khi làm việc với 1 tập dữ liệu và đối mặt với vấn đề mất mát hay khuyết dữ liệu, ta cần phân loại được dữ liệu đang bị khuyết theo cơ chế nào để từ đó đưa ra những hướng giải quyết phù hợp đảm bảo độ tin cậy của dữ liệu.

Thông thường, ta khó có thể phân biệt tường minh giữa các loại khuyết dữ liệu này, đặc biệt là MAR so với MNAR. Tuy nhiên, ta có thể kiểm tra xem dữ liệu khuyết theo MCAR hay MAR thông qua thử nghiệm tạo các biến giả rồi thử nghiệm t-test và kiểm định chi-squared test giữa biến này và các biến khác trong tập dữ liệu để xem liệu sự thiếu hụt trên biến này có liên quan đến giá trị của các biến khác hay không.

Ví dụ: nếu nữ giới thực sự ít có khả năng cho bạn biết cân nặng của họ hơn nam giới, thì chi-squared test sẽ cho bạn biết rằng tỷ lệ khuyết dữ liệu trên biến cân nặng ở phụ nữ cao hơn nam giới. Từ đó, ta có thể kết luận rằng trường cân nặng là MAR.