Slide 1

Slide 1 text

Pearl本の活かし方を考える ~因果推論勉強会のススメ~

Slide 2

Slide 2 text

アジェンダ 大きく2つ 1. 「入門統計的因果推論(以下, Pearl本)」の概要(ざっくり) 2. 実務での応用(イメージ) 時間の都合上、かなりざっくりとした資料ですがご容赦ください(笑)

Slide 3

Slide 3 text

Pearl本の概要

Slide 4

Slide 4 text

Pearl流とRubin流の因果推論 統計的因果推論の2大巨頭 Pearl流 構造的因果モデルの枠組み Rubin流 潜在的結果変数の枠組み 最近では、構造的因果モデルと機械学習を融合した「統計的因果探索」とかも 実務で利用されてたりします(LiNGAMとか) 対立的なものではなく、あくまでも相補的な関係

Slide 5

Slide 5 text

統計学の教科書あるある 誰もが見たことある(はずの)フレーズ 「相関は因果を意味しない」 相関と因果の関係性のイメージ 相関 因果

Slide 6

Slide 6 text

「相関≠因果」とは言うものの... ほとんどの統計学の教科書では、相関については言及しているもの の、因果についてはほとんど言及していない。 → データのみから因果関係を判別できる統計的手法は存在しない! → 因果関係を考えるには「因果のストーリー」を考える必要がある

Slide 7

Slide 7 text

因果のストーリーを理解するために必要なツール 以下の4つが必要 1. 因果の実践的な定義 2. 因果関係を正確に記述する方法(因果モデルを作る) 3. 因果モデルの構造をデータの特徴に関連付ける方法 4. モデルとデータに含まれる因果関係の組み合わせから結論を導く方法 ここらへんに関するツールを中心にいくつか紹介

Slide 8

Slide 8 text

Pearl本における因果の定義 変数Yの値がXにどのような形であれ依存していれば、XはYの原因 「因果とは聞くことのようなもの」と比喩 変化

Slide 9

Slide 9 text

グラフィカルモデルと構造的因果モデル 世界についての重要な特徴がどのように関連しているかを記述 「教育レベルと職務経験による給料」の例 グラフィカルモデル X: 就学年数, Y: 職務経験, Z: 給料 構造的因果モデル U = {X, Y}, V = {Z}, F = {f z } f z : Z = 2X + 3Y X Y Z

Slide 10

Slide 10 text

DAG(Directed Acyclic Graph) 非巡回的有向グラフ(グラフィカルモデルの1つ) DAGの重要な定義と魅力 重要な定義 - 有向性(directed) 矢印の方向性がある - 非巡回(acyclic) グラフにおいて、ループが形成されて いない 魅力 因果効果の識別条件を視覚的に考えること が可能 (e.g)バックドア基準, フロントドア基準 etc 実務でもDAGの描画は推奨です!

Slide 11

Slide 11 text

介入 ある変数に介入する=その変数をある値に固定する 条件付け≠介入 条件付け(Y|X=x) 介入(Y|do(X=x)) 因果効果: P(Y=y|do(X=x 1 )) - P(Y=y|do(X=x 0 )) X Z Y Z X Y 全データのうち、X=xのデータだけに注目 全データをX=xに固定

Slide 12

Slide 12 text

調整 観察データから介入した場合の確率を考えるためのツール 新薬の因果効果P(Y=y|do(X=x))を考える 観察データ(DAG) X Z Y 調整化公式 = P(Y=y|do(X=x)) Σ z P(Y=y|X=x, Z=z)P(Z=z) Z: 性別, X: 薬の使用, Y: 回復

Slide 13

Slide 13 text

観測されなかった「事実」すなわち「反事実」について考える 新薬の因果効果を考える 事実 反事実モデル 反事実 ※ここでは、破線の向きは因果の向きではなく時間の流れを表しています

Slide 14

Slide 14 text

Pearl本の概要(まとめ) - 相関と因果は異なる → 因果関係を考えるには「因果のストーリー」を考える必要 → 因果の定義: YがXの影響を受けていれば因果(ざっくり) - 因果のストーリーを考えるツール → グラフィカルモデル(DAGなど) → 構造的因果モデル → 介入(≠条件付け) → 調整 → 反事実モデル

