Slide 1

Slide 1 text

DoWhyとEconMLによる 因果推論の実装

Slide 2

Slide 2 text

本日のアジェンダ - 因果推論・効果検証の概要 - DoWhyの紹介 - EconMLの紹介 - DoWhy × EconMLによる因果推論の実装

Slide 3

Slide 3 text

因果推論・効果検証の概要

Slide 4

Slide 4 text

相関関係と因果関係 相関関係は必ずしも因果関係を表しているわけではない 因果関係 一方が原因・もう一方が結果という関係 (例)学習時間と試験の成績 相関関係 2つの変数の傾向を表した関係 (例)アイスの売上とビールの売上 ビジネスシーンでは因果関係を知りたいことが多い ➢ 因果関係が分からないと、意思決定を評価することができない

Slide 5

Slide 5 text

因果関係の難しいところ これって本当の効果? 広告の例:広告を見たグループと広告を見てないグループの売上を比較 売上 広告を見た 広告を見てない 現代の広告の多くは、売上に繋がりやすい人を ターゲティングして配信されている ➢ 広告を見ていなくても売上が高い 「すべてが広告の効果」 というわけではない

Slide 6

Slide 6 text

バイアス(セレクション・バイアス) バイアスを取り除いたものが本当の効果 広告の例:バイアス=広告を見ていなくても生じていたであろう売上の差 売上 広告を見た 広告を見てない 広告の効果(本当の効果) 広告を見ていなくても 生じていたであろう売上の差 (セレクション・バイアス)

Slide 7

Slide 7 text

効果検証 バイアスを除いた効果を推定するアプローチ - 実験: 処置を「ランダム」に割り当てる - 非実験: 観察データから因果関係を考える(いわゆる”因果推論”) ➢ 効果を推定するという目的においては 実験ができるのであれば、実験するに越したことはない ※「実験の方が簡単」ということではない

Slide 8

Slide 8 text

効果検証の実態 現実的には、必ずしも実験ができるわけではない コストが高い ビジネス利益 との相反 ➢ 非実験的なアプローチ(”因果推論”)によって、実験ができな い環境下でも因果関係を推定できる(かもしれない) 倫理的な問題

Slide 9

Slide 9 text

因果推論×機械学習 近年では、因果推論と機械学習の理論を掛け合わせて効果や効果の 異質性を捉えようとするアプローチも研究されている 効果の異質性(補足) 個体間によって異なる処置効果を表し、HTE(Heterogeneous Treatment Effects)と呼ばれる 同じ広告を見ても、その広告が売 上に与える影響は異なる 20代・女性 50代・男性

Slide 10

Slide 10 text

因果推論・効果検証の概要(まとめ) - 意思決定を評価するためには因果関係を知る必要がある - 効果検証はバイアスを取り除いて効果を推定するアプローチ - 効果を推定する際は実験が理想形であるが、非実験的なアプ ローチ(”因果推論”)によって”良い”推定ができる場合もある - 近年では「因果推論×機械学習」の理論で、効果や効果の異質 性(HTE)を捉えようとするアプローチも研究されている

Slide 11

Slide 11 text

DoWhyの紹介

Slide 12

Slide 12 text

DoWhyとは Microsoft社がリリースした因果推論用のPythonライブラリ 反事実モデルに基づいて因果関係を考える 反事実のイメージ 広告を見たAさんが「もしそのとき広告を見ていなかったら」という状態を考える 売上に違いがあるか 広告を見た(事実) 広告を見ていない(反事実)

Slide 13

Slide 13 text

DoWhyでできること 因果推論に必要な一連のプロセス(4段階) 1. Model causal mechanisms(グラフを描く) 2. Identify the target estimand(推定に必要な条件を出力) 3. Estimate causal effect(効果を推定する) 4. Refute estimate(モデルを精査する)

Slide 14

Slide 14 text

Model causal mechanisms モデルを作成し、グラフ(DAG: 因果ダイアグラム)を描画 DAG: 変数同士を矢印で結び、変数間の因果関係を可視化したもの DAG(イメージ) 購入意欲 売上 広告の閲覧 購入意欲が高い人は 広告を閲覧しやすい 購入意欲が高い人は 売上が高い 広告の効果

