Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Pythonライブラリ"DoWhy"を用いた因果推論
Search
うとしん
September 24, 2022
3
3.1k
Pythonライブラリ"DoWhy"を用いた因果推論
2022/09/24のLT資料です。統計的因果推論のためのPythonライブラリ"DoWhy"についてLTしました。
うとしん
September 24, 2022
Tweet
Share
More Decks by うとしん
See All by うとしん
ABEMAの効果検証事例〜効果の異質性を考える〜
s1ok69oo
4
2.2k
データエンジニアのススメ
s1ok69oo
9
7.9k
効果検証入門に物申してみた_JapanR_2023
s1ok69oo
7
5.3k
SHAPで因果関係を説明できる?
s1ok69oo
10
6.1k
マーケティング×データ分析
s1ok69oo
3
2.1k
統計的因果推論の理論と実装「傾向スコア」
s1ok69oo
3
2.2k
PCアルゴリズムによるベイジアンネットワーク
s1ok69oo
1
2.6k
Pearl「入門統計的因果推論」の概要と活用イメージ
s1ok69oo
2
2.2k
統計的因果推論の理論と実装「潜在的結果変数の枠組み」
s1ok69oo
4
3.5k
Featured
See All Featured
Building an army of robots
kneath
302
45k
Optimizing for Happiness
mojombo
376
70k
What's in a price? How to price your products and services
michaelherold
244
12k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
27
1.5k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
29
980
Adopting Sorbet at Scale
ufuk
74
9.2k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
113
50k
For a Future-Friendly Web
brad_frost
176
9.5k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
49k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.2k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
39
1.9k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3.1k
Transcript
DoWhyで因果推論 やってみた
アジェンダ - 自己紹介 - DoWhyの概要 - 因果推論の実装
自己紹介
自己紹介(パーソナリティ) 名前: 宇戸 慎吾(うと しんご) 趣味: シーシャ 得意: Twitter 苦手:
IT, 数学, 英語(笑) カラオケ キックボクシング
自己紹介(宣伝) - Envaderというサービスの企画・運営してます - Pythonで因果推論手法を実装するzennの記事を書いてます - たまに登壇してます(登壇資料)
DoWhyの概要
DoWhyとは - Microsoftがリリースした因果推論用のPythonライブラリ - 反事実モデルに基づいて定義された因果効果を推定するために必 要な一連のプロセスをサポート 反事実:「もし(事実)でなければ〜」 もし今日が新宿集合でなければ あと2時間は寝てたのになぁ... 本当に2時間寝てたかどうかは分からない
DoWhyでできること 大きく次の4つ 1. Model causal mechanisms 2. Identify the target
estimand 3. Estimate causal effect 4. Refute estimate
- モデルを作成し、グラフ(DAG: 因果ダイアグラム)を描画 Model causal mechanisms DAGってこんなの クーポン配布 (CRMにて) -
顧客ランクが高い人は売上が高い - 顧客ランクが高い人はクーポン配布 - クーポン配布すると売上 UP 売上 顧客ランク これをDAGで描くと...
Identify the target estimand - 手元のデータから、因果効果を推定するために必要な仮定や推定 手法を出力 - 大きく3パターン -
backdoor: バックドア基準 - frontdoor: フロントドア基準 - iv: 操作変数 説明は割愛します(詳細は「Causal Inference What If(無料)」を参照)
- 仮定に基づき適当な手法を用いて因果効果を推定 Estimate causal effect 回帰 EconMLと併用 マッチング IPW 層別
IV RDD ※各推定手法については、 僕のzennにて解説しています。
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つの説明は割愛します(簡単な説明は公式ドキュメント参照)
因果推論の実装
準備 - Google Colabを利用 - 必要なライブラリをinstall & import Colabでグラフ(DAG)を描こうと公式ドキュメントの コードをそのまま実行するとエラーが出るので、
pygraphvizのinstallを忘れずに!
データの生成 - 公式ドキュメントの仰せのままにデータを生成 出力結果に注目してみると 実は記号の使い分けがややこしい 今回推定したい因果効果の大きさは 10
データの生成(出力結果) y: アウトカム変数 v: 処置変数 X: アウトカムだけに影 響を与える変数 Z: 処置だけに影響を与
える変数 W: 交絡因子 (ex) 部下の待遇 (ex) 上司の部下育成への熱意 (ex) 部下の満足度 (ex) マネジメント研修 (ex) 過去の研修の受講経験 (ex)は「マネジメント研修」が「部下の会社へ の満足度の向上」にどれほど影響を与えるか を推定するという例
Model causal mechanisms - グラフ(DAG)を描画 グラフ(DAG)がなんとなく美しく ないのはご愛嬌!
Identify the target estimand - 先ほど描いたグラフ(DAG)から、推定に必要な条件を精査 バックドア基準を満たす ための仮定と因果効果 の推定式 フロントドア基準を満た
す仮定はない IVの条件を満たす仮定 と因果効果の推定式
Estimate causal effect - バックドア基準を採用し、層別の手法で因果効果を推定 推定値10.2‥‥ 真の効果が10なので良い感じ!?
Refute estimate - 手持ちのデータにはない変数がバイアスとなる可能性 ➢ 重要だと思われる共変量以外の変数を変更するなどしたモデルを作成 し、因果効果の推定値が大きく変動しないか確認 - 今回は2つ実行 1.
Adding a random common cause variable 2. Adding an unobserved common cause variable
Refute estimate Adding a random common cause variable - ランダムな共通原因変数を追加
差はない!
Refute estimate Adding an unobserved common cause variable - 未観測共通原因変数を追加
それほど差はない
DoWhyによる因果推論のまとめ - 因果推論のためのPythonライブラリ - DoWhyでできること 1. Model causal mechanisms 2.
Identify the target estimand 3. Estimate causal effect 4. Refute estimate
参考文献 テキスト 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
ご清聴ありがとうございました