Maeshori missing

5,543 views

Published on

0 Comments
19 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
5,543
On SlideShare
0
From Embeds
0
Number of Embeds
1,182
Actions
Shares
0
Downloads
72
Comments
0
Likes
19
Embeds 0
No embeds

No notes for slide

Maeshori missing

  1. 1. ∼シリーズ前処理2013∼ 欠測への対応 @dichika
  2. 2. 自己紹介•  @dichika•  現代史に興味があります –  ジャニーズ –  プロレス –  参考書籍があれば教えて下さい
  3. 3. 前処理とは•  手元にある観測データを、意図する分析手法 が適用できる形にまでもっていく方法、と広く 定義します。•  たとえば
  4. 4. たとえば•  欠測値への対応•  連続データの離散化•  外れ値処理•  単位の変換(標準化)•  サンプリング•  不均衡データ•  属性抽出•  データ形式の変換(時系列、グラフ等)
  5. 5. 俺たちの日常やりたかった分析 前処理
  6. 6. シリーズ前処理について•  一説では、データ分析の8-9割の時間を占め るといわれながら、その方法についてはあまり 語られることのない前処理について迫っていく シリーズです。•  私の発表をたたき台にして、「ぼくのかんがえ たさいきょうのまえしょり」をみんな共有してく れると嬉しいです。•  一人で続けるのはしんどいので、誰か続いてく れると嬉しいです。
  7. 7. これまでの前処理@Tokyo.R•  Rで学ぶロバスト推定(第13回) –  外れ値•  xtsパッケージで時系列解析(第15回) –  データ形式の変換•  Rを用いた地理的情報解析(第16回) –  データ形式の変換•  不均衡データのクラス分類(第20回) –  不均衡データ•  二部グラフを使ったソーシャルネットワーク(第21回) –  データ形式の変換•  抽出・推定・誤差評価(第27回) –  サンプリング
  8. 8. ということで
  9. 9. 本日は欠測への対応
  10. 10. 最初に•  欠測とは、データの欠落を想定しています•  R in Actionの第15章超おすすめなので欠測 の扱いについて手っ取り早く知りたければここ を読むのがオススメ 身長 体重 145 42 168 65 192 89 158 NA
  11. 11. 欠測への対応はこれだ!欠測の可視化 どのように欠測しているか可視化欠測について ランダムな欠測かどうか判断する 考える欠測処理を 欠測に合わせた手法を選ぶ 選ぶ
  12. 12. まずは可視化から欠測の可視化 どのように欠測しているか可視化欠測について ランダムな欠測かどうか判断する 考える欠測処理を 欠測に合わせた手法を選ぶ 選ぶ
  13. 13. 欠測の可視化•  sleepデータを例に取る –  VIMパッケージに含まれている –  哺乳類の睡眠に関するデータ –  体重、脳の重さ、睡眠時間、レム睡眠の時間等1 0種類の変数 –  今回はレム睡眠(Dream)に着目
  14. 14. VIM(vimではない)で可視化•  VIMパッケージが便利 –  matrixplot •  各列に対して標準化を行った上で図示 •  標準化により、文字列は欠測扱いになるので注意 –  marginplot •  2変数を散布図+箱ひげ図で図示 •  箱ひげ図は、もう一方の変数が欠測している/いない 場合での比較になっている
  15. 15. Index 0 10 20 30 40 50 60 BodyWgtBrainWgt NonD Dream Sleep Span Gest matrixplot Pred Exp Danger
  16. 16. Index 0 10 20 30 40 50 60 BodyWgtBrainWgt に欠測しやすい NonDとDreamは共 NonD Dream Sleep Span Gest Pred Exp Danger 並び替えて欠測パターンを確認
  17. 17. marginplot 100 80 60 Dreamが Span 40欠測した場合の箱ひげ図が 赤 20 0 Spanの 4 欠測数 1 12 0 1 2 3 4 5 6 共通した 欠測数 Dream Dreamの 欠測数
  18. 18. ちょっと考える欠測の可視化 どのように欠測しているか可視化欠測について ランダムな欠測かどうか判断する 考える欠測処理を 欠測に合わせた手法を選ぶ 選ぶ
  19. 19. 欠測はランダムか•  MCAR(Missing Completely At Random) –  欠測が完全にランダム•  MAR (Missing At Random) –  欠測をデータ内で統制すればランダム •  これを仮定することが多い•  NMAR (Not Missing At Random) –  欠測がランダムではない •  欠測メカニズムをモデル化して組み込む必要あり •  難しいので今回は扱わない
  20. 20. よろしい、ならばMARだ•  原則、MARとして対応するのが無難 –  後述する多重代入法もしくは最尤法で対応•  事前知識及び可視化の結果からNMARの疑 いがある場合のみ対応を考える –  欠測をモデリング •  Heckmanモデル等 –  感度分析 •  モデルや特定のパラメータを変えてどの推定結果が変 わるか –  かなりめんどくさい
  21. 21. 考えたところで手法を選ぶ欠測の可視化 どのように欠測しているか可視化欠測について ランダムな欠測かどうか判断する 考える欠測処理を 欠測に合わせた手法を選ぶ 選ぶ
  22. 22. 欠測処理を選ぶ 推定したパラメータにバイアス 欠測処理 内容 が生じるどうか MCAR MAR NMAR 欠測データを行単位で リストワイズ 削除 ○削除 分析に用いた変数の範 ペアワイズ 囲で欠測データを行単 ○ 位で削除 欠測を考慮した形で最 最尤法 尤法を適用する(EMア ○ ○ △ ルゴリズム等適用) 平均値や、他の変数に 単一代入法 よる予測値を代入 ○代入 多重代入法 この後説明 ○ ○
  23. 23. 削除はバイアスが生じる 推定したパラメータにバイアス 欠測処理 内容 が生じるどうか MCAR MAR NMAR 欠測データを行単位で リストワイズ 削除 ○削除 分析に用いた変数の範 ペアワイズ 囲で欠測データを行単 ○ 位で削除 欠測を考慮した形で最 最尤法 尤法を適用する(EMア ○ ○ △ ルゴリズム等適用) 平均値や、他の変数に 単一代入法 よる予測値を代入 ○代入 多重代入法 この後説明 ○ ○
  24. 24. ぶっちゃけ最尤法か多重代入法•  MARを前提に考えると削除は無い 10%は•  欠測の割合に着目 目安 –  10%未満→リストワイズでも良いという話も –  10%以上→最尤法か多重代入法•  最尤法と多重代入法どっちを選ぶかは好み –  欠測の教科書など読む時には、この人は最尤法 推しなんだなとか考えて読む必要がある
  25. 25. せっかくだから俺はmiceをえらぶぜ•  多重代入法の方が直観的にわかりやすかった –  個人の感想です –  最尤法もmvnmleパッケージを使えばできるが理解 が間に合わなかった –  あと、なんとなくRubinリスペクト•  多重代入法にはいくつかアルゴリズムがある –  今回はMICEアルゴリズム •  miceパッケージとして実装されている
  26. 26. ここでRubin伝説•  ハーバードの統計学の教授•  Educational Testing Service(ETS)に勤めて いた数年であげた業績 –  Rubinの因果推論モデル –  傾向スコア –  多重代入法 –  EMアルゴリズム
  27. 27. 多重代入法(MICEアルゴリズム) 分析 代入 統合
  28. 28. 多重代入法(MICEアルゴリズム)1.  代入 –  なんらかの方法で欠測値を予測し、その結果を代 入したデータを複数作る •  初期設定はPredictive mean matching2.  分析 –  作ったデータそれぞれに対して目的とする分析手 法の適用 •  例えば回帰分析3.  統合 –  分析で求めたパラメータを統合する
  29. 29. Predictive mean matching•  他の変数を使って、欠測値を予測する•  予測値に近い値を欠測していない値からもっ てくる•  もってきた値からランダムに1つ取り出して欠 測値を補完する•  これを全ての欠測値に対して適用する
  30. 30. 実際の使用例library(mice)data(sleep, package = "VIM")imp <- mice(sleep) # 代入fit <- with(imp, lm(Dream ~ Span + Gest)) # 分析pooled <- pool(fit) # 統合summary(pooled) # 結果の確認
  31. 31. 実際の使用例 withmice pool
  32. 32. 補足事項•  作成するデータセットの数を指定できる –  mice(data, m = 5)•  miceを適用した結果から単一のデータセットを 抽出できる 作成した データセットの –  complete(imp, action = 3) 範囲内の数を指定•  with関数で使用できる分析手法 –  線形回帰がメイン –  lm、glm、gam、nbrm
  33. 33. まとめ•  欠測はMARのつもりで最尤法か多重代入法•  理論(特にバイアス)はすっとばしたので参考 資料をご覧ください•  Rubinすごい
  34. 34. 参考資料(書籍)文献名 著者 出版社等 コメントR in Action Robert Manning, 15章が実にわかりやすい。忙しい人はこ Kabacoff 2011 れだけ読んでおけば良い。Flexible Stef van CRC Press, multiple imputationについて網羅されてImputation of Buuren 2012 る。Missing Data不完全データの 岩崎 学 エコノミスト 新しくはないが日本語で網羅されている。統計解析 社, 2002 おすすめ。欠測データ解析 逸見 昌之 統計数理 統計数理研究所の公開講座。NMARに踏法(講義資料) 星野 崇宏 研究所, み込んだ解説あり。資料は非公開。 2012
  35. 35. 参考資料(web その1)文献名 著者 出版社等 コメント欠測値データ解析 狩野裕 https://sites.google.com/ 日本語かつケーススタディあの意味と有効性 site/ksp397kano/ り。おすすめ。Handling Missing Paul D. http:// MIと最尤法の比較あり。このData by Maximum Allison www.statisticalhorizons.com 人は最尤法推し。この人も欠Likelihood /wp-content/uploads/ 測データに関して教科書を書 MissingDataByML.pdf いている。Missing Data and http://www.upa.pdx.edu/ SEMに関しての文献だが簡潔Missing Data IOA/newsom/semclass/ にまとまってるので復習するEstimation ho_missing.pdf 時にチートシートっぽく使える。何があっても割り付 佐藤俊哉 http://www.kbs.med.kyoto- 医学系の例。けどおりに解析する 松岡淨 u.ac.jp/01Sep15.pdf
  36. 36. 参考資料(web その2)文献名 著者 出版社等 コメントMissing data 村山航 http://www4.ocn.ne.jp/ 日本語。最尤法と多重代analysis ~murakou/ 入法の丁寧な説明あり。 missing_data.pdf おすすめ。CRAN Task View http://cran.r- Rでパッケージを探すとき(Multivariate→  project.org/web/views/ はまずここから。Missing data) Multivariate.html
  37. 37. 今後のシリーズ前処理•  最終的には、チェックリストを作りたい•  欲しいデータ形式に向けてサンプルデータをひ たすら綺麗にしていくデータ前処理ハッカソン をしてもよいかもしれない
  38. 38. enjoy!!!

×