Slide 15

Slide 15 text

因果グラフから因果効果を推定するための識別条件を出力 Identify the target estimand サポートしている4つの識別条件 1. Back-door criterion: バックドア基準 2. Front-door criterion: フロントドア基準 3. Instrumental Variables: 操作変数 4. Mediation: 媒介(直接効果と間接効果の識別) ※各条件についてはAppendixを参照

Slide 16

Slide 16 text

識別条件に基づき適当な手法を用いて因果効果を推定 サポートしている推定手法 Estimate causal effect - 傾向スコア層別分析 - 傾向スコアマッチング - 逆確率重み付け法(IPW) - 線形回帰 - 一般化線形モデル(GLM) - 操作変数法(IV法) - 2段階最小二乗法(TSLS) - 回帰不連続デザイン(RDD) - 2段階線形回帰 ※ほぼ全ての推定手法について 私のzennで解説しているので、ぜひご参照ください(宣伝)

Slide 17

Slide 17 text

Refute estimate 推定の際に仮定した条件が正しいとは限らないため、推定結果の頑 健性(robustness)を確認するための作業 サポートしている手法例 Add Random Common Cause ランダムに独立な共通因子をモデルに追加 →効果の推定値に差がなければOK! Placebo Treatment 処置をランダムな変数に置換 →効果の推定値が0に近づけばOK! X T Y 独立な共通因子 →推定に関係ない X T Y X D Y 置換したら効果は なくなるはず

Slide 18

Slide 18 text

DoWhyによる因果推論の実装(準備) Google Colabを利用し、必要なライブラリをinstall & import Colabでグラフ(DAG)を描く際は pygraphvizのinstallが必要です!

Slide 19

Slide 19 text

データの生成 公式ドキュメントに従ってデータを生成 推定したい処置効果 交絡因子(W) 操作変数(Z) アウトカム予測子(X) 処置変数(v)

Slide 20

Slide 20 text

データの生成(出力結果) 何やらいろんな変数が出力される

Slide 21

Slide 21 text

データの生成(記号の補足) 因果推論のテキストでは見慣れない記号の使われ方、、、 アウトカム予測子 操作変数 交絡因子 処置変数 アウトカム 赤: アウトカムに直接影響あり 、青: アウトカムに直接影響なし 、橙: アウトカム

Slide 22

Slide 22 text

DoWhyの記号を整理 各記号の関係をグラフ(DAG)で表現するとこんな感じ W: 交絡変数 処置とアウトカムの両方に 影響を与える Z: 操作変数 処置だけに影響を与える X: アウトカム予測子 アウトカムだけに影響を与 える v: 処置変数 y: アウトカム

Slide 23

Slide 23 text

Model causal mechanisms(実装) グラフ(DAG)の描画 出力結果

Slide 24

Slide 24 text

Identify the target estimand(実装) 因果効果の推定式と、推定に必要な仮定を出力 因果効果の推定式 推定に必要な仮定

Slide 25

Slide 25 text

Estimate causal effect(実装) 因果効果を推定(今回は傾向スコアマッチングを実行) 因果効果の推定値(因果効果の設定値は10)

Slide 26

Slide 26 text

