SlideShare una empresa de Scribd logo
1 de 28
Descargar para leer sin conexión
⽋損値の考察
2018年4⽉27⽇
⾃⼰紹介
• ID: rysk
• 仕事: インフラ・エンジニア
• Python/機械学習 歴: 2017年秋から
• Kaggle歴: 2018年4⽉から(まだタイタニック⽌まり)
はじめに
• 前回終了した輪読本「Python機械学習プログラミング」の第4章
の会の時……
• ある⼈が⽋損値に関するLTをしてくれた(とても⾯⽩いLTだった)。
• 統計学やデータ分析初⼼者である⾃分はそのLTで⽋損値への対処
の⼤切さを(少し)知った。
• Kaggleのタイタニックチュートリアルを初めてみたら、もろ⽋損
値があるし!
• ちょっと⽋損値について勉強してみた。
⽋損値とは
• Missing ValueあるいはMissing Dataの訳語。
• ⽋測値や⽋落値という訳語もある(⽋.?値で良いのでは?)。
• 要するに、集計したデータセット上にあるデータの⽋け、抜けの
事。
• ⽋損原因は⾊々。
⽋損値の例
タイタニックデータの例、年齢と船室番号に⽋損がある
⽤語
• 観測値: データの内、実際に観測されているもの。つまり
⽋損値以外のデータ。
• ⽋損値: データの中にある抜け。
• 完全データ: ⽋損値がないデータの集合
• 不完全データ: ⽋損値があるデータの集合
⽋損の種類
原因によって、⽋損には3つの種類があります。
1. MCAR (Missing Complete At Random)
2. MAR (Missing At Random)
3. MNAR (Missing Not At Random)
MCAR
• 完全にランダムな原因でデータが⽋損している状態。
• ⼿書きのアンケート⽤紙からデータベースに⼊⼒する際の
漏れとかが代表的な例。
• ⽋損値の中では⼀番対処が簡単。
MAR
• 観測値に応じてデータが⽋損している状態。
• 例えば⼥性は体重や年齢を空⽩にしてアンケートを提出し
やすい、といった状態。⼥性という観測値と、⽋損した体
重や年齢に関連がある。
• 幾つか対処法があり、かなり精度の良い⽅法もある。
MNAR
• 観測値だけでなく⽋損値⾃体にも応じてデータが⽋損し
ている場合。
• 例えば、年収が低い⼈ほどアンケートで年収の欄を空欄
にしがち、という状態。
• ⼀番対処が⼤変。モデルを⼯夫してMNARをMARに変えら
れれば対処できる。
有向グラフで表現
• x: 独⽴変数、⽋損なし
• y: ⽬的変数、⽋損あり
• r: yが⽋損している時1、そうでないとき0を取る確率変数
⽋損値補完⽅法
• リストワイズ削除
• 単⼀代⼊法
• 多重代⼊法
• 機械学習的⼿法
リストワイズ削除
⽋損値がある⾏ごと削除して、そのデータは使わずに推論す
る⽅法。MCARであればこれで対処可能だけど、標本数が減
るので推定は悪化する。
名前 年齢 性別 ⾝⻑
レオナルド・ディカプリオ 22 男 181
ケイト・ウインスレット 21 ⼥ 169
ジェームズ・キャメロン 42 男 ⽋損
セリーヌ・ディオン 20 ⼥ 171
この⾏は削除
単⼀代⼊法
1. ⽋損値を予測するモデルを1つ作る (回帰を例に)
2. そのモデルを使って⽋損値を推定
3. 推定結果で⽋損値を補完
4. 補完した完全データセットを使って本来の⽬的変数を推
定
y1 = wT
1 x
単⼀代⼊法の問題点
• 1つの推定モデルから⽋損値を推定している。
• 従って補完した⽋損値の分散はゼロ。
• ⽋損した真のデータには分散があるはず。
• 補完した完全データは、真のデータに⽐べ分散が⼩さく
なってしまう。
CT
多重代⼊法
1. ⽋損値を予測するモデルを複数作る (m個とする)
2. それらm個のモデルから、m個の⽋損値を推定
3. m個の推定値を補完したm個の完全データセットを作る
4. m個の完全データセットそれぞれを使って、本来の⽬的変
数の推定値をm個得て、これを統合して1つの最終結果に
する
yi = wT
i x (i = 1, 2, ..., m)
CT
多重代⼊法の概念図
機械学習的⼿法(k-NN)
y : ⽬的変数
x1: ⽋損のある独⽴変数
x2, x3: ⽋損のない独⽴変数
とした時、x1を⽬的変数としてx2、x3を独⽴変数としてk-
NNを実⾏しx1を予測。
推定したx1で⽋損を補完した後yを推定。
k-NN以外だとランダム
フォレストを使うもの
もある
本当はこの後
単⼀代⼊でタイタニック
• ⽋損値補完モデルは平均値代⼊
• Kaggleのカーネルでも良くみかける⽅法
• ⽣存予測のモデルはランダムフォレスト
• 特徴量は適宜、ダミー変数化などする
多重代⼊でタイタニック
• ⽋損値予測モデルはMICE
• ⽣存予測モデルはランダムフォレスト
• 特徴量は適宜、ダミー変数化などする
k-NN代⼊でタイタニック
• ⽋損値予測モデルはk-NN
• ⽣存予測モデルはランダムフォレスト
• 特徴量は適宜、ダミー変数化などする
という実践編を紹介
したかったけど
今⽇はLTだし
持ち時間も頃合い
なので
続きはWebで
https://qiita.com/siseru
ご清聴
ありがとうございました。
ト書: ここで盛⼤な拍⼿がおこる
参考⽂献
• ⽋測データ処理 Rによる単⼀代⼊法と多重代⼊法, ⾼橋将宜・渡辺美智⼦, 共⽴出版
• それを捨てるなんてとんでもない, https://www.slideshare.net/kato_kohaku/
imputation-of-missing-values-using-random-forest
• Random Forest missing data algorithms, Fei Tang and Hemant Ishwaran,
http://www.ccs.miami.edu/~hishwaran/papers/TI_SADM_2017.pdf
• Missing Data with Chained Equations, Melissa J. Azur, Elizabeth A.
Stuart, Constantine Frangakis, and Philip J. Leaf, https://
www.ncbi.nlm.nih.gov/pmc/articles/PMC3074241/
• keynoteに貼るSyntax Highlight, https://qiita.com/koudaiii/items/
1a9503141212a2115485

