Slide 1

Slide 1 text

SHAPで因果関係を 説明できる?

Slide 2

Slide 2 text

アジェンダ - イントロ - 結論 - 因果関係を説明できる特徴量 - 余談 - まとめ

Slide 3

Slide 3 text

イントロ

Slide 4

Slide 4 text

今回お話する内容は,私が以前執筆したQiita記事を元に作成してい ます > ぜひ,Qiitaも読んでください!(清き「1いいね」待ってます笑) > 記事のリンク: https://qiita.com/s1ok69oo/items/0bf92b84e565789a2191 宣伝

Slide 5

Slide 5 text

みなさんこんな経験ありませんか? クライアントからの依頼 hogehogeを予測するモデルを作って欲し い できれば,どの要因(特徴量)がモデルに影 響を与えているかも知りたい クライアント

Slide 6

Slide 6 text

みなさんこんな経験ありませんか? 分析官の脳内 機械学習モデルだ と解釈が難しい... 解釈しやすい統計 モデルだと予測精 度がネック... SHAPを利用して 機械学習モデルを 解釈しよう! 分析官 分析官

Slide 7

Slide 7 text

みなさんこんな経験ありませんか? 成果物を納品 モデルはfugafuga で,予測精度は... SHAP値を見る限 り,モデルに影響す る要因は... ありがとうござい ます 納品 分析官 クライアント

Slide 8

Slide 8 text

クライアントの反応 みなさんこんな経験ありませんか? SHAP値の大小っ て,因果関係の大小 ですよね? え... 因果関係と言って いいんだっけ...? クライアント 分析官

Slide 9

Slide 9 text

結論

Slide 10

Slide 10 text

結論 基本的にSHAPでは因果関係を説明することはできません! SHAP値 因果効果

Slide 11

Slide 11 text

問題設定 サブスク購入者が商品のサブスク購入を更新するかどうかを予測す るモデルを考える > Pythonでデータを生成し,シミュレーション > 問題設定は下記のURLのものを引用しています https://shap.readthedocs.io/en/latest/example_notebooks/overviews/Be%20careful%2 0when%20interpreting%20predictive%20models%20in%20search%20of%20causal%C2 %A0insights.html

Slide 12

Slide 12 text

観測できるデータと観測できないデータ(交絡)がある 特徴量(観測可) 概要 Sales calls 訪問販売の回数 Interactions 交流回数 Economy 居住地域の経済状況 Last upgrade 最終更新日 Discount 割引額 Monthly usage 月の利用度合い Ad spend 広告費用 Bugs reported バグの報告回数 問題設定 特徴量(観測不可) 概要 Product need プロダクトのニーズ Bugs faced バグの遭遇回数 今回のシミュレーションではデータの生成過程 が既知なので,未観測(という設定)ながらサ ブスクの継続に影響があることは分かっている 目的変数 概要 Did renew サブスク更新の有無

Slide 13

Slide 13 text

問題設定 データ生成過程のDAG グレー塗「サブスクを継続す るかどうか」を表す目的変数 実線: 観測できる特徴量 波線: 観測できない特徴量

Slide 14

Slide 14 text

ありがちなミスリーディング XGBoostで予測モデルを作成し,SHAP値の棒グラフを描画 棒グラフの長さが予測モ デルへの影響度(絶対 値)を表している Discount(割引額)の影 響度が大きい 割引額が大きいほどサブ スク更新されやすい? 一見,妥当そう...

Slide 15

Slide 15 text

ありがちなミスリーディング DiscountとSHAP値の散布図を描画 Discount(割引額)に対して右肩下が りで,Discountが低い時はSHAP値は 正の値,Discountが高い時はSHAP値 は負の値をとっている 割引額が低いほどサブスクの更新確率 が高く,割引額が高いほどサブスクの 更新確率が低いと予測される...!? 直感的に反する...

Slide 16

Slide 16 text

ありがちなミスリーディング データの生成過程にヒント 実はProduct needが低いユー ザーに対して,購買意欲を掻き 立てるために割引額を大きく していた Product needが低いユーザー は,そもそも購買意欲(サブス クの更新確率)が低い 割引額とサブスクの更新確率 の間に擬似相関が発生 これがミスリーディングの要因 Product needという交絡の存在

Slide 17

Slide 17 text

結論(再掲) 基本的にSHAPでは因果関係を説明することはできません! SHAP値 因果効果

Slide 18

Slide 18 text

因果関係を説明できる特徴量

Slide 19

Slide 19 text

因果関係を説明できる特徴量 今回は2つのケースを紹介 - 予測モデルで因果関係を説明できるケース - 観察データから因果関係を説明できるケース

Slide 20

Slide 20 text

因果関係を説明できる特徴量 今回は2つのケースを紹介 - 予測モデルで因果関係を説明できるケース - 観察データから因果関係を説明できるケース

