データはランダム欠損か?

Pythonで欠損データに対処する

Suraj Donthi

Deep Learning & Computer Vision Consultant

欠損の原因(可能性)

注意 $-$(変数 $\rightarrow$ データフィールド/DataFrame の列)

  • ある変数内で、時点や区間によって単に欠損する値
  • 別の変数が原因で欠損する値
  • 同一または別の変数の欠損が原因で欠損する値
Pythonで欠損データに対処する

欠損の種類

  1. 無作為欠損(MCAR)
  2. ランダム欠損(MAR)
  3. 非ランダム欠損(MNAR)
Pythonで欠損データに対処する

無作為欠損(MCAR)

定義:

「観測値・欠損値いずれとも関係がない欠損」

無作為欠損の例

Pythonで欠損データに対処する

MCAR の例

msno.matrix(diabetes)

diabetes データセットの MCAR

Pythonで欠損データに対処する

ランダム欠損(MAR)

定義:

「欠損は他の観測済みデータと体系的な関係があるが、欠損値そのものとは関係しない」

ランダム欠損の例

Pythonで欠損データに対処する

MAR の例

msno.matrix(diabetes)

diabetes データセットの MAR

Pythonで欠損データに対処する

非ランダム欠損(MNAR)

定義:

「欠損とその値(欠損・非欠損)の間に関係がある」

非ランダム欠損の例

Pythonで欠損データに対処する

MNAR の例

  • Serum_Insulin で並べ替えた diabetes の欠損パターン
sorted = diabetes.sort_values('Serum_Insulin')
msno.matrix(sorted)

diabetes データセットの MNAR

Pythonで欠損データに対処する

まとめ

  • 欠損の主な理由
    • 無作為欠損(MCAR)
    • ランダム欠損(MAR)
    • 非ランダム欠損(MNAR)
  • 変数を並べ替えて欠損パターンを検出
  • 欠損を MCAR・MAR・MNAR に当てはめる
Pythonで欠損データに対処する

Ayo berlatih!

Pythonで欠損データに対処する

Preparing Video For Download...