Slide 15

Slide 15 text

実務での応用イメージ

Slide 16

Slide 16 text

引き出しに入れておいてほしい3つの手順 1. グラフ(DAG)を描画 2. 識別条件を考える 3. 因果効果を推定する(発展: 反事実モデルの枠組みで推定) ここから(※)があるところは、Appendixに補足情報を載せています

Slide 17

Slide 17 text

設定 ネット上の疑似データを利用(※) 音楽アプリで割引キャンペーンをした際に、どれだけ需要が高まるかを考える! 手元のデータ 平均オンライン時間 1週間の平均訪問日数 ユーザーの収入 割引の有無 需要

Slide 18

Slide 18 text

手順1: グラフ(DAG)を描画 ドメイン知識に基づいて、DAGを描く 今回は”DoWhy”というPythonライブ ラリを用いて手元のデータだけで DAGを描画していますが、 本来は手元にデータが存在しない要因 も含めて描画するのがbetter! 今回は時間の都合&データ生成の答え を知っている(※)ので、あっさり DAGを描いてます

Slide 19

Slide 19 text

DAGから識別条件を考える 手順2: 識別条件を考える バックドア基準(※)のもと、dE[需要|ユーザーの収入] / d[割引]を推定すればOK! 識別条件 因果効果の推定式

Slide 20

Slide 20 text

手順3: 因果効果を推定 傾向スコアマッチング(※)を用いてATE(※)を推定 割引には需要を平均1.4増加させる効果があったと推定 1.4387…

Slide 21

Slide 21 text

発展: 反事実モデルの枠組みで因果効果を推定 T-Learner(※)を用いてCATE(※)を推定 incomeが1より小さいと割引の効果は大きく incomeが1以上だと割引の効果はあまりない

Slide 22

Slide 22 text

実務での応用イメージ(まとめ) この3つの手順は、ぜひ引き出しに入れておいてください! 1. グラフ(DAG)を描画 2. 識別条件を考える 3. 因果効果を推定する(発展: 反事実モデルを用いて推定)

Slide 23

Slide 23 text

Appendix

Slide 24

Slide 24 text

利用したデータについて(概要) 下記URLからデータを引用 https://github.com/microsoft/EconML/blob/main/notebooks/CustomerScenarios/Case%20Study%20- %20Customer%20Segmentation%20at%20An%20Online%20Media%20Company.ipynb もともと11個の変数が存在しているもののうち、一部を変更・抽 出したデータを利用(変更点は次ページ)

Slide 25

Slide 25 text

利用したデータについて(変更・抽出方法) 元データは割引率が3パターン(0%, 10%, 20%)だったものを割 引あり(1)or割引なし(0)に変更してます。

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

ATEとCATE - ATE(Average Treatment Effect): 平均処置効果 → 集団の平均的な効果 → ATE = E[Y i (T=1) - Y i (T=0)] = E[Y i (T=1)] - E[Y i (T=0)] - CATE(Conditional ATE): 条件付き処置効果 → ある共変量で条件付けた集団の平均的な処置効果 → CATE = E[Y i (T=1)-Y i (T=0)|X i =x] = E[Y i (T=1)|X i =x]-E[Y i (T=0)|X i =x] 3つの変数Y, T, Xの意味(音楽アプリのデータの例) - Y: アウトカム(需要の高さ) - T: 処置(割引を受けたかどうか) - X: 共変量(ユーザーの収入などのアウトカムor処置に影響を与えそうな変数)

Slide 31

Slide 31 text

傾向スコアマッチングとは 「処置は異なるが、傾向スコアが近い」ペアを用いて効果を推定 傾向スコア: 属性から予測される処置が割り当てられる(条件付き)確率 傾向スコアのイメージ 平均オンライン時間: 1時間 割引される確率: 70% 1週間における平均滞在日数: 5日 ユーザーの収入: 20万円/月 予測 推定のイメージ 「傾向スコア0.7」かつ「割引あり」の 人の需要の高さ 「傾向スコア0.7」かつ「割引なし」の 人の需要の高さ この差分が効果

