Data Wow Analysis

Data Scienceもいいけれど、Data基盤も作れるようになりたいな、っと。

データ解析における"欠測メカニズム"の選択:level 1

今回は基礎をメモ。codeも数式もないので、あしからず...

昨今のデータサ○エンティストブームに伴い、急激に高度な分析を扱うようになった気がしますが、高度な分析手法にばかり目をとられてしまい、誤った分析結果を導き出してしまうことは、悪。
客観的な数値の正しさは、前処理や正しい分析手法の選択が必要不可欠。くっそめんどくさいけど、正しくデータを見て、判断する能力を今の内から血肉に沁み混ましておこう。
今回は、データを扱う場面において、否応なく接する機会があるであろう「欠損値・欠損データ」の扱うに関しての理論的なメモ、そしてその扱いや補完に至る手順に関する初期段階のお話。

"欠測のメカニズム"の種類*1

欠測を含むデータ解析では、欠測の発生に関するメカニズムを理解することが正しい分析に不可欠。

  1. 欠測は完全にランダム(Missing Completely At Random = MCAR
  2. 欠測はランダム(Missing At Random = MAR
  3. 欠測は無視できない(non-ignorable

の3種類に分類される(Rubin, 1987)
多変量データの解析においては、MCARの場合であれば欠測は完全に無視できる。
MARでは、分析の目的や解析手法によっては、無視可能。しかし、うまく解析しないと結果に偏りが生じる可能性が高い。

そのメカニズムの判断基準は、

  1. MCAR:\(x_1\)及び\(x_2\)の両方の値に依存しない
  2. MAR:\(x_1\)の値にのみ依存し、\(x_2\)の値には依存しない
  3. non-ignorable:\(x_2\)(及び\(x_1\))の値に依存する

例えば、身体測定のデータを例に、

  • 完全データ
番号(ID) 身長(\(x_1\)) 体重(\(x_2\))
1 170 65
2 175 66
3 160 60
4 180 70
5 170 70
6 169 60
  • MCAR = 完全にランダム
番号(ID) 身長(\(x_1\)) 体重(\(x_2\))
1 170 65
2 175 66
3 160 -
4 180 -
5 170 70
6 169 60
  • MAR = 身長170cm以下の個体の体重が欠測
番号(ID) 身長(\(x_1\)) 体重(\(x_2\))
1 170 65
2 175 66
3 160 -
4 180 70
5 170 70
6 169 -
  • non-ignorable = 欠損値\(x_2\)に依存(70kg以上の個体が欠測→データ上ではわからない)
番号(ID) 身長(\(x_1\)) 体重(\(x_2\))
1 170 65
2 175 66
3 160 60
4 180 -
5 170 -
6 169 60

欠測への対処法

欠測が含まれるデータセットの解析において留意すべき点*2は、

  1. データの持つ情報を過不足なく取り入れる
  2. 欠測のメカニズムを十分に反映した解析を行う
  3. 欠測に伴う結論の偏りをなくす
  4. 欠測による情報のロスを適切に評価する
  5. 欠測を過度に恐れない

その代表的な対処法は、4種類*3  

  1. 1箇所でも欠測がある個体は取り除き(case-wise deletion)、完全データとして解析(complete-case analysis) データセット数に対して、欠測値のある個体数の割合が極めて少ない場合には扱える。非常に簡単だが、結果が有用である保証はない。 あまりオススメはできない。

  2. 個体のどこかでの変量に欠測があったとしても他の得られた観測値を使って解析(available-case analysis) 平均値の計算のように、他の個体の値が欠測しているかどうかは無関係は場合がある。(いわば、無視なのかな) このように分析の対象となる観測値全てを扱う方法。

  3. 欠測値に何らかの値を代入して、完全データの手法を適用(imputing or fill-in methods)

    1. 単一値代入法(single imputation)(よく論文で用いられている)
      欠損箇所に1つの値を代入
      1. Mean(Median)
        観測データからのみ計算した平均値(中央値)を代入する。MCARの場合は平均値(中央値)による推定は偏りを持たないが、バラツキを過小評価する傾向有り。 MARの場合では、平均値にも偏りが生じる可能性があるため、オススメできない。
      2. Worst
        観測値の中で、「最も悪い値」を代入。平均値の偏りあり、データの変動を過大評価する傾向有り。
      3. Regression
        予測値を代入。計算は面倒だが、上記の方法と比較すると最もらしい推定値が導かれる可能性が高い。MARの場合は平均値に偏りは生じないが、分散を過小評価する。
      4. Hot Deck
        背景データの似ている個体を同じデータセット内から探し、対応する値を用いる。官庁統計でよく使われるらしい。 どのメカニズムの場合でも計算結果に偏りは生じないが、探し出すのが難しい。
      5. Cold Deck
        背景データの似ている個体を"異なる"データセット内から探し、対応する値を用いる。 用いるデータセットの評価が必要。
    2. 多重代入法(multiple imputation) 複数個の値を代入し擬似的な完全データセット複数個作成 D.B.Rubinによって発展されたもの(Rubin, 1987)。計算の手間があまりかからなければ推奨。
  4. 欠測はそのままモデル化して解析(direct methods) 欠測が無視可能でない場合にはそうせざるを得ない場合が多い。解析にかかる労力大。

サンプルデータ作って代入法の比較計算はまた今度。 今日はメモだけ。

参考文献
  1. ロジスティック回帰分析―SASを利用した統計解析の実際

ロジスティック回帰分析―SASを利用した統計解析の実際 (統計ライブラリー)

ロジスティック回帰分析―SASを利用した統計解析の実際 (統計ライブラリー)

  1. 不完全データの統計解析

不完全データの統計解析 (統計学大系シリーズ)

不完全データの統計解析 (統計学大系シリーズ)

  1. Statistical Analysis with Missing Data

Statistical Analysis with Missing Data (Wiley Series in Probability and Statistics)

Statistical Analysis with Missing Data (Wiley Series in Probability and Statistics)

*1:不完全データの統計解析を参考に

*2:同じ

*3:同じ