Más contenido relacionado

Similar a 欠損値について

研究室勉強会資料「データ分析チュートリアル」
研究室勉強会資料「データ分析チュートリアル」研究室勉強会資料「データ分析チュートリアル」
研究室勉強会資料「データ分析チュートリアル」ymmt3-lab
 
経済学のための実践的データ分析2. python, R, Jupyter notebook 事始め/統計ソフトちゃんちゃかちゃん
経済学のための実践的データ分析2. python, R, Jupyter notebook 事始め/統計ソフトちゃんちゃかちゃん経済学のための実践的データ分析2. python, R, Jupyter notebook 事始め/統計ソフトちゃんちゃかちゃん
経済学のための実践的データ分析2. python, R, Jupyter notebook 事始め/統計ソフトちゃんちゃかちゃんYasushi Hara
 
量子コンピュータのプログラミング・コンテスト体験記
量子コンピュータのプログラミング・コンテスト体験記量子コンピュータのプログラミング・コンテスト体験記
量子コンピュータのプログラミング・コンテスト体験記Satoyuki Tsukano
 
第7回 NIPS+読み会・関西 Generating Informative and Diverse Conversational Responses v...
第7回 NIPS+読み会・関西 Generating Informative and Diverse Conversational Responses v...第7回 NIPS+読み会・関西 Generating Informative and Diverse Conversational Responses v...
第7回 NIPS+読み会・関西 Generating Informative and Diverse Conversational Responses v...Shinagawa Seitaro
 
rstanで個人のパラメーターを推定した話
rstanで個人のパラメーターを推定した話rstanで個人のパラメーターを推定した話
rstanで個人のパラメーターを推定した話Yuya Matsumura
 
20180129 ビジネスデータ分析勉強会
20180129 ビジネスデータ分析勉強会20180129 ビジネスデータ分析勉強会
20180129 ビジネスデータ分析勉強会Kento Okuyama
 
20190723 mlp lt_bayes_pub
20190723 mlp lt_bayes_pub20190723 mlp lt_bayes_pub
20190723 mlp lt_bayes_pubYoichi Tokita
 
NagoyaStat #4 ご挨拶と前回の復習
NagoyaStat #4 ご挨拶と前回の復習NagoyaStat #4 ご挨拶と前回の復習
NagoyaStat #4 ご挨拶と前回の復習itoyan110
 
Python による 「スクレイピング & 自然言語処理」入門
Python による 「スクレイピング & 自然言語処理」入門Python による 「スクレイピング & 自然言語処理」入門
Python による 「スクレイピング & 自然言語処理」入門Tatsuya Tojima
 
