Slide 1

Slide 1 text

DoWhyで因果推論 やってみた

Slide 2

Slide 2 text

アジェンダ - 自己紹介 - DoWhyの概要 - 因果推論の実装

Slide 3

Slide 3 text

自己紹介

Slide 4

Slide 4 text

自己紹介(パーソナリティ) 名前: 宇戸 慎吾(うと しんご) 趣味: シーシャ 得意: Twitter 苦手: IT, 数学, 英語(笑) カラオケ キックボクシング

Slide 5

Slide 5 text

自己紹介(宣伝) - Envaderというサービスの企画・運営してます - Pythonで因果推論手法を実装するzennの記事を書いてます - たまに登壇してます(登壇資料)

Slide 6

Slide 6 text

DoWhyの概要

Slide 7

Slide 7 text

DoWhyとは - Microsoftがリリースした因果推論用のPythonライブラリ - 反事実モデルに基づいて定義された因果効果を推定するために必 要な一連のプロセスをサポート 反事実:「もし(事実)でなければ〜」 もし今日が新宿集合でなければ あと2時間は寝てたのになぁ... 本当に2時間寝てたかどうかは分からない

Slide 8

Slide 8 text

DoWhyでできること 大きく次の4つ 1. Model causal mechanisms 2. Identify the target estimand 3. Estimate causal effect 4. Refute estimate

Slide 9

Slide 9 text

- モデルを作成し、グラフ(DAG: 因果ダイアグラム)を描画 Model causal mechanisms DAGってこんなの クーポン配布 (CRMにて) - 顧客ランクが高い人は売上が高い - 顧客ランクが高い人はクーポン配布 - クーポン配布すると売上 UP 売上 顧客ランク これをDAGで描くと...

Slide 10

Slide 10 text

Identify the target estimand - 手元のデータから、因果効果を推定するために必要な仮定や推定 手法を出力 - 大きく3パターン - backdoor: バックドア基準 - frontdoor: フロントドア基準 - iv: 操作変数 説明は割愛します(詳細は「Causal Inference What If(無料)」を参照)

Slide 11

Slide 11 text

- 仮定に基づき適当な手法を用いて因果効果を推定 Estimate causal effect 回帰 EconMLと併用 マッチング IPW 層別 IV RDD ※各推定手法については、 僕のzennにて解説しています。

Slide 12

Slide 12 text

Refute estimate - 推定の際に仮定した条件が正しいとは限らないため、推定結果の 頑健性(robustness)を確認する作業(感度分析) - DoWhyの公式ドキュメントでは4つの手法が紹介されている 1. Adding a random common cause variable 2. Replacing treatment with a random (placebo) variable 3. Removing a random subset of the data 4. Adding an unobserved common cause variable 1つ1つの説明は割愛します(簡単な説明は公式ドキュメント参照)

Slide 13

Slide 13 text

因果推論の実装

Slide 14

Slide 14 text

準備 - Google Colabを利用 - 必要なライブラリをinstall & import Colabでグラフ(DAG)を描こうと公式ドキュメントの コードをそのまま実行するとエラーが出るので、 pygraphvizのinstallを忘れずに!

Slide 15

Slide 15 text

データの生成 - 公式ドキュメントの仰せのままにデータを生成 出力結果に注目してみると 実は記号の使い分けがややこしい 今回推定したい因果効果の大きさは 10

Slide 16

Slide 16 text

データの生成(出力結果) y: アウトカム変数 v: 処置変数 X: アウトカムだけに影 響を与える変数 Z: 処置だけに影響を与 える変数 W: 交絡因子 (ex) 部下の待遇 (ex) 上司の部下育成への熱意 (ex) 部下の満足度 (ex) マネジメント研修 (ex) 過去の研修の受講経験 (ex)は「マネジメント研修」が「部下の会社へ の満足度の向上」にどれほど影響を与えるか を推定するという例

Slide 17

Slide 17 text

Model causal mechanisms - グラフ(DAG)を描画 グラフ(DAG)がなんとなく美しく ないのはご愛嬌!

Slide 18

Slide 18 text

Identify the target estimand - 先ほど描いたグラフ(DAG)から、推定に必要な条件を精査 バックドア基準を満たす ための仮定と因果効果 の推定式 フロントドア基準を満た す仮定はない IVの条件を満たす仮定 と因果効果の推定式

Slide 19

Slide 19 text

Estimate causal effect - バックドア基準を採用し、層別の手法で因果効果を推定 推定値10.2‥‥ 真の効果が10なので良い感じ!?

Slide 20

Slide 20 text

Refute estimate - 手持ちのデータにはない変数がバイアスとなる可能性 ➢ 重要だと思われる共変量以外の変数を変更するなどしたモデルを作成 し、因果効果の推定値が大きく変動しないか確認 - 今回は2つ実行 1. Adding a random common cause variable 2. Adding an unobserved common cause variable

Slide 21

Slide 21 text

Refute estimate Adding a random common cause variable - ランダムな共通原因変数を追加 差はない!

Slide 22

Slide 22 text

Refute estimate Adding an unobserved common cause variable - 未観測共通原因変数を追加 それほど差はない

Slide 23

Slide 23 text

DoWhyによる因果推論のまとめ - 因果推論のためのPythonライブラリ - DoWhyでできること 1. Model causal mechanisms 2. Identify the target estimand 3. Estimate causal effect 4. Refute estimate

Slide 24

Slide 24 text

参考文献 テキスト URL DoWhy公式ドキュメント https://py-why.github.io/dowhy/v0.8/getting_started/intro.html # 統計的因果推論のためのPythonライブラリDoWhyに ついて解説(KRSKさん) https://www.krsk-phs.com/entry/2018/08/22/060844 DoWhyによる統計的因果推論(kumalphaさん) https://qiita.com/kumalpha/items/a1177eb5af6168e8113d Causal Inference What If(pdf) https://cdn1.sph.harvard.edu/wp-content/uploads/sites/1268/ 2022/09/hernanrobins_WhatIf_15sep22.pdf Causal Inference In Statistics(pdf) https://www.datascienceassn.org/sites/default/files/CAUSAL %20INFERENCE%20IN%20STATISTICS.pdf

Slide 25

Slide 25 text

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