SlideShare a Scribd company logo
1 of 17
ちょっと詳しいMissing Dataの
お話
~Rubin’s Rule~
2014/03/29
Tokyo.R #37
@Hiro_macchan
はじめに
• この資料は個人の見解で有り、いかなる所属組織の公式見解で
はありません。
2014/3/29 2
自己紹介
• Matsui Hiroki (RPT,MPH)
• 出身:琵琶湖 住まい:荒川 職場:文京区
• 職業:臨床疫学と医療政策に関するSQLを書きな
がら、ルーターの設定をする下っ端アンチリア充
研究者。
• Twitter: Hiro_macchan
未熟者ですので間違い等は指摘して下さ
い。
(できれば、お手柔らかに。。)
2014/3/29 3
背景
• 仕事柄、予測モデルの構築ではなく、因果関係の推計を行うた
めにデータを扱うことが多い。
• データは不完全であることが多い。
• 欠測したデータの取り扱いを勉強する機会があった。
• Rubin’s Rule すげぇと感じたので少し紹介したい。 。
2014/3/29 4
これまでのあらすじ
Tokyo.R #28
http://www.slideshare.net/dichika/maeshori-missing
臨床疫学研究における報告の質向上のための統計学の研究会
第14回 研究集会資料(資料一部非公開)
http://blue.zero.jp/yokumura/workshop.html
行動計量学会 第16回春の合宿セミナー
欠測データ解析から統計的因果推論へー近年の動向とガイドラインー
星野崇宏
オンライン資料無し
2014/3/29 5
これまでのあらすじ
Tokyo.R #28
http://www.slideshare.net/dichika/maeshori-missing
臨床疫学研究における報告の質向上のための統計学の研究会
第14回 研究集会資料(資料一部非公開)
http://blue.zero.jp/yokumura/workshop.html
行動計量学会 第16回春の合宿セミナー
欠測データ解析から統計的因果推論へー近年の動向とガイドラインー
星野崇宏
オンライン資料無し
ここで、触れられていなかっ
話をする事を目標とします。
2014/3/29 6
これまでのあらすじ
Tokyo.R #28
http://www.slideshare.net/dichika/maeshori-missing
• 欠測を可視化する。
• 欠測を分類する。
MCAR、MAR、MNAR
• 分類にあった対応をする。
最尤法か多重代入法(MI)
• Rubin すごい。
2014/3/29 7
これまでのあらすじ
多重代入法(MI)とは
M個の Imputed data M個の Estimator
各データでの
parameter
estimate
Missing Data Pooled Estimator
Imputation Data の作成
解析
統合
2014/3/29 8
これまでのあらすじ
多重代入法(MI)とは
• R で多重代入法を実行するパッケージ
• Norm
• Hmisc
• mi
• mice: Multiple imputation by Chained Equations
• Amelia
2014/3/29 9
これまでのあらすじ
miceで行う多重代入法(MI)とは
M個の Imputed data M個の Estimator
各データでの
parameter
estimate
Missing Data Pooled Estimator
Imputation Data の作成
mice
解析:with
統合:pool
pool(with(mice(data),model))2014/3/29 10
これまでのあらすじ
miceで行う多重代入法(MI)とは
M個の Imputed data M個の Estimator
各データでの
parameter
estimate
Missing Data Pooled Estimator
Imputation Data の作成
mice()
解析:with()
統合:pool
()
pool(with(mice(data),model))2014/3/29 11
Rubin’s Rules
Rubin (1987), Little and Rubin (2002)
2014/3/29 12
実際にRubin’s Rule を使ってみる
使用するMissing Data
R のmice パッケージに含まれる、nhanes データ
25名のAge, BMI, hyp, chl 欠損有。
age bmi hyp chl
1.00
2.00 22.70 1.00 187.00
1.00 1.00 187.00
3.00
1.00 20.40 1.00 113.00
3.00 184.00
2014/3/29 13
実際にRubin’s Rule を使ってみる。
library(mice)
imp_data <- mice::mice(nhanes, seed = 1, m = 20)
fit <- with(imp_data, lm(chl ~ age + bmi))
summary(pool(fit))
est se t df Pr(>|t|) lo 95 hi 95
(Interce
pt)
-0.97 68.08 -0.01 13.17 0.99 -147.85 145.92
age 31.99 12.04 2.66 9.84 0.02 5.10 58.88
bmi 5.12 2.21 2.32 12.96 0.04 0.35 9.88
まずは、mice 使ってやってみる。
2014/3/29 14
実際にRubin’s Rule を使ってみる。
# 各imputed data にlmを当てはめて、推計値と標準偏差を引っ張る。
model_Estimate <- function(x){
coef(summary(lm(data = x, formula = chl ~ age + bmi)))[, "Estimate"]
}
model_inSD <- function(x){
coef(summary(lm(data = x, formula = chl ~ age + bmi)))[, "Std. Error"]
}
# complete 関数からimputed data をリストにいったんまとめる。
comp_list <- list()
for (i in 1:20){
comp_list[[i]] <- complete(imp_data, i)
}
# EstimateとSDのマトリックスを吐く
Estimate_Matrix <- sapply(comp_list, model_Estimate)
SD_matrix <- sapply(comp_list, model_inSD)
# Rubin's Ruleを適応し統合
M <- 20
estimated_beta <- mean(Estimate_Matrix["age", ])
estimated_beta_V <- mean(SD_matrix["age", ]^2)
estimated_beta_V_2 <- (1 + (1/M)) * (sum(((Estimate_Matrix["age", ] - estimated_beta)^2)/(M - 1)))
# age の推計量とSDを表示
c(estimated_beta, (estimated_beta_V + estimated_beta_V_2)^(1/2))
> 31.99 12.04
2014/3/29
15
実際にRubin’s Rule を使ってみる。
# 各imputed data にlmを当てはめて、推計値と標準偏差を引っ張る。
model_Estimate <- function(x){
coef(summary(lm(data = x, formula = chl ~ age + bmi)))[, "Estimate"]
}
model_inSD <- function(x){
coef(summary(lm(data = x, formula = chl ~ age + bmi)))[, "Std. Error"]
}
# complete 関数からimputed data をリストにいったんまとめる。
comp_list <- list()
for (i in 1:20){
comp_list[[i]] <- complete(imp_data, i)
}
# EstimateとSDのマトリックスを吐く
Estimate_Matrix <- sapply(comp_list, model_Estimate)
SD_matrix <- sapply(comp_list, model_inSD)
# Rubin's Ruleを適応し統合
M <- 20
estimated_beta <- mean(Estimate_Matrix["age", ])
estimated_beta_V <- mean(SD_matrix["age", ]^2)
estimated_beta_V_2 <- (1 + (1/M)) * (sum(((Estimate_Matrix["age", ] - estimated_beta)^2)/(M - 1)))
# age の推計量とSDを表示
c(estimated_beta, (estimated_beta_V + estimated_beta_V_2)^(1/2))
> 31.99 12.04
2014/3/29
16
できた!!!
まとめ
• mice に限らず多くのMultiple Imputation は Rubin’s Rule による。
• Rubin’s Rule 自体はかなり簡単。
• pool(with(mice(data),model)) はかなり広範なモデルに適応できそ
う。
• 例えば
• Imputed data にクラスターを想定して、lme4を適応しpool
• Imputed data にPropensity Score を適応しpool
• Rubin すげぇ。
2014/3/29 17

