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

統計的因果推論の理論と実装「傾向スコア」

うとしん
April 05, 2023

 統計的因果推論の理論と実装「傾向スコア」

社内勉強会の発表資料です.高橋先生の「統計的因果推論の理論と実装」のChapter11・12の内容(傾向スコアマッチングや層化解析法,逆確率重み付け法)についてまとめています.

参考リンク

- 因果推論で推薦システムを問い直す
https://qiita.com/usaito/items/c88fd84bce339380b8fa

- 回帰分析とT-Learner
https://speakerdeck.com/s1ok69oo/ji-jie-xue-xi-woyong-itaxiao-guo-jian-zheng-hui-gui-fen-xi-tot-learner

- 傾向スコアとX-Learner
https://speakerdeck.com/s1ok69oo/ji-jie-xue-xi-woyong-itaxiao-guo-jian-zheng-qing-xiang-sukoatox-learner

- 傾向スコアを用いた効果検証
https://zenn.dev/s1ok69oo/articles/c058108acb83e7

- 統計的因果推論の理論と実装「潜在的結果変数の枠組み」
https://speakerdeck.com/s1ok69oo/tong-ji-de-yin-guo-tui-lun-noli-lun-toshi-zhuang-qian-zai-de-jie-guo-bian-shu-nowaku-zu-mi

- EconML公式ドキュメント
https://econml.azurewebsites.net/

- PythonによるT-Learnerの実装
https://zenn.dev/s1ok69oo/articles/4a36fee0297234

- PythonによるX-Learnerの実装
https://zenn.dev/s1ok69oo/articles/58580b8f4fbdf8

うとしん

April 05, 2023
Tweet

More Decks by うとしん

Other Decks in Science

