maeshori missing

38
~シリーズ前処理2013~ 欠測への対応 @dichika

Upload: daisuke-ichikawa

Post on 22-May-2015

3.254 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Maeshori missing

~シリーズ前処理2013~�欠測への対応�

@dichika�

Page 2: Maeshori missing

自己紹介�

•  @dichika�•  現代史に興味があります �– ジャニーズ�– プロレス �– 参考書籍があれば教えて下さい�

Page 3: Maeshori missing

前処理とは�

•  手元にある観測データを、意図する分析手法が適用できる形にまでもっていく方法、と広く定義します。 �

•  たとえば…�

Page 4: Maeshori missing

たとえば…�

•  欠測値への対応�•  連続データの離散化�•  外れ値処理�•  単位の変換(標準化)�•  サンプリング�•  不均衡データ�•  属性抽出�•  データ形式の変換(時系列、グラフ等) �

Page 5: Maeshori missing

俺たちの日常�

前処理�

やりたかった分析�

Page 6: Maeshori missing

シリーズ前処理について �

•  一説では、データ分析の8-9割の時間を占めるといわれながら、その方法についてはあまり語られることのない前処理について迫っていくシリーズです。 �

•  私の発表をたたき台にして、「ぼくのかんがえたさいきょうのまえしょり」をみんな共有してくれると嬉しいです。 �

•  一人で続けるのはしんどいので、誰か続いてくれると嬉しいです。 �

Page 7: Maeshori missing

これまでの前処理@Tokyo.R�

•  Rで学ぶロバスト推定(第13回)�–  外れ値�

•  xtsパッケージで時系列解析(第15回)�–  データ形式の変換�

•  Rを用いた地理的情報解析(第16回)�–  データ形式の変換�

•  不均衡データのクラス分類(第20回)�–  不均衡データ�

•  二部グラフを使ったソーシャルネットワーク(第21回)�–  データ形式の変換�

•  抽出・推定・誤差評価(第27回)�–  サンプリング�

Page 8: Maeshori missing

ということで�

Page 9: Maeshori missing

本日は�欠測への対応�

Page 10: Maeshori missing

最初に�

•  欠測とは、データの欠落を想定しています �•  R in Actionの第15章超おすすめなので欠測の扱いについて手っ取り早く知りたければここを読むのがオススメ �

身長� 体重�

145� 42�

168� 65�

192� 89�

158� NA�

Page 11: Maeshori missing

欠測への対応はこれだ!�

欠測の可視化� どのように欠測しているか可視化�

欠測について �考える�

ランダムな欠測かどうか判断する�

欠測処理を �選ぶ�

欠測に合わせた手法を選ぶ�

Page 12: Maeshori missing

まずは可視化から�

欠測の可視化� どのように欠測しているか可視化�

欠測について �考える�

ランダムな欠測かどうか判断する�

欠測処理を �選ぶ�

欠測に合わせた手法を選ぶ�

Page 13: Maeshori missing

欠測の可視化�

•  sleepデータを例に取る�– VIMパッケージに含まれている�– 哺乳類の睡眠に関するデータ�– 体重、脳の重さ、睡眠時間、レム睡眠の時間等10種類の変数�

– 今回はレム睡眠(Dream)に着目�

Page 14: Maeshori missing

VIM(vimではない)で可視化�

•  VIMパッケージが便利�– matrixplot �•  各列に対して標準化を行った上で図示�•  標準化により、文字列は欠測扱いになるので注意�– marginplot �•  2変数を散布図+箱ひげ図で図示 �•  箱ひげ図は、もう一方の変数が欠測している/いない場合での比較になっている�

Page 15: Maeshori missing

matrixplot�

BodyWgt

BrainWgt

NonD

Dream

Sleep

Span

Gest

Pred

Exp

Danger

010

20

30

40

50

60

Index

Page 16: Maeshori missing

並び替えて欠測パターンを確認�

BodyWgt

BrainWgt

NonD

Dream

Sleep

Span

Gest

Pred

Exp

Danger

010

20

30

40

50

60

Index

NonDとDreamは共に欠測しやすい�

Page 17: Maeshori missing

marginplot�

4

121

0 1 2 3 4 5 6

