傾向スコアにおける共変量の選び方について

2023年12月1日

はじめに

因果効果(介入効果)を正確に測定しようという因果推論の考え方は、医療・政策決定・マーケティングなど、様々な分野で利用されています。施策の介入のバイアスを補正する、といった表現で聞かれたことがある方もいらっしゃるかもしれません。

例えば、

医療分野であれば、元々の寿命を考慮して、治療が寿命に与える効果を分析する。
マーケティングであれば、元々のアプリの利用しやすさを考慮して、広告のがアプリ利用に与える効果を分析する。
政策分野では、元々の地域ごとの犯罪率を考慮して、施策が犯罪防止に与えるの効果を分析する。

といった具合です。

因果推論の具体的な手法としては、傾向スコアを用いた補正のアプローチがあります。
傾向スコア補正を実務で利用する際に、最も躓きやすいパートの1つが、共変量の選定方法ではないかと思い、まとめていきます。

本記事では、「傾向スコアという名前は知っているが、実務に落とし込む自身はない…」という方を対象に、傾向スコアを用いた補正の際の共変量の選択方法について説明していきます。

基礎の振り返り

傾向スコアを用いた補正には、マッチング/共分散分析/層別解析/IPWといった考え方がありますが、昨今では、マッチングとIPWが多く利用される傾向にあります。

介入と結果変数どちらにも影響を与える変数(共変量と呼ばれる)を説明変数、介入有無を目的変数とした分類モデルを作成し(ロジスティック回帰が用いられることが多いです)、その出力値を基準としてサンプルの結果変数(KPI)を比較する、というのが、傾向スコアを用いた補正手法の大まかな流れです。

イメージでいうと、介入有無それぞれの群から、モデルの出力値(≒介入確率)が同程度のサンプル同士をとってきて結果の比較を行えば、2つのサンプルの差は介入有無だけなので、介入→結果の影響を正確に分析できる(擬似的なランダム化比較実験ができる)、ということです。

このフローを見ると非常にシンプルに思えますが、ロジスティック回帰の説明変数(共変量)をどのように選べばよいのか、というのがひっかかりポイントです。

ちなみにここでいう「共変量」とは、施策の介入の割り当てと介入の効果を計るKPIの、どちらにも影響を与える変数ということで、共に変える量、という書き方がされています。

共変量の選び方

本題の、共変量の選び方についてです。基本的な方針は下記です。

①理論上入れて当然と思われる変数/先行研究で利用されている変数を利用する。
②KPIに対して影響を及ぼすと考えられる変数を、できる限り多く利用する。
➂施策の割り当て有無で、分布が異なる変数を利用する。
④モデリング後、共変量のバランスが整っているかどうかで、補正の良さをみる。

順に見ていきましょう。

①理論上入れて当然と思われる変数/先行研究で利用されている変数を入れる。

例えば、性年代のデモグラ情報は、基本的には用いられることが多いと思います。

最初の例でいうと、医療分野でいうと寿命、マーケティング分野でいうとサービスの利用など、基本的には性年代の影響を受けると考えて違和感がないです。

このように、KPIと介入のどちらにも影響を及ぼす変数として当然と考えてしまって良さそうな変数は、積極的に利用しましょう。

また、先行研究で利用されている変数も、特に違和感がなければ、積極的に利用するのが良いです。

②KPIに対して影響を及ぼすと考えられる変数を、できる限り多く入れる。

介入有無(ロジスティック回帰モデルの目的変数)に対して影響がない変数でも、結果変数(KPI)に対して影響がある変数であれば、モデルに利用することによって因果効果の推定値の平均二乗誤差が小さくなるということが、シミュレーション研究によって示されています。(文献1)結果に対して影響を及ぼすと考えられる変数は、積極的に利用しましょう。

ここでの注意点として、分析の目的にもよりますが、中間変数となるような変数は入れてはいけません。(中間変数とは、「施策の介入 → 変数 → 結果変数」という関係が成り立っている変数を指してます。)
中間変数を傾向スコアの算出モデルに入れることで、中間変数を経由して生じる間接効果が因果効果から除去されてしまい、因果効果が過小評価されることが多いです。

また、共変量を多く利用する際、共変量同士に多重共線性が起こることがありますが、傾向スコアの推定モデルでは、係数の解釈には興味がないことが多いので、多重共線性は気にしなくてよいです。(文献1

➂施策の割り当て(モデルの目的変数)有無で分布が異なる変数を入れる。

こちらは、介入群と非介入群の性質を揃えるための処理として、イメージがつきやすいのではないでしょうか。

例えば、「各変数について介入有無群の分布をみて、分布が異なる(平均値の差があるなど)変数を利用する。」といった方法で変数を選定してください。(文献3)

ただし注意点として、結果変数に対しては影響がなく施策の介入に対してのみ影響を与える変数を利用すると、因果効果の推定値の二乗誤差が増えてしまう(バイアスは増えませんがバリアンスが増加する)ということが知られているので、介入のみに影響する変数は利用しないようにしてください。(文献1, 詳細は文献4)

④モデリング後、共変量のバランスが整っているかどうかで、補正の良さをみる。

以前までは、c統計量(AUC) の高さによって補正が成り立っているかどうかを判断するという考え方が多かったようです(例えば医療分野だと0.8以上など)。

現在は、補正後に、2群の共変量の分布(平均値など)が一致しているかどうか、という観点が重視されています。マッチングならマッチングで選んだデータの中で、IPWならIPWで重みづけたデータの中で、バランスを計算します。
Rではcobaltというパッケージを利用することで、調整後の2群の平均値の差をグラフ化することができるので、興味がある人は計算してみてください。

とはいえ、AUCが0.5など低すぎる場合は、共変量で条件づけた時に介入がランダムになっているか、というそもそもの前提が崩れてしまうので、最低限の確認はするようにしましょう。

共変量のバランスについては、(文献2)が詳しいです。

まとめ

長々と書いてしまいましたが、共変量の選び方は、下記のように整理できます。

・理論上入れて当然と思われる変数/先行研究で利用されている変数を利用する。

・KPIに対して影響を及ぼすと考えられる変数を、できる限り多く利用する。ただし、介入とKPIの中間になる変数は利用しない。(多重共線性は、基本的には気にしなくて良い。)

・施策の割り当て有無で、分布が異なる変数を利用する。(ただし、KPIに全く影響を及ぼさない変数は、できるだけ除外する。)

・モデリング後、共変量のバランスが整っているかどうかで、補正の良さをみる。AUCが低すぎないかは確認。

感想

上記のように整理すると、実務においても、シンプルなフローで補正のフローを構築できそうです。

整理しながら思っていたこととしては、傾向スコアの考え方を生み出したRubinはIPWの考え方を否定しているとか、Pearlの考え方もあるとか…、難しい部分が多いなと思いました。ビジネス利用目的だと、掘りすぎても沼にはまってしまうので、どこかの頭のよい方がこのあたりもきれいに整理してくれることを願っています。

あとは、LiNGAMなどの因果探索の手法も試したいので、そちらも調査したら書いていきます。

参考文献

  1. 調査観察データの統計科学―因果推論・選択バイアス・データ融合
  2. 効果検証入門
  3. 岩波データサイエンス Vol.3
  4. Imbens, G. W., & Angrist, J. D. (1994). Identification and estimation of local average treatment effects. Econometrica: journal of the Econometric Society, 467-475.