Transcript

  1. 統計的因果推論の理論と実装
    ~Chapter11・12~

    View Slide

  2. 前提
    - Rについては触れません(が, 「Rはいいぞ!」)
    - 基本的にテキストの章立てに沿ってスライドを作成しています
    が,時間の都合上,内容を抜粋しています.
    - 潜在的結果変数の記述がテキストでは{Y(1), Y(0)}と記述され
    ていますが,本スライドでは{Y1, Y0}と記述しています.

    View Slide

  3. アジェンダ
    - Chapter10「傾向スコア」のおさらい
    - Chapter11「傾向スコアマッチング」
    - Chapter12「傾向スコアによる層化解析法および重み付け法」
    - おまけ「傾向スコア×機械学習」(テキスト外)

    View Slide

  4. Chapter10のおさらい
    ~傾向スコアとは~

    View Slide

  5. バランシングスコアと傾向スコア
    バランシングスコア
    共変量Xの関数b(X)が与えられた時
    のXの条件付き分布が,処置群と統
    制群においても同じとなる関数
    傾向スコア
    共変量Xが与えられた時に処置が割
    り当てられる確率.ロジスティック
    回帰などで求める
    X ⊥ T | b(X) e(X) = P(T=1|X)
    最も細かいバランシングスコア
    共変量Xそのもの
    最も粗いバランシングスコア
    傾向スコアe(X)

    View Slide

  6. 定理の証明はAppendixをご参照ください
    傾向スコア定理
    定理1: バランシング
    傾向スコアe(X)が同じ値であれば,
    処置群と統制群における多変量の
    共変量Xの分布は同じになる
    定理2: 条件付き独立性
    傾向スコアが同じ値となる個体で
    あれば,処置への割付けは無作為と
    みなせる
    X ⊥ T | e(X) {Y1, Y0} ⊥ T | e(X)

    View Slide

  7. Chapter11
    ~傾向スコアマッチング~

    View Slide

  8. 未観測の交絡因子がないという仮定が正
    しければ,この2人の
    「結果」の違い(77 - 63 = 14)は
    「処置」の違い(0 or 1)が原因と主張
    統計的因果推論における「マッチング」
    異なる個体であるが,観察される共変量が同じ個体をペアにする
    被験者 処置 結果 年齢 性別
    1 0 63 20 男
    2 0 55 25 女
    3 0 59 38 男
    8 1 81 26 女
    9 1 77 20 男
    10 1 81 54 女
    ※ テキストの表11.2を一部修正
    被験者 処置 結果 年齢 性別
    1 0 63 20 男
    9 1 77 20 男
    マッチング

    View Slide

  9. 推定対象
    統計的因果推論における推定対象は大きく分けて2つ
    平均処置効果(ATE)
    母集団に対して平均的にどれくら
    い効果があったのかを表す
    E[Y1 - Y0]
    処置群の平均処置効果(ATT)
    処置が割り付けられた対象にどれ
    くらい効果があったのかを表す
    E[Y1 - Y0 | T=1]
    マッチングにおける推定対象はATT

    View Slide

  10. 使用するデータ(1/3)
    データの生成プロセス
    - 共変量: x1, x2, x3, x4, x5, x6
    - 平均値1, 標準偏差1の多変量対数正規分布に従う乱数
    - 相関行列は対角線沿いの値が一手となるテプリッツ行列
    - 潜在的結果変数: Y1, Y0
    - Y1 = 5 + 2X
    1
    + 4X
    2
    - 6X
    3
    + 8X
    4
    + 10X
    5
    + 12X
    6
    + ε
    - Y0 = 1 + X
    1
    - 3X
    2
    + 5X
    3
    + 7X
    4
    + 9X
    5
    + 11X
    6
    + ε
    - ε: 標準正規乱数
    - 処置変数: T
    - Y0が中央値より大きいとき50%の確率でT=1, 中央値以下のとき25%の確率でT=1
    - Y0が中央値より大きいとき50%の確率でT=0, 中央値以下のとき75%の確率でT=0

    View Slide

  11. 使用するデータ(2/3)
    データの確認
    変数pathには、ファイル「data02.csv」のPathを指定してください。
    ファイルは下記URLからダウンロードできます。
    https://www.kyoritsu-pub.co.jp/book/b10011781.html

    View Slide

  12. 使用するデータ(3/3)
    推定対象の真値
    ← 傾向スコアマッチングで推定したいのはこちらの値

    View Slide

  13. ナイーブな比較と共分散分析
    ナイーブな比較(上)と共分散分析(下)による推定結果
    15.810
    3.474
    ATTの真値: 2.889
    ※参考(ATE: 3.756)
    バイアス有(大)
    バイアス有

    View Slide

  14. 復元抽出の傾向スコアマッチング: ATTの推定(1/2)
    傾向スコアを計算し,最近傍法によってマッチング

    View Slide

  15. ATTの推定
    復元抽出の傾向スコアマッチング: ATTの推定(2/2)
    マッチングの重みを考慮できておらず,いい推定ができていない.
    ※テキストではWLSですが,weightsをうまく実装できず単純なOLSを実行しています.すみません...

    View Slide

  16. 傾向スコアによるバランシングの評価
    共変量の平均値の差の絶対値をプロット
    ●: マッチング後の平均差の絶対値
    ○: マッチング前の平均差の絶対値
    マッチング後(●)の方が,
    マッチング前(○)よりも平均差の
    絶対値が小さくなっている
    → 共変量の偏りは是正されたと言える

    View Slide

  17. Chapter12
    ~層化解析法および重み付け法~

    View Slide

  18. 層化解析法および重み付け法
    傾向スコアを用いてATEを計算する2つの方法
    1. 層化解析法
    2. 重み付け法
    (再掲)推定したいATEの真値は「3.756」

    View Slide

  19. 傾向スコアによる層化解析法(1/3)
    交絡因子を使って層に分け,交絡因子の影響を除去
    被験者 処置 結果 年齢 性別
    1 0 63 20 男
    2 0 55 25 女
    3 0 59 38 男
    8 1 81 26 女
    9 1 77 20 男
    10 1 81 54 女
    層 被験者 処置 結果 年齢 性別
    1
    1 0 63 20 男
    3 0 59 38 男
    9 1 77 20 男
    2
    8 0 55 25 女
    8 1 81 26 女
    10 1 81 54 女
    性別で層化
    ※ テキストの表12.1を一部修正 ※ テキストの表12.2を一部修正

    View Slide

  20. 傾向スコアによる層化解析法(2/3)
    平均処置効果(ATE)とその分散は次のように計算できる
    ただし,
    - K: 層の数
    - N: 全体の標本サイズ
    - n
    k
    : k番目の層における標本サイズ
    - Y
    k
    (1): k番目の層における処置群の平均値
    - Y
    k
    (0): k番目の層における東征軍の平均値
    このような因果推論の妥当性は
    「未観測の交絡がないという仮定」の妥当性に依存

    View Slide

  21. 傾向スコアによる層化解析法(3/3)
    ATEを推定
    3.749(標準誤差: 0.307)
    → ATEの真値は「3.756」だったので,よく推定できている

    View Slide

  22. 傾向スコアによる重み付け法(1/3)
    傾向スコアの逆数を利用して,
    - 割当確率が低いデータの結果変数に大きく重み付ける(擬似的に多く
    割り当てられた状態にするイメージ)
    - 割当確率が高いデータの結果変数を小さく重み付ける(擬似的に少な
    く割り当てられた状態にするイメージ)
    ことによって,共変量の分布をランダムに割り付けられた状態にし
    てATEを計算する(イメージの)手法
    → IPW(Inverse Probability Weighting)法と呼ばれる

    View Slide

  23. 下記のように重みw
    i
    をつけて,ATEを計算する.
    平均処置効果(ATE)
    傾向スコアによる重み付け法(2/3)
    重み(w)
    ※より効率的なATEのIPW推定量については,Appendixを参照
    ATTを推定する際の重み

    View Slide

  24. 傾向スコアによる重み付け法(3/3)
    ATEを推定(共変量あり)
    3.816
    (標準誤差: 0.311)
    → ATEの真値は「3.756」だったので,よく推定できている

    View Slide

  25. マッチングor層化解析
    傾向スコアそのものが正確に予測
    できているかどうかはあまり大き
    な問題ではない.
    → むしろ,傾向スコアの真値より
    もモデルから計算した値の方が,標
    本データにおけるバランシングを
    良くすることも知られている.
    補足: 傾向スコアの予測精度
    逆確率重みづけ法(IPW)
    傾向スコアの予測値が正確である
    ことが求められる.
    → 傾向スコアの値が小さい場合,
    少しの誤差でもその逆数に大きく
    影響するため.
    特に,傾向スコアの
    分布が端に寄ってい
    る時は要注意な印象

    View Slide

  26. おまけ
    ~傾向スコア×機械学習~

    View Slide

  27. T-Learner
    「機械学習×因果推論」のアプローチの1つ.CATEも推定できる.
    処置あり・なしの2つの予測モデルを作成し,事実と反事実の予測値の差分
    を効果として推定
    手元のデータ
    処置ありの予測値
    処置なし予測値
    効果
    処置の有無別に
    予測モデルを作成
    処置ありの
    予測モデル
    処置なしの
    予測モデル
    処置の有無に関わらず
    各々のモデルに投入

    View Slide

  28. X-Learner
    T-Learnerに傾向スコアを掛け合わせた手法
    処置あり・なしの2つの予測モデルを作成し,各々のモデルによる予測値を
    傾向スコアの逆確率で重みづけた差分を効果として推定
    手元のデータ
    処置ありの予測値 × (1 / e)
    処置なしの予測値 × (1 / 1-e)
    効果
    処置の有無別に
    予測モデルを作成
    処置ありの
    予測モデル
    処置なしの
    予測モデル
    処置の有無に関わらず
    各々のモデルに投入

    View Slide

  29. IPSによるバイアス除去(1/3)
    推薦システムの評価の例
    ユーザー(U)に商品(I)を推薦する際の各ユーザーがそれぞれの商品に対し
    て付すRating(Y)を予測し,その性能を推薦ログデータから評価するケース
    を考える.ただし,R()はYに対するRatingを表す関数,f()は評価関数.
    真の性能

    View Slide

  30. IPSによるバイアス除去(2/3)
    推薦システムの評価の例
    ナイーブな推定量: ただし,Oは観測を表す2値確率変数(O=1ならば観測あり)

    View Slide

  31. IPSによるバイアス除去(3/3)
    推薦システムの評価の例
    IPS推定量
    詳細はこちらの記事「因果推論で推薦システムを問い直す」をご参照ください
    リンク: https://qiita.com/usaito/items/c88fd84bce339380b8fa

    View Slide

  32. Appendix

    View Slide

  33. 傾向スコア定理の再掲
    傾向スコア定理の補足
    定理1: バランシング
    傾向スコアe(X)が同じ値であれば,
    処置群と統制群における多変量の
    共変量Xの分布は同じになる
    定理2: 条件付き独立性
    傾向スコアが同じ値となる個体で
    あれば,処置への割付けは無作為と
    みなせる
    X ⊥ T | e(X) {Y1, Y0} ⊥ T | e(X)

    View Slide

  34. 共変量Xが満たすべき条件
    傾向スコア定理の補足(前提条件)
    条件1: 条件付き正値性
    共変量Xで条件づけた際に,処置の
    割付け確率が0より大きく1より小
    さい
    条件2: 条件付き独立性
    共変量Xで条件づけた際に,潜在的
    結果変数{Y1, Y0}と割付けTが独

    0 < e(X) < 1 {Y1, Y0} ⊥ T | X

    View Slide

  35. 傾向スコア定理の補足(定理1:バランシングの証明)
    X ⊥ T | e(X)
    (証明) X ⊥ T | e(X) ⇔ P(X, T=1|e(X)) = P(X|e(X))*P(T=1|e(X)) … (*)
    と書けるので,これを示す.一般に
    P(X, T=1|e(X))
    = P(X|e(X))*P(T=1|X, e(X))
    = P(X|e(X))*P(T=1|X)  ∵ e(X)はXの関数
    = P(X|e(X))*e(X) … (1) ∵ 傾向スコアの定義: e(X)=P(T=1|X)
    ここで,
    P(T=1|e(X))= E
    T
    [T|e(X)] =E
    T
    [E
    X
    [T|X]|e(X)] =E
    X
    [P(T=1|X)|X] = e(X)
    …(2)
    となるから,(2)式のe(X)=P(T=1|e(X))を(1)式に代入すると(*)が得られる■

    View Slide

  36. 傾向スコア定理の補足(定理2:条件付き独立性の証明)
    {Y1, Y0} ⊥ T | e(X)
    (証明){Y1, Y0} ⊥ T | e(X) ⇔ P(T=1|{Y1, Y0}, e(X)) = P(T=1|e(X)) …(*)
    と書けるので,これを示す.バランシングの証明の(2)式より
    (*) ⇔ P(T=1|{Y1, Y0}, e(X)) = e(X) …(**)
    ここで
    P(T=1|{Y1, Y0}, e(X))
    = E[P(T=1|{Y1, Y0}, X)|{Y1, Y0}, e(X)]
    = E[P(T=1|X)|{Y1, Y0}, e(X)] ∵ 条件2:(共変量の)条件付き独立性
    = E[e(X)|{Y1, Y0}, e(X)] = e(X)
    (**)が示されたので,(*)が示された■

    View Slide

  37. 傾向スコア定理の補足(平均処置効果の計算)
    平均処置効果(ATE) = E[Y1 - Y0]
    まず、E[Y1 - Y0| e(X)]を考える
    E[Y1 - Y0| e(X)]
    = E[Y1|e(X)] - E[Y0|e(X)]
    = E[Y1|T=1, e(X)] - E[Y0|T=0, e(X)]
    = E[Y|T=1, e(X)] - E[Y|T=0, e(X)] ∵傾向スコアe(X)の条件付き独立性
    よって、平均処置効果は
    E[Y1 - Y0]
    = E
    e(X)
    [E[Y1 - Y0| e(X)]]
    = E
    e(X)
    [E[Y|T=1, e(X)] - E[Y| T=0, e(X)]]
    3行目が潜在的結果変数Y1, Y0ではなく,
    観測される値Yで表されている点がポイント

    View Slide

  38. 効率的なIPW推定量
    テキスト内で紹介されているATE
    より効率的なATEの推定量(こちらが紹介されることも多い)
    先ほどと分子の記述が
    異なりますが,表して
    いる内容は同じです.

    View Slide

  39. 参考文献(テキスト)
    - 岩崎(2015)「統計的因果推論」朝倉書店
    - 小川(2021)「Pythonによる因果分析」マイナビ出版
    - 齋藤(2022)「施策デザインのための機械学習入門」技術評論社
    - 高橋(2022)「統計的因果推論の理論と実装」共立出版
    - 星野(2009)「調査観察データの統計科学」岩波書店

    View Slide

  40. 参考文献(Web記事)
    - 因果推論で推薦システムを問い直す
    https://qiita.com/usaito/items/c88fd84bce339380b8fa
    - 傾向スコアを用いた効果検証
    https://zenn.dev/s1ok69oo/articles/c058108acb83e7
    - EconML公式ドキュメント
    https://econml.azurewebsites.net/
    - PythonによるT-Learnerの実装
    https://zenn.dev/s1ok69oo/articles/4a36fee0297234
    - PythonによるX-Learnerの実装
    https://zenn.dev/s1ok69oo/articles/58580b8f4fbdf8

    View Slide

  41. 参考文献(Webスライド)
    - 回帰分析とT-Learner
    https://speakerdeck.com/s1ok69oo/ji-jie-xue-xi-woyong-itaxiao-guo-jian-zheng-hu
    i-gui-fen-xi-tot-learner
    - 傾向スコアとX-Learner
    https://speakerdeck.com/s1ok69oo/ji-jie-xue-xi-woyong-itaxiao-guo-jian-zheng-qi
    ng-xiang-sukoatox-learner
    - 統計的因果推論の理論と実装「潜在的結果変数の枠組み」
    https://speakerdeck.com/s1ok69oo/tong-ji-de-yin-guo-tui-lun-noli-lun-toshi-zhua
    ng-qian-zai-de-jie-guo-bian-shu-nowaku-zu-mi

    View Slide