Slide 21

Slide 21 text

予測モデルで因果関係を説明できるケース 特徴量に強い無視可能性があるケース モデル内の他の特徴量や未観 測の変数と相関していない > SHAP値で因果関係を説明できる!

Slide 22

Slide 22 text

予測モデルで因果関係を説明できるケース SHAP値をそのまま因果効果として解釈できる!! SHAP値をそのまま 因果効果として解釈できる

Slide 23

Slide 23 text

予測モデルで因果関係を説明できるケース EconomyとSHAP値の散布図および本当の因果効果を描画 青のプロット > EconomyとSHAP値の散布図 をプロットしたもの 黒の実線 > データ生成過程に基づく本当 の因果効果 SHAP値で本当の因果効果を 概ね表現できている!

Slide 24

Slide 24 text

因果関係を説明できる特徴量 今回は2つのケースを紹介 - 予測モデルで因果関係を説明できるケース - 観察データから因果関係を説明できるケース

Slide 25

Slide 25 text

観察データから因果関係を説明できるケース 交絡がすべて観察されているケース 青塗りの特徴量 > 因果効果を説明したい特徴 量(Ad spend) オレンジ塗りの特徴量 > 交絡(Last upgrade, Montly usage)

Slide 26

Slide 26 text

観察データから因果関係を説明できるケース SHAP値をそのまま因果関係と捉えてはイケナイ!! SHAP値をそのまま 因果効果してはイケナイ! > 交絡の影響を受けている (Last upgrade, Monthly usage)

Slide 27

Slide 27 text

観察データから因果関係を説明できるケース 適切な因果推論手法を用いることで因果効果の推定が可能 青の実線 > DMLによる因果効果の推定 結果 黒の実線 > データ生成過程に基づく本当 の因果効果 概ねよく推定できている DMLという推定手法を利用

Slide 28

Slide 28 text

因果関係を説明できる特徴量(まとめ) 今回は2つのケースを紹介 - 予測モデルで因果関係を説明できるケース > 強い無視可能性が成り立つ > SHAP値を因果効果として解釈 - 観察データから因果関係を説明できるケース > 交絡がすべて観察されている > 因果推論手法を用いて因果効果を推定

Slide 29

Slide 29 text

余談

Slide 30

Slide 30 text

目的(予測タスクor因果タスク)による 予測タスクの例 サブスク更新の有無を予測する精度を 高めて,将来の収益を推定し,財務計 画の意思決定に繋げたい > SHAP値が高い特徴量を知ることで 予測精度に向上に役立てることが可能 (SHAP値は有用) SHAP値は無意味? 因果タスクの例 できるだけ多くのユーザーのサブスク 更新確率を上げるようなアクションの 意思決定に繋げたい > 基本的にはSHAP値をそのまま因果 関係と解釈することはできない (SHAP値の有用ではない)

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

CSV: Causal Shapley Values Pearlのdo-calculusを応用して計算する”因果的な”Shapley values CSVのココがすごい(1) 特徴量間の独立性を必要としない > 既存のShapley valuesは特徴量間の 独立性が満たされていない場合,先ほ ど説明した(Discountの例)ような ミスリーディングに繋がることがある CSVのココがすごい(2) すべての因果効果を直接効果と間接効 果に分けて算出できる 特徴量1 特徴量2 目的変数 直接効果 間接効果

Slide 34

Slide 34 text

まとめ

Slide 35

Slide 35 text

まとめ - 基本的にSHAPで因果関係は説明できない > SHAP値をそのまま因果効果として解釈すると,交絡や未観測要因の 影響によりミスリーディングが生じてしまう - 条件を満たす特徴量については因果効果を説明できる > 強い無視可能性を満たす特徴量: SHAP値 > 交絡をすべて観察されている特徴量: 適切な因果推論手法

Slide 36

Slide 36 text

Appendix

Slide 37

Slide 37 text

2023年6月13日時点に参照したものです. - https://christophm.github.io/interpretable-ml-book/shapley.html - https://christophm.github.io/interpretable-ml-book/shap.html - https://qiita.com/s1ok69oo/items/0bf92b84e565789a2191 - https://shap.readthedocs.io/en/latest/example_notebooks/overviews/Be%20caref ul%20when%20interpreting%20predictive%20models%20in%20search%20of%20c ausal%C2%A0insights.html - https://towardsdatascience.com/be-careful-when-interpreting-predictive-models-i n-search-of-causal-insights-e68626e664b6 - https://zenn.dev/s1ok69oo/articles/4da9e3b01a0a93 参考文献

Slide 38

Slide 38 text

2023年6月13日時点に参照したものです. - https://arxiv.org/abs/2011.01625 - https://econml.azurewebsites.net/ - https://www.pywhy.org/dowhy/v0.9.1/ 参考文献(余談)