RHTN2018: エンジニアは何故、技術書を書くのか? 執筆のススメ
RHTN2018: エンジニアは何故、技術書を書くのか? 執筆のススメRHTN2018: エンジニアは何故、技術書を書くのか? 執筆のススメ
RHTN2018: エンジニアは何故、技術書を書くのか? 執筆のススメTaira Hajime
 
Rブートキャンプ
RブートキャンプRブートキャンプ
RブートキャンプKosuke Sato
 
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識Katsuhiro Morishita
 
Database Encryption and Key Management for PostgreSQL - Principles and Consid...
Database Encryption and Key Management for PostgreSQL - Principles and Consid...Database Encryption and Key Management for PostgreSQL - Principles and Consid...
Database Encryption and Key Management for PostgreSQL - Principles and Consid...Masahiko Sawada
 
コンピューターの整列処理におけるデータ操作の時間的共起分析
コンピューターの整列処理におけるデータ操作の時間的共起分析コンピューターの整列処理におけるデータ操作の時間的共起分析
コンピューターの整列処理におけるデータ操作の時間的共起分析yamahige
 

Similar a 欠損値について (15)

研究室勉強会資料「データ分析チュートリアル」
研究室勉強会資料「データ分析チュートリアル」研究室勉強会資料「データ分析チュートリアル」
研究室勉強会資料「データ分析チュートリアル」
 
経済学のための実践的データ分析2. python, R, Jupyter notebook 事始め/統計ソフトちゃんちゃかちゃん
経済学のための実践的データ分析2. python, R, Jupyter notebook 事始め/統計ソフトちゃんちゃかちゃん経済学のための実践的データ分析2. python, R, Jupyter notebook 事始め/統計ソフトちゃんちゃかちゃん
経済学のための実践的データ分析2. python, R, Jupyter notebook 事始め/統計ソフトちゃんちゃかちゃん
 
量子コンピュータのプログラミング・コンテスト体験記
量子コンピュータのプログラミング・コンテスト体験記量子コンピュータのプログラミング・コンテスト体験記
量子コンピュータのプログラミング・コンテスト体験記
 
第7回 NIPS+読み会・関西 Generating Informative and Diverse Conversational Responses v...
第7回 NIPS+読み会・関西 Generating Informative and Diverse Conversational Responses v...第7回 NIPS+読み会・関西 Generating Informative and Diverse Conversational Responses v...
第7回 NIPS+読み会・関西 Generating Informative and Diverse Conversational Responses v...
 
Python勉強会 2015-12-02
Python勉強会 2015-12-02Python勉強会 2015-12-02
Python勉強会 2015-12-02
 
rstanで個人のパラメーターを推定した話
rstanで個人のパラメーターを推定した話rstanで個人のパラメーターを推定した話
rstanで個人のパラメーターを推定した話
 
20180129 ビジネスデータ分析勉強会
20180129 ビジネスデータ分析勉強会20180129 ビジネスデータ分析勉強会
20180129 ビジネスデータ分析勉強会
 
20190723 mlp lt_bayes_pub
20190723 mlp lt_bayes_pub20190723 mlp lt_bayes_pub
20190723 mlp lt_bayes_pub
 
NagoyaStat #4 ご挨拶と前回の復習
NagoyaStat #4 ご挨拶と前回の復習NagoyaStat #4 ご挨拶と前回の復習
NagoyaStat #4 ご挨拶と前回の復習
 
Python による 「スクレイピング & 自然言語処理」入門
Python による 「スクレイピング & 自然言語処理」入門Python による 「スクレイピング & 自然言語処理」入門
Python による 「スクレイピング & 自然言語処理」入門
 
RHTN2018: エンジニアは何故、技術書を書くのか? 執筆のススメ
RHTN2018: エンジニアは何故、技術書を書くのか? 執筆のススメRHTN2018: エンジニアは何故、技術書を書くのか? 執筆のススメ
RHTN2018: エンジニアは何故、技術書を書くのか? 執筆のススメ
 
Rブートキャンプ
RブートキャンプRブートキャンプ
Rブートキャンプ
 
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
 
Database Encryption and Key Management for PostgreSQL - Principles and Consid...
Database Encryption and Key Management for PostgreSQL - Principles and Consid...Database Encryption and Key Management for PostgreSQL - Principles and Consid...
Database Encryption and Key Management for PostgreSQL - Principles and Consid...
 
コンピューターの整列処理におけるデータ操作の時間的共起分析
コンピューターの整列処理におけるデータ操作の時間的共起分析コンピューターの整列処理におけるデータ操作の時間的共起分析
コンピューターの整列処理におけるデータ操作の時間的共起分析
 

欠損値について