Slide 32

Slide 32 text

T-Learnerとは 2つの機械学習モデルを利用して、CATEを推定する因果推論手法 処置ありの予測モデルと処置なしの予測モデルを作成し、事実と反事実の 予測値の差分を効果として推定 手元のデータ 機械学習モデル 割引ありの需要 (予測値) 割引なしの需要 (予測値) 効果 予測モデルも手元の データから作成

Slide 33

Slide 33 text

参考文献(テキスト) - Pearl(2019)「入門統計的因果推論」朝倉書店 - Pearl(2022)「因果推論の科学」文藝春秋 - 岩崎(2015)「統計的因果推論」朝倉書店 - 岩波データサイエンスVol.3(2016)「[特集]因果推論-実世界のデータから因果 を読む」岩波新書 - 小川(2021)「Pythonによる因果分析」マイナビ出版 - 高橋(2022)「統計的因果推論の理論と実装」共立出版

Slide 34

Slide 34 text

参考文献(Web: すべて 2023年1月12日 参照) - Hayashi takehiko「”因果推論駅”の奥の方を探訪しながら考える」 https://speakerdeck.com/takehikoihayashi/wai-de-nidofalseyounaxi-gariwochi-tuteirufalseka - krsk「”矢印”をつかって因果関係を視覚的に整理する: 因果ダイアグラム(DAG)入門①」 https://www.krsk-phs.com/entry/DAG1 - krsk「”矢印”をつかって因果関係を視覚的に整理する: 因果ダイアグラム(DAG)入門②」 https://www.krsk-phs.com/entry/DAG2 - krsk「統計的因果推論のためのPythonライブラリDoWhyについて解説」 https://www.krsk-phs.com/entry/2018/08/22/060844 - lystahi「EconMLケーススタディ」https://qiita.com/lystahi/items/e64e4bb0dc13a9bcafbf - Microsoft Research「DoWhy documentation」https://www.pywhy.org/dowhy/v0.9.1/ - Microsoft Research「EconML User Guide」https://econml.azurewebsites.net/ - S¨oren R. K¨unzel他「Meta-learners for Estimating Heterogeneous Treatment Effects using Machine Learning」https://arxiv.org/abs/1706.03461

Slide 35

Slide 35 text

- 「Pythonで因果推論(2)~反実仮想と因果効果~」 https://zenn.dev/s1ok69oo/articles/c3404a184d2203 - 「Pythonで因果推論(6)~傾向スコアを用いた効果検証~」 https://zenn.dev/s1ok69oo/articles/c058108acb83e7 - 「機械学習で因果推論~Meta-LearnerとEconML~」 https://zenn.dev/s1ok69oo/articles/1eeebe75842a50 - 「PythonによるT-Learnerの実装」 https://zenn.dev/s1ok69oo/articles/4a36fee0297234 - 「DoWhyとEconMLによる因果推論の実装」 https://speakerdeck.com/s1ok69oo/dowhytoeconmlniyoruyin-guo-tui-lun-noshi-zhuang - 「機械学習を用いた効果検証~Doubly Robust Learner~」 https://speakerdeck.com/s1ok69oo/ji-jie-xue-xi-woyong-itaxiao-guo-jian-zheng-dr-learner 参考文献(セルフ: タイトルとURLだけ)

Slide 36

Slide 36 text

宣伝 高橋(2022)「統計的因果推論の理論と実装」の勉強会を開催して います! Rubin流(潜在的結果変数の枠組み)の因果推論について ”易しく”かつ”しっかり”学習できるテキストですので、興味のある 方はぜひご参加ください! 初回の勉強会資料はこちら: https://speakerdeck.com/s1ok69oo/tong-ji-de-yin-guo-tui-lun-noli-l un-toshi-zhuang-qian-zai-de-jie-guo-bian-shu-nowaku-zu-mi

Slide 37

Slide 37 text

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