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