simputatoinで欠損値補完 - tokyo.r #65

21
simputation欠損値補完 65R勉強会@東京 1 @gepuro

Upload: gepuro-hayakawa

Post on 23-Jan-2018

504 views

Category:

Technology


6 download

TRANSCRIPT

Page 1: simputatoinで欠損値補完 - Tokyo.R #65

simputationで欠損値補完

第65回R勉強会@東京

1

@gepuro

Page 2: simputatoinで欠損値補完 - Tokyo.R #65

自己紹介

• @gepuro

• 本業:ネット広告の分析

• 副業:Hoxo-M Inc.

• 趣味: サッカー,トライアスロン

• 著書

2

Page 3: simputatoinで欠損値補完 - Tokyo.R #65

{simputation}

• 欠損値補完を良い感じにやってくれるパッケージ

3

Page 4: simputatoinで欠損値補完 - Tokyo.R #65

データ例

4

Page 5: simputatoinで欠損値補完 - Tokyo.R #65

データの作り方

5

Page 6: simputatoinで欠損値補完 - Tokyo.R #65

重回帰分析で補完

6

Page 7: simputatoinで欠損値補完 - Tokyo.R #65

補完後

7

Page 8: simputatoinで欠損値補完 - Tokyo.R #65

解説

• Sepal.Lengthを Sepal.WidthとSpeciesで重回帰する

• 説明変数のいずれも欠損してない場合にSepal.Lengthを重回帰で欠損値補完する

8

impute_lm(dat, Sepal.Length ~ Sepal.Width + Species)

Page 9: simputatoinで欠損値補完 - Tokyo.R #65

表で理解

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)

補完できる

補完できない

補完できない

Page 10: simputatoinで欠損値補完 - Tokyo.R #65

Q. 補完できな場合は?

10

A. 説明変数を減らす

Page 11: simputatoinで欠損値補完 - Tokyo.R #65

表で理解

Sepal.Length(目的変数) Sepal.Width Species

NA 3.5 setosa

NA NA setosa

NA 3.0 NA

11

impute_lm(dat, Sepal.Length ~ Sepal.Width)

補完できる

補完できない

補完できる

Page 12: simputatoinで欠損値補完 - Tokyo.R #65

中央値での補完

12

Page 13: simputatoinで欠損値補完 - Tokyo.R #65

複数パターンの欠損の場合

13

%>%でつなげる。{dplyr}の利用

Page 14: simputatoinで欠損値補完 - Tokyo.R #65

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

Page 15: simputatoinで欠損値補完 - Tokyo.R #65

%>% の代わりに %>>% を使う

補完のロギング

• 欠損値をどのように補完したかを振り返るようにする

15

{lumberjack}の利用

Page 16: simputatoinで欠損値補完 - Tokyo.R #65

cellwise.csv に保存される

サンプルコード

16

Page 17: simputatoinで欠損値補完 - Tokyo.R #65

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

Page 18: simputatoinで欠損値補完 - Tokyo.R #65

{simputation}で

快適な欠損値補完ライフを

18

Page 19: simputatoinで欠損値補完 - Tokyo.R #65

参考

• 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

Page 20: simputatoinで欠損値補完 - Tokyo.R #65

告知

20

Page 21: simputatoinで欠損値補完 - Tokyo.R #65

Japan.R 2017

• 運営メンバーの募集

• https://r-wakalang.slack.com

– #japan-r で開催準備をしてます

• 気軽に覗いてください!!

21

2017年12月2日開催決定