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

Post on 23-Jan-2018

504 Views

Category:

Technology

6 Downloads

Preview:

Click to see full reader

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日開催決定

top related