More Related Content

What's hot

ベイズ統計入門
ベイズ統計入門ベイズ統計入門
ベイズ統計入門
Miyoshi Yuya
 
多重代入法の書き方 公開用
多重代入法の書き方 公開用 多重代入法の書き方 公開用
多重代入法の書き方 公開用
Koichiro Gibo
 
ロジスティック回帰分析の入門 -予測モデル構築-
ロジスティック回帰分析の入門 -予測モデル構築-ロジスティック回帰分析の入門 -予測モデル構築-
ロジスティック回帰分析の入門 -予測モデル構築-
Koichiro Gibo
 

What's hot (20)

ベイズ統計入門
ベイズ統計入門ベイズ統計入門
ベイズ統計入門
 
Rで因子分析 商用ソフトで実行できない因子分析のあれこれ
Rで因子分析 商用ソフトで実行できない因子分析のあれこれRで因子分析 商用ソフトで実行できない因子分析のあれこれ
Rで因子分析 商用ソフトで実行できない因子分析のあれこれ
 
Stanコードの書き方 中級編
Stanコードの書き方 中級編Stanコードの書き方 中級編
Stanコードの書き方 中級編
 
時系列解析の使い方 - TokyoWebMining #17
時系列解析の使い方 - TokyoWebMining #17時系列解析の使い方 - TokyoWebMining #17
時系列解析の使い方 - TokyoWebMining #17
 