Refute estimate(実装) ランダムな共通原因変数を追加すると推定値に差があるかを検定 差はなさそう → 推定結果は頑健であると判断 ※DoWhyがカバーしているRefute estimate機能には、いくつか問題点もあるみたいです (参考: https://www.krsk-phs.com/entry/2018/08/22/060844 )

Slide 27

Slide 27 text

DoWhyの紹介(まとめ) - 因果推論のためのPythonライブラリ - DoWhyでできること 1. Model causal mechanisms(グラフを描く) 2. Identify the target estimand(推定に必要な条件を出力) 3. Estimate causal effect(効果を推定する) 4. Refute estimate(モデルを精査する)

Slide 28

Slide 28 text

EconMLの紹介

Slide 29

Slide 29 text

EconMLとは Microsoft社がリリースした「計量経済学×機械学習」のアプロー チで処置効果を推定するためのPythonライブラリ。 「計量経済学×機械学習」アプローチの利点 効果の異質性(HTE)を捉えることが可能→よりよいネクストアクションに繋がる 「20代・女性」のセグメントに 広告を配信すると効果的 大 ← 広告効果 → 小 20代・女性 50代・男性

Slide 30

Slide 30 text

大きく3つ 1. Estimation Methods under Unconfoundedness 2. (Estimation Methods with Instruments) 3. (Estimation Methods for Dynamic Treatment Regimes) EconMLでできること ※本日、紹介するのは(1)の推定手法です。(2)と(3)の概要はAppendixを参照してください。

Slide 31

Slide 31 text

Estimation Methods under Unconfoundedness Uncoufoundedness(無交絡性)という条件下における推定手法 Uncoufoundednessとは 共変量Xで条件つけたとき、潜在的な アウトカム(Y 1 , Y 0 )と処置の割り当てT は独立であるという仮定 (Y 1 , Y 0 ) ⊥ T | X サポートしている4つの推定手法 1. Double Machine Learning 2. Doubly Robust Learning 3. (Forest Based Estimators) 4. Meta-Learners ※処置を表す記号がDoWhy(v)とEconML(T)で異なるので要注意です ※Uncoufoundedness(無交絡性)は、conditional exchangeability(条件付き交換可能性)とも呼ばれます →条件付けに必要な共変量Xがすべて観測できている場合には効果的

Slide 32

Slide 32 text

Double Machine Learningの紹介 2段階に分けて効果を推定 Double Machine Learningのイメージ Y (アウトカム) X, W (共変量) T (処置) 1段階目(予測) 2段階目(OLS) XにおけるCATE(θ(X))を考える X, W T Y X, W T θ(X) Yの残差 Tの残差 = θ(X) ×

Slide 33

Slide 33 text

Doubly Robust Learningの紹介 「回帰モデル×傾向スコア」でRobustに推定 Doubly Robust Learningのイメージ Y (アウトカム) X, W (共変量) T (処置) XにおけるCATE(θ(X))を考える θ(X) 予測モデルY(T=t) θ t (X)= Y(T=t) - Y(T=0) X, W T Y X, W T 回帰モデルg t (X,W) 傾向スコアp t (X,W) ※どちらかのモデルを正しく設定できればバイアスな く推定できる→二重(Double)で頑健(Robust)

Slide 34

Slide 34 text

Meta-Learnerのイメージ(処置が1つのケース) Y (アウトカム) X, W (共変量) T = 0 or 1 (処置) XにおけるCATE(θ(X))を考える θ(X) Meta-Learnerの紹介 離散的な処置(処置A,B,C,...)に対するCATEを推定する手法 Yの予測モデル f(T=t, X, W) Yの予測値 (T=0) Yの予測値 (T=1) θ(X)

Slide 35

Slide 35 text

EconMLによる因果推論の実装(設定) とある健康食品会社にて、ダイエット商品を販促するために広告を 打った。その広告の効果を推定したい。 ダイエットへの意識の高さ (motivation) 広告を見たかどうか (ad_impression) 売上 (revenue) 手元にあるデータ 広告の効果 購入意欲が高そうな 人にターゲティング 配信されている ダイエットへの意識 が高い人ほど商品を 購入する

Slide 36

Slide 36 text

EconMLによる因果推論の実装(準備) Google Colabを利用し、必要なライブラリをinstall & import

Slide 37

Slide 37 text

データを生成 「分析者は生成ロジックを知らない」という設定で話を進めます

Slide 38

Slide 38 text

推定したい効果 ダイエットへの意識の高さの度合いによって広告効果が異なる ダイエットへの 意識の高さ 広告効果 0未満 1,000円 0以上0.5未満 2,000円 0.5以上 3,000円

Slide 39

Slide 39 text

T-Learnerによる推定 機械学習モデルにはRandom Forest(回帰)を利用 出力結果

Slide 40

Slide 40 text

EconMLの紹介(まとめ) - CATEを推定するためのPythonライブラリ - 大きく3つの推定手法をサポート 1. Estimation Methods under Unconfoundedness 2. Estimation Methods with Instruments 3. Estimation Methods for Dynamic Treatment Regimes

Slide 41

Slide 41 text

DoWhy × EconML

Slide 42

Slide 42 text

DoWhyによる因果推論のプロセス プロセスは4段階(再掲) 1. Model causal mechanisms(グラフを描く) 2. Identify the target estimand(推定に必要な条件を出力) 3. Estimate causal effect(効果を推定する) 4. Refute estimate(モデルを精査する)

Slide 43

Slide 43 text

DoWhy×EconMLによる因果推論のプロセス ベースはDoWhy単体と変わらず、プロセス(3)をEconMLが担当 1. Model causal mechanisms(グラフを描く) 2. Identify the target estimand(推定に必要な条件を出力) 3. Estimate causal effect(効果を推定する) 4. Refute estimate(モデルを精査する) ここをEconMLが担当

Slide 44

Slide 44 text

DoWhy×EconMLによる因果推論の実装(準備) Google Colabを利用し、必要なライブラリをinstall & import

Slide 45

Slide 45 text

DoWhy×EconMLによる因果推論の実装(設定) とある健康食品会社にて、ダイエット商品を販促するために広告を 打った。その広告の効果を推定したい(先ほどと同じ) ダイエットへの意識の高さ (motivation) 広告を見たかどうか (ad_impression) 売上 (revenue) 手元にあるデータ 広告の効果 購入意欲が高そうな 人にターゲティング 配信されている ダイエットへの意識 が高い人ほど商品を 購入する

Slide 46

Slide 46 text

データを生成(再掲) 「分析者は生成ロジックを知らない」という設定で話を進めます

Slide 47

Slide 47 text

推定したい効果(再掲) ダイエットへの意識の高さの度合いによって広告効果が異なる ダイエットへの 意識の高さ 広告効果 0未満 1,000円 0以上0.5未満 2,000円 0.5以上 3,000円

Slide 48

Slide 48 text

Model causal mechanisms グラフを描画 出力結果

Slide 49

Slide 49 text

Identify the target estimand 因果グラフから因果効果を推定するための識別条件を出力

Slide 50

Slide 50 text

Estimate causal effect(1/2) EconMLの出番。T-Learnerで効果を推定。 推定に利用する機械学習モデルは Random Forest(回帰)

Slide 51

Slide 51 text

Estimate causal effect(2/2) 推定結果を可視化。 出力結果

Slide 52

Slide 52 text

Refute estimate ランダムな共通原因変数を追加すると推定値に差があるかを検定 差はなさそう → 推定結果は頑健であると判断

Slide 53

Slide 53 text

DoWhy × EconML(まとめ) - ベースのプロセスはDoWhyと同じ 1. Model causal mechanisms(グラフを描く) 2. Identify the target estimand(推定に必要な条件を出力) 3. Estimate causal effect(効果を推定する) 4. Refute estimate(モデルを精査する) - プロセス(3)をEconMLが担当

Slide 54

Slide 54 text

Appendix

Slide 55

Slide 55 text

バックドアパス 上流側にある処置XとアウトカムYの両方に影響を与える流れ Z1 X Y Z2 Z1 X Y Z2 Z1 X Y Z2 (X→Yの)バックドアパス (X→Yの)バックドアパスではない

Slide 56

Slide 56 text

バックドアパスをブロックする 上流側にある処置XとアウトカムYの両方に影響を与える道を固定 Z1 X Y Z2 Z1 X Y Z2 Z1 X Y Z2 (X→Yの)バックドアパスをブロックするには, Z1かZ2(あるいは両方)を固定すればOK

Slide 57

Slide 57 text

バックドア基準 集合Zが(X,Y)に対して、次の2つの条件を満たせば良い 1. Zに含まれる全てのノードがXの子孫ではない 2. XとYの間でXに向かう有向道すべてをZがブロックする X Y Z X Y Z X Y Z バックドア基準を満たす バックドア基準を満たさない

Slide 58

Slide 58 text

フロントドア基準 集合Zが(X,Y)について次の3つの条件を満たせば良い 1. ZはX→Yの有向道をすべてブロックする 2. XからZへのバックドアパスは存在しない 3. ZからYへのすべてのバックドアはXによるブロックされている 観測されない交絡因子 X Y 観測されない交絡因子 X Z Y バックドア基準は満たさない 集合Zが観測できればフロントドア基準を満たす

Slide 59

Slide 59 text

媒介(概要) 直接効果と間接効果を考える 直接効果 ある変数XがアウトカムYに直接与え る影響 M T Y 間接効果 ある変数Xが、媒介変数Mを通じてア ウトカムYに与える影響 M T Y

Slide 60

Slide 60 text

媒介(識別条件) 共変量の集合Wが以下の4つの条件を満たす 1. Wの要素にはTの子孫が1つもない 2. WはMからYへのバックドアパスをすべてブロックする 3. TからMへの特定のWにおける効果は識別可能 4. {T,M}からYへの特定のWにおける同時効果は識別可能

Slide 61

Slide 61 text

Estimation Methods with Instruments 操作変数(IV: Instrument Variable)を用いた推定手法 操作変数とは 処置Tとは相関があり、 誤差項uとは無相関な変数Z Y=a+bT+u(Cov(T, u)≠0)において Cov(Z, T)≠0, Cov(Z, u)=0 サポートしている3つの推定手法 1. Deep Instrumental Variables 2. Sieve 2SLS Instrumental Variable Estimation 3. Orthogonal instrumental variables →観測できない交絡因子が存在している場合に利用 ※上記の操作変数の説明はあくまでも内生変数と操作変数がひとつずつの場合です。一般的な条件については「計 量経済学(末石、2015)」をご参照ください。

Slide 62

Slide 62 text

Estimation Methods for Dynamic Treatment Regimes adaptiveな動的ポリシーに基づいて、処置が時間の経過とともに割 り当てられる際に、処置効果を推定する手法 →すべての動的な交絡・コントロール変数が観測できているときに利用可能 ここが凄い 古典的な統計学的アプローチでは - 高次元すぎて適応できない - 処置効果やアウトカムを十分にモデル 化できない というシーンでも有効となり得る サポートしている推定手法 Dynamic Double Machine Learning

Slide 63

Slide 63 text

参考文献(テキスト) - 岩崎(2015)「統計的因果推論」朝倉書店 - 小川(2021)「Pythonによる因果分析」マイナビ出版 - Judea Pearl他(2019)「入門統計的因果推論」朝倉書店 - 末石(2015)「計量経済学」日本評論社 - 星野(2009)「調査観察データの統計科学」岩波書店 - 安井(2020)「効果検証入門」ホクソエム社

Slide 64

Slide 64 text

参考文献(Web) - 「DoWhy公式ドキュメント」https://www.pywhy.org/dowhy/v0.8/ - 「EconML公式ドキュメント」https://econml.azurewebsites.net/ - Hayashi takehiko「”因果推論駅”の奥の方を探訪しながら考える」 https://speakerdeck.com/takehikoihayashi/wai-de-nidofalseyounaxi-gariwochi-tute irufalseka - krsk「観察データを用いた因果推論で生じるバイアスの程度を考える」 https://www.krsk-phs.com/entry/sensitivity_analysis - krsk「統計的因果推論のためのPythonライブラリDoWhyについて解説」 https://www.krsk-phs.com/entry/2018/08/22/060844 - S¨oren R. K¨unzel他「Meta-learners for Estimating Heterogeneous Treatment Effects using Machine Learning」https://arxiv.org/abs/1706.03461 - Victor Chernozhukov他「Double/Debiased Machine Learning for Treatment and Structural Parameters」https://arxiv.org/abs/1608.00060 ※2022年11月27日時点

Slide 65

Slide 65 text

ご清聴ありがとうございました