simputatoinで欠損値補完 - tokyo.r #65
TRANSCRIPT
simputationで欠損値補完
第65回R勉強会@東京
1
@gepuro
自己紹介
• @gepuro
• 本業:ネット広告の分析
• 副業:Hoxo-M Inc.
• 趣味: サッカー,トライアスロン
• 著書
2
{simputation}
• 欠損値補完を良い感じにやってくれるパッケージ
3
データ例
4
データの作り方
5
重回帰分析で補完
6
補完後
7
解説
• Sepal.Lengthを Sepal.WidthとSpeciesで重回帰する
• 説明変数のいずれも欠損してない場合にSepal.Lengthを重回帰で欠損値補完する
8
impute_lm(dat, Sepal.Length ~ Sepal.Width + Species)
表で理解
Sepal.Length(目的変数) Sepal.Width Species
NA 3.5 setosa
NA NA setosa
NA 3.0 NA
9
impute_lm(dat, Sepal.Length ~ Sepal.Width + Species)
補完できる
補完できない
補完できない
Q. 補完できな場合は?
10
A. 説明変数を減らす
表で理解
Sepal.Length(目的変数) Sepal.Width Species
NA 3.5 setosa
NA NA setosa
NA 3.0 NA
11
impute_lm(dat, Sepal.Length ~ Sepal.Width)
補完できる
補完できない
補完できる
中央値での補完
12
複数パターンの欠損の場合
13
%>%でつなげる。{dplyr}の利用
impute_ほげほげ
• impute_cart
• impute_const
• impute_em
• impute_en
• impute_knn
• impute_lm
• impute_median
14
• impute_mf
• impute_pmm
• impute_proxy
• impute_rf
• impute_rhd
• impute_rlm
• impute_shd
%>% の代わりに %>>% を使う
補完のロギング
• 欠損値をどのように補完したかを振り返るようにする
15
{lumberjack}の利用
cellwise.csv に保存される
サンプルコード
16
cellwise.csv
項目名 意味 中身
Step ? 1
Time 実行時刻 2017-09-23 15:14:07 JST
Expression 補完に利用したメソッド impute_lm(Sepal.Length
~ Sepal.Width + Species)
Key cellwise$new(key=“id”)で指定したkey
1
Variable 変数名 Sepal.Length
Old 変更前 NA
new 変更後 5.07657863284595
17
{simputation}で
快適な欠損値補完ライフを
18
参考
• http://schd.ws/hosted_files/user2017/e8/user2017markvanderloo.pdf
• https://github.com/markvanderloo/simputation
• https://cran.r-project.org/web/packages/simputation/vignettes/intro.html
19
告知
20
Japan.R 2017
• 運営メンバーの募集
• https://r-wakalang.slack.com
– #japan-r で開催準備をしてます
• 気軽に覗いてください!!
21
2017年12月2日開催決定