第4回DARM勉強会 (構造方程式モデリング)
第4回DARM勉強会 (構造方程式モデリング)第4回DARM勉強会 (構造方程式モデリング)
第4回DARM勉強会 (構造方程式モデリング)
 
多重代入法の書き方 公開用
多重代入法の書き方 公開用 多重代入法の書き方 公開用
多重代入法の書き方 公開用
 
ロジスティック回帰分析の書き方
ロジスティック回帰分析の書き方ロジスティック回帰分析の書き方
ロジスティック回帰分析の書き方
 
Stan超初心者入門
Stan超初心者入門Stan超初心者入門
Stan超初心者入門
 
馬に蹴られるモデリング
馬に蹴られるモデリング馬に蹴られるモデリング
馬に蹴られるモデリング
 
第4回DARM勉強会 (多母集団同時分析)
第4回DARM勉強会 (多母集団同時分析)第4回DARM勉強会 (多母集団同時分析)
第4回DARM勉強会 (多母集団同時分析)
 
潜在クラス分析
潜在クラス分析潜在クラス分析
潜在クラス分析
 
StanとRでベイズ統計モデリング読書会 導入編(1章~3章)
StanとRでベイズ統計モデリング読書会 導入編(1章~3章)StanとRでベイズ統計モデリング読書会 導入編(1章~3章)
StanとRでベイズ統計モデリング読書会 導入編(1章~3章)
 
Chapter9 一歩進んだ文法(前半)
Chapter9 一歩進んだ文法(前半)Chapter9 一歩進んだ文法(前半)
Chapter9 一歩進んだ文法(前半)
 
これからの仮説検証・モデル評価
これからの仮説検証・モデル評価これからの仮説検証・モデル評価
これからの仮説検証・モデル評価
 
ロジスティック回帰分析の入門 -予測モデル構築-
ロジスティック回帰分析の入門 -予測モデル構築-ロジスティック回帰分析の入門 -予測モデル構築-
ロジスティック回帰分析の入門 -予測モデル構築-
 
03 「重回帰分析」の入門
03 「重回帰分析」の入門03 「重回帰分析」の入門
03 「重回帰分析」の入門
 
『バックドア基準の入門』@統数研研究集会
『バックドア基準の入門』@統数研研究集会『バックドア基準の入門』@統数研研究集会
『バックドア基準の入門』@統数研研究集会
 
MCMCによるベイズ因子分析法について
MCMCによるベイズ因子分析法についてMCMCによるベイズ因子分析法について
MCMCによるベイズ因子分析法について
 
マルコフ連鎖モンテカルロ法と多重代入法
マルコフ連鎖モンテカルロ法と多重代入法マルコフ連鎖モンテカルロ法と多重代入法
マルコフ連鎖モンテカルロ法と多重代入法
 
社会心理学者のための時系列分析入門_小森
社会心理学者のための時系列分析入門_小森社会心理学者のための時系列分析入門_小森
社会心理学者のための時系列分析入門_小森
 

Viewers also liked

傾向スコア:その概念とRによる実装
傾向スコア:その概念とRによる実装傾向スコア:その概念とRによる実装
傾向スコア:その概念とRによる実装
takehikoihayashi
 
rstanで情報仮説によるモデル評価してみる@Hjiyama.R
rstanで情報仮説によるモデル評価してみる@Hjiyama.Rrstanで情報仮説によるモデル評価してみる@Hjiyama.R
rstanで情報仮説によるモデル評価してみる@Hjiyama.R
Masaru Tokuoka
 

Viewers also liked (20)

エクセルで統計分析 統計プログラムHADについて
エクセルで統計分析 統計プログラムHADについてエクセルで統計分析 統計プログラムHADについて
エクセルで統計分析 統計プログラムHADについて
 
多重代入法(Multiple Imputation)の発表資料
多重代入法(Multiple Imputation)の発表資料多重代入法(Multiple Imputation)の発表資料
多重代入法(Multiple Imputation)の発表資料
 
