Upgrade to Pro — share decks privately, control downloads, hide ads and more …

因果推論の基礎とその罠 _Basic and Trap of Causal Inference_#白金鉱業

ninohira
November 28, 2019
12k

因果推論の基礎とその罠 _Basic and Trap of Causal Inference_#白金鉱業

白金鉱業 Meetup Vol.12の登壇資料
#白金鉱業

ninohira

November 28, 2019
Tweet

Transcript

  1. Basic and Trap of Causal Inference 免責事項 - 本登壇は個⼈の⾒解であり、所属する組織の公式⾒解ではありません。 -

    伝わることに重点を置いているので、数式は正確ではないです。⼝頭でフォローします。 - ツイッターにたくさんつぶやくと運営&⾃分が喜びますので、たくさんツイートしてください。 2 /32
  2. Basic and Trap of Causal Inference ⾃⼰紹介 学⽣ 早稲⽥⼤学 創造理⼯学研究科

    経営システム⼯学専攻 共同研究先のマーケティングデータ × データサイエンス 仕事 データサイエンティスト @BrainPad 2018年新卒 強化学習 / NLP / 統計的因果推論 / 画像異常検知 / PM⾒習い 趣味 仁ノ平 将⼈ Masato Ninohira (@nino_pira) Data Gateway Talk 主催 ブログ︓下町データサイエンティストの⽇常 B’zファン フットサル 3 /32
  3. Basic and Trap of Causal Inference お断り 実は、3ヵ⽉しか因果推論を勉強していません - 間違っていることを話していましたら

    ごめんなさい。。。 - 逆に⾔うと3ヵ⽉でここまで まとめられる⼈材がBPにはゴロゴロいます 5 /32 因果推論の基礎 - 初⼼者向け (Notガチ勢の⽅) - 岩波データサイエンスvol3 / ⾃分のブログのまとめ - データも岩波データサイエンスから引⽤ 登壇時間の制約 - 傾向スコアマッチングの説明まででTime up - 他⼿法はブログみてください IPW / Double Robust / Proximityマッチング / PDP Causal Tree(←ブログに書いてない)
  4. Basic and Trap of Causal Inference そもそも因果推論って︖ 〇〇することによるXXXへの効果測定 - 広告の効果測定

    - 喫煙したから肺がんになりやすいか - バント作戦が得点率を上げるか 6 /32
  5. Basic and Trap of Causal Inference 9 /32 以下を「うんうん。知ってる。」って⾔えたら完全に理解 (1)

    反実仮想を⽤いた因果推論のお気持ち - 背景要因を揃えて、真の効果を算出 - 絶対守ろう「強く無視できる割り当て」 (2) 傾向スコアを⽤いた因果推論の⼿順と罠 - 傾向スコアモデリング / 分布の確認 - 傾向スコアマッチング (3) ちゃんと設計された A/Bテストは原点にして頂点 
  6. Basic and Trap of Causal Inference ⽬次 1. 因果推論 ~施策の本当の効果~

    2. 傾向スコアを⽤いた因果効果推定 3. モデリング / マッチングの概要と罠を説明 4. 結局 A/B テストが最強 5. まとめ 9 /32
  7. Basic and Trap of Causal Inference 12 /32 TVのCMを⾒るとアプリのプレイ時間が短くなる︕︖ CMはやらない⽅がいい︕︖

    そんな訳ない。。。 そもそもCMを⾒た / ⾒ていない⼈の背景要因が異なる CM  CM  CM  /     TV  TV  背景が異なるので単純に⽐較してはいけない 明らかに CMを⾒た⼈︓そもそも、アプリのプレイ時間が短い CMを⾒ていない⼈ ︓ そもそも、アプリの使⽤時間が⻑い 岩波DSのデータ
  8. Basic and Trap of Causal Inference 13 /32 理想的な⽐較 ⽤語

    / ノーテーション - 割り当て(treat)︓施策を受けたかのフラグ。z = 1 が施策を受けた⼈でテスト群と呼ぶ(逆はコントロール群)。 - 共変量(covariance)︓機械学習でいう特徴量。x - 施策の効果 (effect)︓アプリのプレイ時間などの⽬的変数。y1 ︓割り当てを受けたときの⽬的変数(逆はy0 ) - 因果効果︓割り当てを受けることで受けない時と⽐較し、⽬的変数の差がどれくらい⽣じるか やりたいこと 背景要因(x)が揃ったデータ同⼠での テスト / コントロール群の y の⽐較を⾏い 因果効果を算出 割り当てあり z=1 y1 割り当てによる効果の差分 因果効果 = 割り当てなし z=0 y0
  9. Basic and Trap of Causal Inference 14 /32 困難ポイント この⽐較が難しい問題

    (1) 共変量の次元が⼤きいと類似度計算が難しい (2)「ランダム化⽐較試験(RCT)」できない観察実験 (3) そもそもテスト / コントロール群にしか存在しないデータがある = バイアスがある CMを⾒てない CMを⾒た 理想的な⽐較︓同じ背景を持ったデータ同⼠の⽐較 同じ背景要因 (共変量)を 持ったデータ同⼠で⽐較 現実的に不可能 ⾼年齢 TV派 スマホ派
  10. Basic and Trap of Causal Inference 15 /32 反実仮想 ずばり、

    「仮に施策を受けたら or 受けなかったら ⽬的変数はどうであったか」 と考える思想 CMを⾒た y1 y0 CMを⾒なかった Aさん ⽋損 この⽬的変数を算出し、y1と⽐較したい テスト群 コントロール群 観測 ⽋損 ⽋損 観測 y1 y0 因果効果
  11. Basic and Trap of Causal Inference 17 /32 共変量 が同じであれば、割り当て

    と⽬的変数 の同時分布は独⽴ 解釈 - 割り当てがされる確率は、あくまでも共変量のみに依存し、⽬的変数には依存しない - 例えば、年齢 / 性別 などの共変量のみが、割り当て(CMを⾒るか)に依存する - つまり共変量 (年齢性別など)が同じ個体であれば、割り当て(CMを⾒るか)される確率 は同じ。 男性 / 20代 男性 / 20代 同じ共変量 = CMを⾒る確率は同じ 最⼤の罠 共変量で完全に成⽴させる必要 超絶重要 条件︓強く無視できる割り当て STUVAについては#OpenBPの資料を参照してください
  12. Basic and Trap of Causal Inference 18 /32 強く無視できる割り当てを確認する⽅法 -

    便利な公式みたいなものは存在しない - 求められる圧倒的ドメイン知識 - こんな感じでドメイン知識が圧倒的に必要 例えば、CMを⾒る確率を表現する上で、性別と年代だけでok︖ 地域 / スマホ使⽤時間も関係あるのでは︖ - ちゃんと観測データで強く無視できる割り当てが満たされている︖ 超絶重要
  13. Basic and Trap of Causal Inference 19 /32 バランシングスコア /

    傾向スコアの導⼊ 強く無視できる割り当てが成⽴していると仮定すると以下の2つが成⽴ バランシングスコア 同じ傾向スコアを持つテスト / コントロールの ⽬的関数の差を傾向スコアで期待値 共変量 の関数 でその値で条件つければ と割り当て が独⽴になる関数 →最もシンプルな関数が を意味する傾向スコア ⼤雑把に解釈︓
  14. Basic and Trap of Causal Inference 20 /32 そう、これこそが傾向スコアマッチング テスト群

    id 傾向スコア y A 0.8 10 B 0.7 20 C 0.5 30 D 0.2 40 id 傾向スコア y E 0.2 2 F 0.8 8 G 0.7 18 H 0.5 20 傾向スコアの同じデータ同⼠のペアを作る test ctr yの差 A F 10 – 8 = 2 B G 20 – 18 = 2 C H 30 – 20 = 10 D E 40 – 2 = 38 差の期待値 =(2 +2 +10 +38) / 4 = 13 解釈︓因果効果は13 コントロール群    /      "! ※⾊々仮定は置いてます
  15. Basic and Trap of Causal Inference 21 /32 ここまでの振り返り -

    強く無視できる割り当て / 圧倒的ドメイン知識 - 傾向スコアマッチング この辺
  16. Basic and Trap of Causal Inference 24 /32 全体の流れ 傾向スコアモデリング

    マッチング 概要 - 傾向スコアを推定するモデルの作成 評価 / 罠 - (c統計量) - 傾向スコアの分布 概要 - 1 on 1マッチ(のみを紹介) 評価 / 罠 - Standard Difference
  17. Basic and Trap of Causal Inference 25 /32 傾向スコアモデリング 概要

    評価 / 罠 傾向スコア を推定するモデルの学習 (適当な2値分類モデル) (1)C統計量 (機械学習でいうAUC)で評価︖ たまに(︖)「c統計量が0.7以上ならok」って⾒解を⾒かけるが本当︖ 値そのものよりも分布の確認では︖ (2)傾向スコアの分布 仮に、傾向スコアが正しく振れているならば 傾向スコア0.1 (テスト群のデータ︓コントロール群のデータ) = 1 : 9 傾向スコア0.5 (テスト群のデータ︓コントロール群のデータ) = 5 : 5 傾向スコア0.9 (テスト群のデータ︓コントロール群のデータ) = 9 : 1 の割合でデータが存在するはず ダメなパターン︓分布が偏る 原因 - nが⾜りてない - そもそも テスト / コントロール群の性質が異なる コントロール群 テスト群 傾向 スコア 頻 度 理想的な傾向スコアのヒストグラム ダメなパターン
  18. Basic and Trap of Causal Inference 26 /32 マッチング 概要

    評価 / 罠 算出された傾向スコアを⽤いて - 傾向スコアが近いテスト / コントロールデータのペアリング - 因果効果︓マッチしたペアのyの差分の平均値   id  y A 0.8 10 B 0.7 20 C 0.5 30 D 0.2 40 id  y E 0.2 2 F 0.8 8 G 0.7 18 H 0.5 20       test ctr y A F 10 – 8 = 2 B G 20 – 18 = 2 C H 20 – 20 = 10 D E 40 – 2 = 38  =(2 +2 +10 +38) / 4 = 13 13    (1)Standard Differenceで評価 意味︓ペアリングに⽤いられたテスト / コントロール群のデータの共変量に差がないか どの共変量を使う︖︓モデル作成の際にimportanceが⾼い共変量 * 多くの論⽂では全共変量に対してSDを算出しているが、、、 (2)テスト or コントロールのどちらかのデータが少ないとペア数が減る
  19. Basic and Trap of Causal Inference 27 /32 ここまでの振り返り -

    傾向スコアモデリング / 分布の確認 - 傾向スコアマッチング この辺
  20. Basic and Trap of Causal Inference 29 /32 因果推論は制約強すぎ 強く無視できる割り当て

    ドメイン知識 傾向スコアの分布 データ 量 /質 マッチング 安易に「因果推論使えば効果検証できるんでしょ︖」は絶対ダメ
  21. Basic and Trap of Causal Inference 30 /32 ちゃんと設計されたA/Bテストが理想的 最低限考えるべき事項

    - KPI設計 / 施策とKPIの関係 - ABの設計 ちゃんと設計されたA/Bテストこそ 原点にして頂点 この辺は私よりも事業会社のデータサイエンティストの⽅が圧倒的に詳しい ただし、 「ちゃんと考えた」ABテスト
  22. Basic and Trap of Causal Inference 32 /32 以下を「うんうん。知ってる。」って⾔えたら完全に理解 (1)

    反実仮想を⽤いた因果推論のお気持ち - 背景要因を揃えて、真の効果を算出 - 絶対守ろう「強く無視できる割り当て」 (2) 傾向スコアを⽤いた因果推論の⼿順と罠 - 傾向スコアモデリング / 分布の確認 - 傾向スコアマッチング (3) ちゃんと設計された A/Bテストは原点にして頂点  Thank you for listening