1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Proximal Causal Inference(PCI)で未測定交絡要因を分ける

Last updated at Posted at 2025-12-31

「広告を出したら売れた。でも…“もともと買う気の人”に出してただけでは?」
こういう 見えない要因のせいで、観測データの因果推論は詰みがちである。それでも条件がそろうと、まだ手がある。それが Proximal Causal Inference(PCI)

TL;DR

  • 因果推論が難しい一番の原因は「測れてない交絡(見えない要因)」
  • PCIは、その“見えない要因”の 影(Proxy)を2種類用意できるときに効く
  • ポイントは 「施策に近いProxy」と「結果に近いProxy」 を分けて使うこと

なぜ「相関≠因果」になるの?

例:クーポン配布(施策)で売上が上がった。
でも実は…

  • 買う気が強い人(見えない要因) ほど、アプリをよく開く
  • アプリをよく開く人ほど、クーポンが当たりやすい(施策が届きやすい)
  • 買う気が強い人は、クーポンがなくても買う

こうなると「クーポンが効いた」のか「買う気が強い人に当たっただけ」なのか、混ざって分からなくなる。

この 見えない要因 をここでは 隠れたやる気 / 重症度 / 購買意欲みたいなものだと考える。

PCIの発想

「見えない要因」を直接測れないなら、Proxyを2種類使う。
PCIでは、見えない要因そのもの(例:購買意欲)を推定しようとしない。代わりに Proxy を2種類に分ける。

Proxy 1:施策に近いProxy(Z)

  • 「施策が出る/出ない」に影響しやすい情報
  • でも 結果(売上など)には直接効かないと考えられるもの

例(マーケ/プロダクト)

  • 配信ルールの都合(在庫、配信枠、システム都合のスロット)
  • 通知が届く仕組み側のログ(“届く/届かない”に影響するが、売上に直結しにくいもの)

Proxy 2:結果に近いProxy(W)

  • 結果(売上など)に影響しやすい情報
  • でも 施策を出す判断には直接使われていないと考えられるもの

例(マーケ/プロダクト)

  • 施策の前後に観測できる反応ログ(閲覧量、検索、滞在など)
  • ただし「それが施策配布の条件に入ってる」ならアウトになりがち

図で考える

見えない要因 がいて、施策と結果の両方に影響している。
そこに Z(施策側のProxy)W(結果側のProxy) がぶら下がっているイメージです。

ここがPCIのキモ

  • Zは「施策には効くけど、結果には直接効かない」
  • Wは「結果には効くけど、施策には直接効かない」

で、どうやって因果効果が出るの?

超ざっくり言うと、PCIはこうやる:

  1. ZとWを使って 、「見えない要因がどんな感じか」を間接的に つじつま合わせ する
  2. その つじつま合わせ がうまくいくと、
  3. 施策Aが結果Yに与えた分 だけを取り出せる

ポイントは、ZとWが同じ見えない要因UのProxyを見ている こと。
片方だけだと不足しがちだけど、2種類あると一気に情報が増える、という感覚。

具体例:広告クーポンで考える

  • A(施策):クーポン配布
  • Y(結果):購買
  • U(見えない要因):購買意欲(本当は測れない)

Z(施策に近いProxy)候補

  • 配信システムの都合(混雑で配れない、枠の都合で当たりやすい、など)
  • 「施策が届く/届かない」に効くが、購買に直接は効きにくいもの

W(結果に近いProxy)候補

  • その後のサイト内の自然な行動ログ(閲覧・検索・カート投入など)
  • ただし「そのログが配布ルールに使われている」ならWとして弱くなる

ここが難しいポイントはZ/W選び

Z(施策側のProxy)チェック

  • それは 施策が出るかどうかに影響している?
  • それは 結果に直接効く理由が薄い?(ここが大事)

W(結果側のProxy)チェック

  • それは 結果に近い反応っぽい?
  • それは 施策の出し分けルールに入ってない?(入ってたら危険)

よくある失敗パターン

失敗1:Zが結果に直接効いてた

例:「施策が出る/出ない」を決めてる要因が、そもそも売上にも直結している
→ Zとして使うと前提が崩れがち

失敗2:Wが施策ルールに混ざってた

例:「閲覧量が多い人にクーポン」みたいなルールがあるのに、閲覧量をWにする
→ Wが施策に直接効いてるので破綻しやすい

失敗3:Proxyが弱い(情報が足りない)

ZもWも UのProxy が薄いと、推定が不安定(結果が暴れる)
→ 候補を増やす/設計を練る/サンプルを増やす が基本

Negative Controlとの違い

ネガコンはざっくり

  • 「効くはずがないものが効いて見える」→ バイアスを疑う
  • 「効くはずがないもの」を利用して補正する

PCIはそこから一歩進んで

  • ZとWという2種類のProxyを揃えて、因果効果そのものを取りに行く
    という感じ(ネガコンの一般化として語られることがある)。

実装したくなったら

  • R: CRAN PCL(Proximal Causal Learning 系の実装)
    https://cran.r-project.org/package=PCL

「まず動かす」より前に、Z/Wの妥当性のほうが重要である。ここを雑にすると、どんな立派な推定器でも普通に壊れる。

因果推論において、大層な数式を語ったり、R/Pythonのパッケージをなぞったりするものが、ここ5年でQiita含めて著しく増加したが、これらは 自分自身の写経 ならいいけど、それ以外には本質的には意味がない。ただLLMに食わせるための材料。

まとめ

  • 観測データで因果が難しいのは、だいたい 見えない要因(未測定交絡) のせい

  • PCIは、その見えない要因の Proxyを2種類(施策側Z、結果側W) 集めて戦う方法

  • 成否は Z/W設計が9割

    • Zは施策には効くが結果に直接効かない
    • Wは結果には効くが施策に直接効かない

参考

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?