傾向スコアマッチと多重補完法の解説 その1
傾向スコアマッチと多重補完法の解説 その1傾向スコアマッチと多重補完法の解説 その1
傾向スコアマッチと多重補完法の解説 その1
 
Rで学ぶ観察データでの因果推定
Rで学ぶ観察データでの因果推定Rで学ぶ観察データでの因果推定
Rで学ぶ観察データでの因果推定
 
Tokyo r25 hiro_macchan
Tokyo r25 hiro_macchanTokyo r25 hiro_macchan
Tokyo r25 hiro_macchan
 
Japan r.3
Japan r.3Japan r.3
Japan r.3
 
傾向スコアマッチと多重補完法の解説 その2
傾向スコアマッチと多重補完法の解説 その2傾向スコアマッチと多重補完法の解説 その2
傾向スコアマッチと多重補完法の解説 その2
 
操作変数法の書き方_田淵貴大
操作変数法の書き方_田淵貴大操作変数法の書き方_田淵貴大
操作変数法の書き方_田淵貴大
 
Maeshori missing
Maeshori missingMaeshori missing
Maeshori missing
 
傾向スコア:その概念とRによる実装
傾向スコア:その概念とRによる実装傾向スコア:その概念とRによる実装
傾向スコア:その概念とRによる実装
 
Tokyo r hiromatsu
Tokyo r hiromatsuTokyo r hiromatsu
Tokyo r hiromatsu
 
医療費ts
医療費ts医療費ts
医療費ts
 
inferences with gaussians: 記法によるrstanの推定結果の違い
inferences with gaussians: 記法によるrstanの推定結果の違いinferences with gaussians: 記法によるrstanの推定結果の違い
inferences with gaussians: 記法によるrstanの推定結果の違い
 
生物成長曲線予測の事例
生物成長曲線予測の事例生物成長曲線予測の事例
生物成長曲線予測の事例
 
rstanで情報仮説によるモデル評価してみる@Hjiyama.R
rstanで情報仮説によるモデル評価してみる@Hjiyama.Rrstanで情報仮説によるモデル評価してみる@Hjiyama.R
rstanで情報仮説によるモデル評価してみる@Hjiyama.R
 
ポワソン分布の分布感をつかむ
ポワソン分布の分布感をつかむポワソン分布の分布感をつかむ
ポワソン分布の分布感をつかむ
 
MCMCで研究報告
MCMCで研究報告MCMCで研究報告
MCMCで研究報告
 
ベイズ主義による研究の報告方法
ベイズ主義による研究の報告方法ベイズ主義による研究の報告方法
ベイズ主義による研究の報告方法
 
第2回DARM勉強会.preacherによるmoderatorの検討
第2回DARM勉強会.preacherによるmoderatorの検討第2回DARM勉強会.preacherによるmoderatorの検討
第2回DARM勉強会.preacherによるmoderatorの検討
 
第2回DARM勉強会
第2回DARM勉強会第2回DARM勉強会
第2回DARM勉強会
 

Similar to Tokyo r #37 Rubin's Rule

ビジネス活用事例で学ぶデータサイエンス入門 #2
ビジネス活用事例で学ぶデータサイエンス入門 #2ビジネス活用事例で学ぶデータサイエンス入門 #2
ビジネス活用事例で学ぶデータサイエンス入門 #2
you shimajiro
 
第1回 Jubatusハンズオン
第1回 Jubatusハンズオン第1回 Jubatusハンズオン
第1回 Jubatusハンズオン
JubatusOfficial
 
第1回 Jubatusハンズオン
第1回 Jubatusハンズオン第1回 Jubatusハンズオン
第1回 Jubatusハンズオン
Yuya Unno
 
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築
Tatsuya Tojima
 
トレジャーデータ流,データ分析の始め方
トレジャーデータ流,データ分析の始め方トレジャーデータ流,データ分析の始め方
トレジャーデータ流,データ分析の始め方
Takahiro Inoue
 
Big data解析ビジネス
Big data解析ビジネスBig data解析ビジネス
Big data解析ビジネス
Mie Mori
 
第2回 R言語で始めよう、データサイエンス(ハンズオン勉強会) 〜相関分析による需要予測編〜
第2回 R言語で始めよう、データサイエンス(ハンズオン勉強会) 〜相関分析による需要予測編〜第2回 R言語で始めよう、データサイエンス(ハンズオン勉強会) 〜相関分析による需要予測編〜
第2回 R言語で始めよう、データサイエンス(ハンズオン勉強会) 〜相関分析による需要予測編〜
Yasuyuki Sugai
 

