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

効果検証入門に物申してみた_JapanR_2023

うとしん
December 01, 2023

 効果検証入門に物申してみた_JapanR_2023

2023年12月2日に開催されたJapan.RのLT資料です。

処置と割当の不一致や効果の異質性によって効果が検出できない際に、操作変数を用いて効果を推定する方法を紹介しています。

因果推論・効果検証に興味のある方は、ぜひご一読いただけますと幸いです。

うとしん

December 01, 2023
Tweet

More Decks by うとしん

Other Decks in Science

Transcript

  1. 効果検証入門に物申してみた
    2023/12/[email protected] by うとしん

    View full-size slide

  2. このテキストにこんな記述が...
    「操作変数は介入の割り当てに影響を与えるものの、効果が表れ
    る変数に対しては影響を与えないような変数です。(中略)ビジ
    ネスの環境で発見することは非常に難しく、扱うことができるの
    は非常にまれである(後略)」
    効果検証入門について
    敬愛してやまないCyberAgentの安井さんが執筆さ
    れたテキスト
    効果検証の概要と効果検証のための因果推論手法がRの実装コー
    ドとともに説明されている神テキストです!(ステマ)
    効果検証入門(安井, 2020)p11から引用

    View full-size slide

  3. 物申したいのはココ!
    「操作変数をビジネス上で扱うことは非常にまれ」
    → そんなことはない!!!
    そこで今回は「操作変数はこんなケースで使えます」という話をします!
    効果検証入門に限らず、さまざまな有識者や計量経済学などのテキストから「”適切な”操作変数なんて
    なかなか見つからない」という主張が散見されます(これ自体には異論はない)
    一方、Tech企業の分析では”適切な”操作変数を利用して発展的な議論をしているケースも多数存在

    View full-size slide

  4. こんなときどうする?
    アプリのプッシュ通知が売上に与える効果を考えたい
    売上: 2,000円
    売上: 1,000円
    プッシュ通知を見る
    プッシュ通知を見ない
    プッシュ通知の効果は
    1,000円
    ユーザーiさん
    観測できるのは
    どちらかだけ
    プッシュ通知の配信の有無をランダムに割り当ててA/Bテストしますよね?

    View full-size slide

  5. よくある結果
    プッシュ通知の効果がめっっっちゃ小さい...
    平均売上: 1,100円
    平均売上: 1,000円
    プッシュ通知が
    配信されるグループ
    プッシュ通知が
    配信されないグループ
    プッシュ通知の効果は100円??
    ユーザー群
    配信コストを考えるとプッシュ通知は送らない方がいい、、?

    View full-size slide

  6. なんで効果が小さくなるのか
    処置と割当の不一致や効果の異質性が問題
    プッシュ通知を見ないユーザー
    (効果=0)
    プッシュ通知を見ても売上が増えな
    いユーザー(効果=0)
    プッシュ通知を見て売上が増える
    ユーザー(効果>0)
    プッシュ通知が配信されるグループ

    View full-size slide

  7. なんで効果が小さくなるのか
    効果0のユーザーが多く存在し、平均的な効果が薄まって見える
    プッシュ通知を見てないor見ても効果が0のユーザーを含めて平均的な効果を計算している
    効果=0 効果=0 効果>0

    View full-size slide

  8. 手っ取り早い解決策
    プッシュ通知を見たユーザーにおける局所的な効果を考える
    効果=0 効果=0 効果>0
    ここの部分のユーザーにおける平均的な効果を計算したら良い

    View full-size slide

  9. これで解決!!、、、ではない
    プッシュ通知を見たユーザーと配信されてないユーザーの平均を比較
    プッシュ通知が配信
    されないグループ
    プッシュ通知が配信
    されるグループ
    プッシュ通知を見ないユーザーを
    平均の計算から除外する
    グループ内の全ユーザーで
    計算した平均
    プッシュ通知を見たユー
    ザーのみで計算した平均
    効果?
    プッシュ通知を見ないユーザーを除外するのは
    購買意欲の低いユーザーを除外してる(かも)

    View full-size slide

  10. じゃあ、どうすればいいの??
    ここで操作変数の出番!!!

    View full-size slide

  11. 操作変数のおさらい
    操作変数とは「介入の割り当てに影響を与えるものの、効果が表れ
    る変数に対しては影響を与えない」ような変数
    Y(アウトカム)
    D(介入)
    Z(操作変数)
    ZはYには影響を与えない
    2SLSという手法で局所的な効果を推定することができる(理論的な説明は割愛)
    RのAERパッケージで実行可能!

    View full-size slide

  12. 先ほどの例を当てはめる
    - 操作変数Z: プッシュ通知の配信の有無
    - 介入D: プッシュ通知を見たかどうか
    - アウトカムY: 売上
    売上
    プッシュ通知を
    見たかどうか
    プッシュ通知の
    配信の有無
    プッシュ通知を見たユーザーにおける(局所的な)効果を推定
    プッシュ通知の配信の有無はランダムに割り当てるので売上に影響はない

    View full-size slide

  13. プッシュ通知が購入金額に与える効果を推定する問題を考える
    以下のデータを利用
    - リンク:
    https://github.com/matheusfacure/python-causality-handbook/blob/master/causa
    l-inference-for-the-brave-and-true/09-Non-Compliance-and-LATE.ipynb
    - データには3つのカラムが存在
    - in_app_purchase: 購入金額(単位: ドル)
    - push_assigned: プッシュ通知が配信されたら1, されなかったら0
    - push_delivered: プッシュ通知が見られたら1, 見られなかったら0
    Rでの実装例: データセットの紹介

    View full-size slide

  14. Rでの実装例: データのインポート

    View full-size slide

  15. Rでの実装例: OLSによる推定結果
    推定された効果は2.3636
    (見たかどうかにかかわらず)プッシュ通知の配
    信が割り当てられたユーザーの平均的な効果
    効果=0 効果=0 効果>0
    推定しているのはプッシュ通知を見てないor
    見ても効果が0のユーザーを含めた平均的な効果

    View full-size slide

  16. Rでの実装例: IVを利用した推定結果(2SLS)
    推定された効果は3.2938
    プッシュ通知を見たユーザーにおける(局所的)な効果
    OLSの推定値(2.3636)よりも大きい
    効果=0 効果=0 効果>0
    推定しているのはプッシュ通知を見た
    ユーザーにおける(局所)平均的な効果

    View full-size slide

  17. 2SLSの補足: 1段階目の推定結果
    推定された効果は0.7176
    約3割ほどいたプッシュ通知を見てない
    (効果0)のユーザーを排除している
    効果=0 効果=0 効果>0
    1段目の推定ではこのユーザー
    の割合を推定している

    View full-size slide

  18. まとめ
    - 効果を知りたいときはA/Bテストでグループ間の平均を比較しがち
    - 効果0のユーザーが存在し、推定された効果が小さいという問題
    - 処置と割当の不一致
    - 効果の異質性
    - 操作変数を利用することで、介入がなされたユーザーにおける局所的
    な効果を推定することが可能
    - 2SLSはRのAERパッケージを利用することで実装可能
    - 操作変数は意外と使う(操作変数はいいぞ!)

    View full-size slide

  19. Webページは2023年11月24日時点に参照してます
    - 安井(2020)「効果検証入門」技術評論社
    - Scott(2021)「Causal Inference: The Mixtape」Yele University Press
    - https://qiita.com/s1ok69oo/items/d9f3a3860388f3b9911d
    - https://github.com/matheusfacure/python-causality-handbook
    参考文献

    View full-size slide

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

    View full-size slide