Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

効果測定入門 Rによる傾向スコア解析

6,180 views

Published on

◆教材
里洋平著 「戦略的データマイニング」 7章

◆内容
1.効果測定の基本的な考え方
2.因果(施策)効果の推定
   ・ランダムに割り当てられる場合
   ・割当がランダムでない場合
   ・共変量で調整する場合
3.傾向スコア解析
   ・概要
   ・傾向スコアを用いた調整法
   ・Rによる実行

Published in: Data & Analytics

効果測定入門 Rによる傾向スコア解析

  1. 1. 効果測定入門 『戦略的データマイニング』 7章 ToykoR#43 テキストセッション 2014年9月20日 Rによる傾向スコア解析
  2. 2. 教材 この本の7章▶
  3. 3. 発表内容 1.効果測定の基本的な考え方 2.因果(施策)効果の推定 ・ランダムに割り当てられる場合 ・割当がランダムでない場合 ・共変量で調整する場合 3.傾向スコア解析 ・概要 ・傾向スコアを用いた調整法 ・Rによる実行
  4. 4. 発表内容 1.効果測定の基本的な考え方 2.因果(施策)効果の推定 ・ランダムに割り当てられる場合 ・割当がランダムでない場合 ・共変量で調整する場合 3.傾向スコア解析 ・概要 ・傾向スコアを用いた調整法 ・Rによる実行
  5. 5. Plan Do Check Act 1.効果測定の基本的な考え方 施策の効果を定量的・ 定性的に分析し、次の 施策につなげること
  6. 6. 施策の効果とは 実施した 実施しなかった 施策の効果 =施策を実施した場合-実施しなかった場合 出典:戦略的データマイニング 施策の効果
  7. 7. 施策効果の出し方 <方法1>施策の実施前・後で比較 <方法2>施策実施の有・無で比較
  8. 8. 施策効果の出し方 <方法1>施策の実施前・後で比較 <方法2>施策実施の有・無で比較
  9. 9. <方法1>実施前・後で比較 実施前 (ベースライン) 時間 購 入 率 実施後 【例】施策実施前・後の購入率 A B 出典:戦略的データマイニング
  10. 10. <方法1>実施前・後で比較 実施前 (ベースライン) 時間 購 入 率 実施後 【例】施策実施前・後の購入率 A B 施策の 効果!? 施策の効果=施策の実施後-実施前 出典:戦略的データマイニング
  11. 11. 効果に影響を及ぼすもの(例) 影響を及ぼすもの 例 季節要因 施策Bを実施した時期が売 れやすい時期だった 他の施策の影響 同時期に実施していた他の 施策が当たっていた その他の外部要因 施策Bの時期にTVや雑誌で たまたま取り上げられた
  12. 12. 施策効果の出し方 <方法1>施策の実施前・後で比較 <方法2>施策実施の有・無で比較
  13. 13. <方法2>実施の有・無で比較 【例】施策を実施するグループと実施しないグループ別 の一定期間の購入率 購 入 率 出典:戦略的データマイニング 時間 実施した 実施しなかった
  14. 14. <方法2>実施の有・無で比較 【例】施策を実施するグループと実施しないグループ別 の一定期間の購入率 購 入 率 出典:戦略的データマイニング 時間 実施した 実施しなかった 施策の効果 =施策を実施したグループ-実施しなかったグループ 施策の 効果!?
  15. 15. グループ間の偏りを起こすもの(例) ⇒グループによって特性が異なる 場合、正しく効果を見られない 偏りを起こすもの 例 性別 性別や年齢、地域に よって購入傾向が異 なる 年齢 地域
  16. 16. 偏りへの対処 可能ならランダムにグループを割り当 ててから解析する ランダムに割り当てられない場合は、 偏りを調整して解析する
  17. 17. おさらい 1.効果測定の基本的な考え方 •施策効果に影響する施策以外の要素(例: 季節)に注意する •グループ間に偏り(例:性別)がある場 合、正しく効果を見られない •ランダムにグループを割り当てあられるか 否かで解析方法も変わる
  18. 18. 発表内容 1.効果測定の基本的な考え方 2.因果(施策)効果の推定 ・ランダムに割り当てられる場合 ・割当がランダムでない場合 ・共変量で調整する場合 3.傾向スコア解析 ・概要 ・傾向スコアを用いた調整法 ・Rによる実行
  19. 19. 処置群 対照群 ランダムに割当られる場合 処置群と対照群を ランダムに割当 因果効果は処置群と対照群の差になる 出典:Rで学ぶ傾向スコア解析入門
  20. 20. 処置群のデータ 対照群のデータ 処置群 対照群 ランダムに割当られる場合 処置群と対照群を ランダムに割当 欠測 欠測 介入を受けた 場合の結果 介入を受けない 場合の結果 出典:Rで学ぶ傾向スコア解析入門 因果効果は処置群と対照群の差になる
  21. 21. ランダムに割当られる場合 処置群のデータ 欠測 欠測 対照群のデータ 処置群と対照群を ランダムに割当 処置群 対照群 介入を受けた 場合の結果 介入を受けない 場合の結果 介入を受けた処置群の期待値と 介入を受けていた場合の対照群の期待値は同じ 出典:Rで学ぶ傾向スコア解析入門 因果効果は処置群と対照群の差になる
  22. 22. ランダムに割当られる場合 処置群のデータ 欠測 欠測 対照群のデータ 処置群と対照群を ランダムに割当 処置群 対照群 介入を受けた 場合の結果 介入を受けない 場合の結果 介入を受けた処置群の期待値と 介入を受けていた場合の対照群の期待値は同じ 介入を受けない場合の処置群の期待値と 介入を受けなかった対照群の期待値は同じ 期待値が等しい 出典:Rで学ぶ傾向スコア解析入門 因果効果は処置群と対照群の差になる
  23. 23. 割当がランダムでない場合 処置群と対照群の割当 (コントロールできない) 処置群 対照群 割当によって処置群と対照群に差が生じるため 単純に比較できない 出典:Rで学ぶ傾向スコア解析入門
  24. 24. 割当がランダムでない場合 処置群のデータ 欠測 欠測 対照群のデータ 処置群と対照群の割当 (コントロールできない) 処置群 対照群 介入を受けた 場合の結果 介入を受けない 場合の結果 割当によって処置群と対照群に差が生じるため 単純に比較できない 出典:Rで学ぶ傾向スコア解析入門
  25. 25. 割当がランダムでない場合 処置群のデータ 欠測 欠測 対照群のデータ 処置群と対照群の割当 (コントロールできない) 処置群 対照群 介入を受けた 場合の結果 介入を受けない 場合の結果 介入を受けた処置群の期待値と 介入を受けていた場合の対照群の期待値が異なる 割当によって処置群と対照群に差が生じるため 単純に比較できない 出典:Rで学ぶ傾向スコア解析入門
  26. 26. 割当がランダムでない場合 処置群のデータ 欠測 欠測 対照群のデータ 処置群と対照群の割当 (コントロールできない) 処置群 対照群 介入を受けた 場合の結果 介入を受けない 場合の結果 介入を受けた処置群の期待値と 介入を受けていた場合の対照群の期待値が異なる 介入を受けない場合の処置群の期待値と 介入を受けなかった対照群の期待値が異なる 期待値が異なる 割当によって処置群と対照群に差が生じるため 単純に比較できない 出典:Rで学ぶ傾向スコア解析入門
  27. 27. 共変量調整による因果効果の推定 処置群のデータ 欠測 欠測 対照群のデータ 処置群と対照群の割当 (コントロールできない) 処置群 対照群 介入を受けた 場合の結果 介入を受けない 場合の結果 共通で得られている変数 共変量項目 割当や結果変数に影響を与える共変量を用い て、因果効果以外の影響を除去する 出典:Rで学ぶ傾向スコア解析入門
  28. 28. 共変量調整による因果効果の推定 処置群のデータ 欠測 欠測 対照群のデータ 処置群と対照群の割当 (コントロールできない) 処置群 対照群 介入を受けた 場合の結果 介入を受けない 場合の結果 共通で得られている変数 共変量項目 割当や結果変数に影響を与える共変量を用い て、因果効果以外の影響を除去する 共変量の調整法 ◆マッチング ◆層別解析 ◆回帰モデル 出典:Rで学ぶ傾向スコア解析入門
  29. 29. 共変量を用いて因果効果を 推定する場合の条件 強く無視できる割り当て 処置群と対照群のどちらに割り当てられるかは 共変量の値に依存し、結果変数には依存しない 結果変数 (商品の購入量) 割当変数 (施策) 共変量 (年齢、収入、購買意欲)
  30. 30. おさらい 2.因果(施策)効果の推定 •ランダムに割当られる場合の因果効果は、 処置群と対照群の差 •割当がランダムでない場合、割当によって 処置群と対照群に差が生じるため因果効果 は単純に比較できない •共変量を用いて因果効果を推定する際は、 「強く無視できる割り当て」の条件が必要
  31. 31. 発表内容 1.効果測定の基本的な考え方 2.因果(施策)効果の推定 ・ランダムに割り当てられる場合 ・割当がランダムでない場合 ・共変量で調整する場合 3.傾向スコア解析 ・概要 ・傾向スコアを用いた調整法 ・Rによる実行
  32. 32. 傾向スコア解析の概要 複数の共変量を傾向スコアという1つの変数に集約し、 群間の偏りを調整することで因果効果を推定する手法 処置群のデータ 欠測 欠測 対照群のデータ 処置群と対照群の割当 (コントロールできない) 処置群 対照群 介入を受けた 場合の結果 介入を受けない 場合の結果 共通で得られている変数 共変量で割当をモデリング 傾向スコアの算出 共変量項目 出典:Rで学ぶ傾向スコア解析入門
  33. 33. 傾向スコアとは 第 i 対象者が処置群に割り当てられる確率 処置群のデータ y11 欠測 y10 欠測 y21 対照群のデータ y20 処置群と対照群の割当 Z 処置群Z=1 対照群Z=0 介入を受けた 場合の結果y1 介入を受けない 場合の結果y0 共通で得られている変数 x 共変量項目 共変量で割当をモデリング 傾向スコアの算出 出典:Rで学ぶ傾向スコア解析入門
  34. 34. 傾向スコア解析の手順 Stepを2つ踏む ・Step. 1 傾向スコアの推定 ・Step. 2 推定された傾向スコアを用いた調整と バランスの確認
  35. 35. Step.1 傾向スコアの推定 傾向スコアを推定する統計手法 ・ロジスティック回帰分析 ・プロビット回帰分析 など
  36. 36. Step.2 推定された傾向スコア を用いた調整法 ・マッチング ・IPW推定量 ・層別解析 ・共分散分析 ・カーネルマッチング
  37. 37. Step.2 推定された傾向スコア を用いた調整法 ・マッチング ・IPW推定量 ・層別解析 ・共分散分析 ・カーネルマッチング この2つを お話します!
  38. 38. Step.2 推定された傾向スコア を用いた調整法 ・マッチング ・IPW推定量 ・層別解析 ・共分散分析 ・カーネルマッチング
  39. 39. マッチング法 2つの群で傾向スコアが等しい(近い)対象 者をペアにして、その差の平均を因果効果 の推定値とする方法
  40. 40. マッチング法のアルゴリズム Greedy matching(Nearest neighbor matching) ① 処置群からランダムに一人選ぶ ② 対照群から①の傾向スコアに対して最小の距離になる ような人の傾向スコアとペアを作る ③ ①~②の作業を繰り返す Optimal matching ・各ペアの傾向スコアの距離を合計した値が最小になる ようにペアを作る ※ Optimal matchingよりもGreedy matchingの方がマッチング のバランスが良いらしい
  41. 41. マッチング法の指定 キャリパー( Nearest neighbor matching の時) 傾向スコアの距離(キャリパー)が特定の値に 収まる対象者をマッチングする 処置群と対照群の構成比 1対1、1対多、多対多 抽出の仕方 非復元抽出、復元抽出
  42. 42. バランスの確認 マッチング後に、処置群と対照群の共 変量を確認する バランスの確認方法 ・群ごとの要約統計量 ・標準化効果量 ・QQプロット ・箱ひげ図
  43. 43. バランスが取れない時 モデルを修正する <例> ・共変量を増やす ・共変量間の交互作用項を加える ・共変量(量的変数)の非線形性を検討する マッチングの方法を変更する <例> ・処置群と対照群の構成比を変える
  44. 44. マッチングの問題点 •因果効果の推定計算はできるが、その標準誤 差が計算できない •各周辺期待値の推定ができない •対象者の数が多い群でデータの多くが無駄に なる •マッチングによる推定値は、「対象者数が少 ない群の共変量の分布」の上で期待値をとっ たときの因果効果になる
  45. 45. Step.2 推定された傾向スコア を用いた調整法 ・マッチング ・IPW推定量 ・層別解析 ・共分散分析 ・カーネルマッチング
  46. 46. IPW推定量 •推定された傾向スコアの逆数を用いて 重み付け平均し、その差を効果とする •因果効果の推定値とその標準誤差も算 出できる
  47. 47. Rで傾向スコア解析を実行 使用したデータ 職業訓練プログラム (NSW) のデータを一部変更 したもの 効果測定の方法 「職業訓練を受けやすい人」と「受けにくい 人」の違いを傾向スコアを用いて調整し、職業 訓練の効果を推定する
  48. 48. 変数の一覧 •割り当て変数 •共変量 •結果変数 age 年齢 married 結婚してるかどうか educ 教育年数 nodegree 高校卒業有無 black 黒人かどうか re74 74年実質賃金 hisp ヒスパニック かどうか re75 75年実質賃金 Treat NSW(職業訓練)プログラムの有無 re78 78年実質賃金
  49. 49. 前処理 ## 作業フォルダを指定 setwd("C:/Users/Documents/TokyoR43/data") ## csvデータの読み込み nsw.data <- read.csv("nsw.csv", header = T) head(nsw.data, 3) treat age educ black hispanic married nodegree re74 re75 re78 1 1 37 11 1 0 1 1 0 0 9930.0460 2 1 22 9 0 1 0 1 0 0 3595.8940 3 1 30 12 1 0 0 0 0 0 24909.4500
  50. 50. 傾向スコアの推定 ## ロジスティック回帰分析で傾向スコアを推定 logit <- glm(treat ~ ., data = nsw.data[ ,-10], family = binomial) summary(logit)
  51. 51. マッチングによる因果効果の推定 パッケージMatching 関数Match Match(Y=結果変数, Tr=割当変数, X=傾向スコアの推定値 , …) <オプション> caliper: キャリパーを指定する場合はTRUE M:処置群と対照群の構成比 replace: 抽出法
  52. 52. マッチングによる因果効果の推定 ## パッケージの読み込み library(Matching) nsw1 <- Match(Y = nsw.data$re78, Tr = nsw.data$treat, X = logit$fitted) summary(nsw1) ……(略)…… Estimate... 1866.4 AI SE...... 1562.3 T-stat..... 1.1947 p.val...... 0.23222 Original number of observations.......................... 313 Original number of treated obs............................ 185 Matched number of observations........................ 185 Matched number of observations (unweighted). 202 NSWプログラムの効果
  53. 53. バランスの確認 関数MatchBalance MatchBalance(formul, data = NULL, match.out = NULL, …) data: データフレーム match.out:Matchで作成したオブジェクトを指定すると マッチング前後の値が出力される 関数qqplot
  54. 54. バランスの確認① ## バランスの確認 mb <- MatchBalance(treat ~ ., data = nsw.data[ ,-10], match.out=nsw1) ***** (V1) age ***** Before Matching After Matching mean treatment........ 25.816 25.816 mean control.......... 38.258 25.023 std mean diff......... -173.89 11.08 mean raw eQQ diff..... 12.484 1.4703 med raw eQQ diff..... 12.5 1 max raw eQQ diff..... 23 8 mean eCDF diff........ 0.31181 0.039604 med eCDF diff........ 0.32272 0.024752 max eCDF diff........ 0.46161 0.15347 var ratio (Tr/Co)..... 0.30795 1.1056 T-test p-value........ < 2.22e-16 0.1727 KS Bootstrap p-value..< 2.22e-16 0.006 KS Naive p-value...... 1.9873e-14 0.017175 KS Statistic.......... 0.46161 0.15347 2群の平均値が 近づいている 標準化効果量
  55. 55. バランスの確認② ## バランスの確認 qqplot(nsw.data$age[nsw1$index.control], nsw.data$age[nsw1$index.treated]) abline(coef = c(0, 1), col = 2) 対照群 点(データ)が直線 の近くにある場合、 2群の年齢の分布は似 ていると考えられる 処 置 群 の 年 齢 対照群の年齢 処置群
  56. 56. IPW推定量 特定のパッケージは存在しない lm関数(推定された傾向スコアの逆数 を重みとした加重平均を算出)
  57. 57. IPW推定量の算出 ivec1 <- nsw.data$treat ivec2 <- rep(1, nrow(nsw.data)) - ivec1 iestp1 <- (ivec1/logit$fitted) * (length(ivec1)/sum(ivec1)) iestp2 <- (ivec2/(1 - logit$fitted)) * (length(ivec2)/sum(ivec2)) iestp <- iestp1 + iestp2 # 傾向スコアの推定値の逆数を重みとする ivec <- cbind(ivec1, ivec2) ipwe <- lm(nsw.data$re78 ~ ivec - 1, weights = iestp)
  58. 58. 出力:IPW推定量 summary(ipwe) Coefficients: Estimate Std. Error t value Pr(>|t|) ivecivec1 7346.6 699.3 10.505 <2e-16 *** ivecivec2 4710.3 531.4 8.864 <2e-16 *** --- 処置群の IPW推定量と標準誤差 対照群の IPW推定量と標準誤差
  59. 59. IPW推定量による因果効果の推定 ## 効果の算出 coef(ipwe)[1] - coef(ipwe)[2] ivecivec1 2636.306 ## 効果の標準誤差 treat.error <- summary(ipwe)$coef[1, 2] ctrl.error <- summary(ipwe)$coef[2, 2] sqrt(treat.error^2 + ctrl.error^2) [1] 878.316
  60. 60. おさらい 3.傾向スコア解析 •傾向スコア解析とは、複数の共変量を傾向スコア という1つの変数に集約し、偏りを調整すること で因果効果を推定する手法 •傾向スコアによる調整は2つのステップを踏む Step. 1 傾向スコアの推定 Step. 2 推定された傾向スコアを用いた調整 •推定された傾向スコアを用いた調整法には、マッ チングやIPW推定量などがある
  61. 61. 参考資料(書籍) ・里洋平『戦略的データマイニング』 ・星野崇宏『調査観察データの統計科学』
  62. 62. ・Austin PC (2011) An Introduction to Propensity Score Methods for Reducing the Effects of Confounding in Observational Studies. ・Stuart EA (2010) Matching Methods for Causal Inference: A Review and a Look Forward. ・Sekhon JA (2011) Multivariate and Propensity Score Matching Software with Automated Balance Optimization: The Matching Package for R. 参考資料(論文)
  63. 63. ・里洋平『Rで学ぶ傾向スコア解析入門』 http://www.slideshare.net/yokkuns/r-9387843 ・奥村泰之『「傾向スコア分析」の書き方』 http://researchmap.jp/index.php?action=multidatabase_action_main_ filedownload&download_flag=1 &upload_id=38144&metadata_id=29089 ・林岳彦『傾向スコア:その概念とRによる実装 http://www.slideshare.net/takehikoihayashi/propensity-score-analysis- seminar-japanese 参考資料(Web資料)
  64. 64. まとめ 1.効果測定の基本的な考え方 2.因果(施策)効果の推定 ・ランダムに割り当てられる場合 ・割当がランダムでない場合 ・共変量で調整する場合 3.傾向スコア解析 ・概要 ・傾向スコアを用いた調整法 ・Rによる実行 ご清聴ありがとうございました!

×