Similar to Tokyo r #37 Rubin's Rule (20)

ビジネス活用事例で学ぶデータサイエンス入門 #2
ビジネス活用事例で学ぶデータサイエンス入門 #2ビジネス活用事例で学ぶデータサイエンス入門 #2
ビジネス活用事例で学ぶデータサイエンス入門 #2
 
Tokyo r94 beginnerssession3
Tokyo r94 beginnerssession3Tokyo r94 beginnerssession3
Tokyo r94 beginnerssession3
 
データ入力が終わってから分析前にすること
データ入力が終わってから分析前にすることデータ入力が終わってから分析前にすること
データ入力が終わってから分析前にすること
 
統計学における相関分析と仮説検定の基本的な考え方とその実践
統計学における相関分析と仮説検定の基本的な考え方とその実践統計学における相関分析と仮説検定の基本的な考え方とその実践
統計学における相関分析と仮説検定の基本的な考え方とその実践
 
Tokyor60 r data_science_part1
Tokyor60 r data_science_part1Tokyor60 r data_science_part1
Tokyor60 r data_science_part1
 
第1回 Jubatusハンズオン
第1回 Jubatusハンズオン第1回 Jubatusハンズオン
第1回 Jubatusハンズオン
 
第1回 Jubatusハンズオン
第1回 Jubatusハンズオン第1回 Jubatusハンズオン
第1回 Jubatusハンズオン
 
能動学習による多関係データセットの構築
能動学習による多関係データセットの構築能動学習による多関係データセットの構築
能動学習による多関係データセットの構築
 
関数データ解析の概要とその方法
関数データ解析の概要とその方法関数データ解析の概要とその方法
関数データ解析の概要とその方法
 
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築
 
順序データでもベイズモデリング
順序データでもベイズモデリング順序データでもベイズモデリング
順序データでもベイズモデリング
 
トレジャーデータ流,データ分析の始め方
トレジャーデータ流,データ分析の始め方トレジャーデータ流,データ分析の始め方
トレジャーデータ流,データ分析の始め方
 
rstanで簡単にGLMMができるglmmstan()を作ってみた
rstanで簡単にGLMMができるglmmstan()を作ってみたrstanで簡単にGLMMができるglmmstan()を作ってみた
rstanで簡単にGLMMができるglmmstan()を作ってみた
 
2016年12月18日AITC女子会 データ分析勉強会第7回「Rを使ったデータ分析の基礎・分析手法について知る」
2016年12月18日AITC女子会 データ分析勉強会第7回「Rを使ったデータ分析の基礎・分析手法について知る」2016年12月18日AITC女子会 データ分析勉強会第7回「Rを使ったデータ分析の基礎・分析手法について知る」
2016年12月18日AITC女子会 データ分析勉強会第7回「Rを使ったデータ分析の基礎・分析手法について知る」
 
オープンソースで開くビッグデータの扉
オープンソースで開くビッグデータの扉オープンソースで開くビッグデータの扉
オープンソースで開くビッグデータの扉
 
Rで架空データの発生
Rで架空データの発生Rで架空データの発生
Rで架空データの発生
 
Rブートキャンプ
RブートキャンプRブートキャンプ
Rブートキャンプ
 
Big data解析ビジネス
Big data解析ビジネスBig data解析ビジネス
Big data解析ビジネス
 
WI2研究会(公開用) “データ分析でよく使う前処理の整理と対処”
WI2研究会(公開用) “データ分析でよく使う前処理の整理と対処” WI2研究会(公開用) “データ分析でよく使う前処理の整理と対処”
WI2研究会(公開用) “データ分析でよく使う前処理の整理と対処”
 
第2回 R言語で始めよう、データサイエンス(ハンズオン勉強会) 〜相関分析による需要予測編〜
第2回 R言語で始めよう、データサイエンス(ハンズオン勉強会) 〜相関分析による需要予測編〜第2回 R言語で始めよう、データサイエンス(ハンズオン勉強会) 〜相関分析による需要予測編〜
第2回 R言語で始めよう、データサイエンス(ハンズオン勉強会) 〜相関分析による需要予測編〜
 

Tokyo r #37 Rubin's Rule