020

40

60

80

100

Dream

Span

共通した �欠測数�

Spanの�欠測数�

Dreamの�欠測数�

Dreamが �欠測した場合の箱ひげ図が

赤�

Page 18: Maeshori missing

ちょっと考える�

欠測の可視化� どのように欠測しているか可視化�

欠測について �考える�

ランダムな欠測かどうか判断する�

欠測処理を �選ぶ�

欠測に合わせた手法を選ぶ�

Page 19: Maeshori missing

欠測はランダムか �

•  MCAR(Missing Completely At Random)�– 欠測が完全にランダム�

•  MAR (Missing At Random)�– 欠測をデータ内で統制すればランダム�

•  これを仮定することが多い�

•  NMAR (Not Missing At Random)�– 欠測がランダムではない�

• 欠測メカニズムをモデル化して組み込む必要あり�• 難しいので今回は扱わない�

Page 20: Maeshori missing

よろしい、ならばMARだ �

•  原則、MARとして対応するのが無難�– 後述する多重代入法もしくは最尤法で対応�

•  事前知識及び可視化の結果からNMARの疑いがある場合のみ対応を考える�

– 欠測をモデリング�•  Heckmanモデル等 �

– 感度分析�• モデルや特定のパラメータを変えてどの推定結果が変わるか �

– かなりめんどくさい�

Page 21: Maeshori missing

考えたところで手法を選ぶ�

欠測の可視化� どのように欠測しているか可視化�

欠測について �考える�

ランダムな欠測かどうか判断する�

欠測処理を �選ぶ�

欠測に合わせた手法を選ぶ�

Page 22: Maeshori missing

欠測処理を選ぶ�

欠測処理� 内容�

推定したパラメータにバイアスが生じるどうか �

MCAR� MAR � NMAR�

削除�

リストワイズ �欠測データを行単位で削除� ○� ×� ×�

ペアワイズ�

分析に用いた変数の範囲で欠測データを行単位で削除�

○� ×� ×�

最尤法�欠測を考慮した形で最尤法を適用する(EMアルゴリズム等適用)�

○� ○� △�

代入�単一代入法�

平均値や、他の変数による予測値を代入� ○� ×� ×�

多重代入法� この後説明� ○� ○� ×�

Page 23: Maeshori missing

削除はバイアスが生じる�

欠測処理� 内容�

推定したパラメータにバイアスが生じるどうか �

MCAR� MAR � NMAR�

削除�

リストワイズ �欠測データを行単位で削除� ○� ×� ×�

ペアワイズ�

分析に用いた変数の範囲で欠測データを行単位で削除�

○� ×� ×�

最尤法�欠測を考慮した形で最尤法を適用する(EMアルゴリズム等適用)�

○� ○� △�

代入�単一代入法�

平均値や、他の変数による予測値を代入� ○� ×� ×�

多重代入法� この後説明� ○� ○� ×�

Page 24: Maeshori missing

ぶっちゃけ最尤法か多重代入法�

•  MARを前提に考えると削除は無い��

•  欠測の割合に着目�– 10%未満→リストワイズでも良いという話も�– 10%以上→最尤法か多重代入法 �

•  最尤法と多重代入法どっちを選ぶかは好み �– 欠測の教科書など読む時には、この人は最尤法推しなんだなとか考えて読む必要がある�

10%は目安�

Page 25: Maeshori missing

せっかくだから俺はmiceをえらぶぜ �

•  多重代入法の方が直観的にわかりやすかった �– 個人の感想です �– 最尤法もmvnmleパッケージを使えばできるが理解が間に合わなかった �

– あと、なんとなくRubinリスペクト �

•  多重代入法にはいくつかアルゴリズムがある�– 今回はMICEアルゴリズム �

•  miceパッケージとして実装されている�

Page 26: Maeshori missing

ここでRubin伝説�

•  ハーバードの統計学の教授�•  Educational Testing Service(ETS)に勤めていた数年であげた業績 �

– Rubinの因果推論モデル�– 傾向スコア�– 多重代入法�– EMアルゴリズム �

Page 27: Maeshori missing

多重代入法(MICEアルゴリズム)�

代入�

分析�

統合�

Page 28: Maeshori missing

多重代入法(MICEアルゴリズム)�

1. 代入�– なんらかの方法で欠測値を予測し、その結果を代入したデータを複数作る�

• 初期設定はPredictive mean matching �

2. 分析�– 作ったデータそれぞれに対して目的とする分析手法の適用�• 例えば回帰分析�

3. 統合�– 分析で求めたパラメータを統合する�

Page 29: Maeshori missing

Predictive mean matching �

•  他の変数を使って、欠測値を予測する�•  予測値に近い値を欠測していない値からもってくる�

•  もってきた値からランダムに1つ取り出して欠測値を補完する�

•  これを全ての欠測値に対して適用する�

Page 30: Maeshori missing

library(mice) data(sleep, package = "VIM") imp <- mice(sleep) # 代入 fit <- with(imp, lm(Dream ̃ Span + Gest)) # 分析 pooled <- pool(fit) # 統合 summary(pooled) # 結果の確認�

実際の使用例�

Page 31: Maeshori missing

実際の使用例�

mice

with

pool

Page 32: Maeshori missing

補足事項�

•  作成するデータセットの数を指定できる�– mice(data, m = 5)

•  miceを適用した結果から単一のデータセットを抽出できる�

– complete(imp, action = 3) •  with関数で使用できる分析手法 �– 線形回帰がメイン �–  lm、glm、gam、nbrm

作成した �データセットの �範囲内の数を指定�

Page 33: Maeshori missing

まとめ �

•  欠測はMARのつもりで最尤法か多重代入法�•  理論(特にバイアス)はすっとばしたので参考資料をご覧ください�

•  Rubinすごい�

Page 34: Maeshori missing

参考資料(書籍)�文献名� 著者� 出版社等� コメント �

R in Action � Robert Kabacoff �

Manning, 2011�

15章が実にわかりやすい。忙しい人はこれだけ読んでおけば良い。 �

Flexible Imputation of Missing Data�

Stef van Buuren �

CRC Press, 2012�

multiple imputationについて網羅されてる。 �

不完全データの統計解析�

岩崎 学� エコノミスト社, 2002 �

新しくはないが日本語で網羅されている。おすすめ。 �

欠測データ解析法(講義資料)�

逸見 昌之 �星野 崇宏 �

統計数理研究所, 2012�

統計数理研究所の公開講座。NMARに踏み込んだ解説あり。資料は非公開。 �

Page 35: Maeshori missing

参考資料(web その1)�文献名� 著者� 出版社等� コメント �

欠測値データ解析の意味と有効性�

狩野裕� https://sites.google.com/site/ksp397kano/��

日本語かつケーススタディあり。おすすめ。 �

Handling Missing Data by Maximum Likelihood�

Paul D. Allison�

http://www.statisticalhorizons.com/wp-content/uploads/MissingDataByML.pdf��

MIと最尤法の比較あり。この人は最尤法推し。この人も欠測データに関して教科書を書いている。 �

Missing Data and Missing Data Estimation �

http://www.upa.pdx.edu/IOA/newsom/semclass/ho_missing.pdf ��

SEMに関しての文献だが簡潔にまとまってるので復習する時にチートシートっぽく使える。 �

何があっても割り付けどおりに解析する�

佐藤俊哉�松岡淨�

http://www.kbs.med.kyoto-u.ac.jp/01Sep15.pdf�

医学系の例。 �

Page 36: Maeshori missing

参考資料(web その2)�文献名� 著者� 出版社等� コメント �

Missing data analysis �

村山航� http://www4.ocn.ne.jp/̃murakou/missing_data.pdf �

日本語。最尤法と多重代入法の丁寧な説明あり。おすすめ。 �

CRAN Task View(Multivariate→ Missing data)�

http://cran.r-project.org/web/views/Multivariate.html �

Rでパッケージを探すときはまずここから。 �

Page 37: Maeshori missing

今後のシリーズ前処理�

•  最終的には、チェックリストを作りたい�•  欲しいデータ形式に向けてサンプルデータをひたすら綺麗にしていくデータ前処理ハッカソンをしてもよいかもしれない�

Page 38: Maeshori missing

enjoy!!! �