プロペンシティスコア(Propensity score; PS)(1)-PSの正しい使い方

今回は疑似実験(Quasi-experiment)の中でも近年ますます使われるようになってきているプロペンシティスコア(Propensity score; 以下PS)を用いた解析方法を2回に分けてご説明します。アメリカでも日本でも、プロペンシティスコアPSはしばしば間違った方法で行われており、そして誤解の多い方法論になります。今回はPSを用いた解析の正しい方法をお話します。PSとは1983年にポール・ローゼンバウム(Paul Rosenbaum)とドナルド・ルービン(Donald Rubin)の2人が発表した解析方法です。PSを理解するのに一番良い教材はこの1983年の論文か、もしくは経済学者のグイド・インベンス(Guido Imbens)と統計学者のルービンが書き2015年に出版された因果推論の教科書になります。PSにはマッチングと層別化がありますが、今回はマッチングを中心にお話したいと思います。ルービンの因果モデルのページを読んで頂ければ分かるように、基本的なコンセプトとしては、似かたよった2つの群を作り出し、その2群間での唯一の違いは治療(薬、行動変容プログラム、政策などの介入のことを全てまとめて「治療」と呼びます)を受けたか受けていないかである、という状況を作り出すことが目的です。この「その2群間での唯一の違いは治療を受けたかどうか」である2群のことを比較可能な2群と表現します。そうすればあとはこの2群間でアウトカムの差を取れば、その差を生みだしているのは治療である、と言うことができます。

交絡因子およびアウトカムの予測因子(ここではざっくりと共変数=Covariateと表現します)が複数あるとします。これら共変数の分布が治療群(治療を受けた群)とコントロール群(治療を受けていない群)で異なっていた場合、これら2つの群のアウトカムを単純に比較することで得られた治療効果はバイアスを含んでいます(真の値とはシステマティックに異なった値を取ることをバイアスを含むと表現します)。よって正しい治療効果を推定するためには、比較可能な2群を作ることが必要となります。共変数が1つの場合には、その値が近い人同士をマッチングすることで問題が解決します。しかし共変数が複数になった場合、それらの組み合わせが近い人を探すことが困難になります。PSとは、複数の交絡因子・アウトカムの予測因子をまとめて1つのスコアにしたものです。そのスコアでマッチングをすると、そのスコアを計算するときに用いた複数の共変数においても、平均すると(on average)2群間でバランスが取れる(比較可能な2群になる)ということが数学的に証明されています。ちなみにこのようにあるスコアでバランスを取るとそのスコアの計算に用いられた変数においてもバランスがとれるようなスコアのことをバランシング・スコア(Balancing score)と呼びます。PSはそのバランシング・スコアの一つでしかありません。バランシング・スコアの中で最も粗い(多くの情報をまとめることができるイメージです)のがPSであり、もっとも細かいのが実際に一つ一つの変数でマッチングする方法になります。比較可能な2群を作ることができたら、あとはシンプルにアウトカムを2群間で比較することで、バイアスの無い形で治療効果を推定することができます。

PSとは複数の交絡因子・アウトカムの予測因子をまとめて1つのスコアにしたものであるとご説明しましたが、もう少し正確に言うと、PSとは各人が治療群に割り付けられる確率のことになります。PS = 0.3とは30%の確率で治療群に割り付けられるということを意味します。仮に、PS = 0.3の人を2人(AさんとBさん)連れて来たとして、片方が治療群、もう片方がコントロール群に割り付けらたとします。そうするとAさんとBさんのどちらが治療群になって、どちらがコントロール群になるかはもはやランダム化比較試験(RCT)と同じように、50:50の確率でランダムに決まります。この2人のアウトカムを比較すると、それは治療効果であるということになります。幅広い値のPSにおいて、同じようにPSが近い人達を比較して行くと、集団における治療効果が推定できます。これがなぜPSでマッチングを行うとRCTのようにバイアスの無い形で治療効果を推定できるか、と言うことに対する理論になります。

1983年のローゼンバウム・ルービンの論文や、インベンス・ルービンの因果推論の教科書を読んで頂くと分かるように、彼らはPSをRCTと同じ方法でやることを薦めています。まずは連結可能な形でアウトカムをデータから外します。そしてアウトカムの情報が無い状態で、PSを計算して、マッチングを行い、交絡因子・アウトカムの予測因子においてバランスのとれた2群を作り出します。そうすることでPSを計算するモデル(PSモデル)を決めている段階でアウトカムを見て、一番都合の良いものを恣意的に選ぶと言うことを防ごうとしています。この段階は、RCTでいうところのランダム化(無作為割り付け)を行っておりまだ参加者のアウトカムの情報を集めていない段階に相当します。PSモデルでマッチングしたら、そのモデルに含まれている変数が本当に2群間で同じような分布をしているかを確認します。もし分布が同じでなければ、二次関数、三次関数、対数変換(log-transform)、相互作用(interaction term)などを含めてPSモデルを作り直します。PSモデルに含まれている変数が2群間でバランスが取れるようになるまでこの仮定を繰り返します。そして、最終的に2群間でバランスが取れたら、最後にアウトカムをデータセットに戻して、2群間で1回だけアウトカムを比較します。RCTにおいてアウトカムの情報を集める段階に相当します。これがPSマッチングが疑似RCT(Pseudo RCT)と呼ばれる所以です。

二つ重要な注意点があります。一つ目は、PSモデルに含めることができるのは治療の割り付け(治療群になるかコントロール群に入るかが決定する)タイミングよりも前に測定された変数(”Pre-treatment variable”と呼ばれます)に限られるということです。治療の割り付けよりも後に測定された変数は、因果関係に関係あろうが無かろうがPSモデルには一切含めることができません。PSモデルで2群間のバランスを取っている段階がRCTでの無作為割り付けのプロセスを模倣していると考えれば、その時点で有している情報でのみ2群の比較をすることができるというのは比較的シンプルなロジックだと思います。二つ目は、全ての変数において2群間でバランスが得られるかどうか分からないので(そしてそのバランスの程度もバラバラなので)、変数の中で優先順位を付ける必要があります。どうしてもバランスを得る必要がある重要な変数(重大な交絡因子およびアウトカムの予測因子)から、それほど重要ではない変数まで順番を付けます。そして、重要な変数において2群間でバランスが得られるようなPSモデルを探索します。場合によっては最重要な1~2個の因子でまず直接マッチングや層別化を行い、そのマッチング・層別化の範囲内でPSマッチングをすることも検討して下さい。

実際のデータ(Lalonde (1986)、Dehejia and Wahba (1999))を用いてご説明します。1976年に行われた職業訓練プログラムによって、1978年の収入が上がったかどうかの解析を行いたいとします。交絡因子・アウトカムの予測因子は以下のようになります。

– 2値変数(0か1の値しかとらない変数):結婚しているかどうか(Married)、高校卒業しているかどうか(NoDegree)、人種(Black、Hispanic)、1974年・1975年で収入がゼロかどうか(U74、U75)

– 連続変数:教育を受けた年数(YearsEducation)、年齢(Age)、1974年、1975年の収入(RE74、RE75)

注意して頂きたいのは、これはRCTにおける割り付けの段階ですので、職業訓練プログラムが導入された1976年以前の変数(pre-treatment variable)しかPSモデルには入れることができないことです。1977年以降に集められた情報を使った場合は(RCTではそれはできないので)ルール違反をしていることになります。もちろん職業訓練プログラムを受けに行く人は、受けに行かない人たちに比べると色々な面において異なります。例えば1974年の収入(RE74)を比較してみると、下記のように職業訓練プログラムを受けに行った人は、受けに行っていない人と比べて収入がずっと低いことが分かります。プログラムを受けていない人達は、そもそも収入がそれなりにあるので受ける必要が無いことが分かります。この状態では2群の1978年の収入を比べても、職業訓練プログラムの効果を見ていることにはなりません。2群間が比較可能ではないからです。

図1

そこでPSマッチングを使うことで職業訓練プログラムの収入に与える影響を調べてみましょう。まずは以下のような数式を用いて各人のPSを計算します。シンプルにするために、交絡因子・アウトカムの予測因子は年齢、黒人かどうか、1975年の収入の3つしかないと仮定します。

logit(E[Treatmenti=1|X])= β0 + β1Agei + β2Blacki + β3RE75i

まずはこれで各人(その人のIDが上記のiに入ります)のPSを計算して、そのスコアを用いてマッチングをします。この段階ではアウトカム(1978年の収入)のデータは見ることができません。マッチングが終わったらこの3つの分布を2群間で比較します。バランスが取れてないとします。そうしたら、年齢の2乗まで含んだ次のモデルを使ってみます。

logit(E[Treatmenti=1|X])= β0 + β1Agei + β2Agei23Blacki + β4RE75i

これでもダメなら3乗(Agei3)まで含めてみたり、対数変換(log(Agei))したり、相互作用(Blacki×RE75i)を含めてみます。そして、最終的にPSモデルに含まれた変数すべてにおいて2群間でバランスがとれるまでこれを繰り返します。これがPSモデル作成のプロセスは反復作業(iterative)であると言われる理由です。そして最終的にPSモデルが決まり、マッチングをすると、下記のような形で2群間は元々の状態よりもずっと比較可能性が高い状況になります。

図2

図3

実際には、このPSモデルを作成するプロセスと、PSを元にマッチングするプロセスとの間に、コモンサポート(Common support)の外にいる人達を除くというプロセスが入ります。コモンサポートとは、治療群、コントロール群ともに存在している「PSの範囲」のことを指します。PSは0から1の間の値をとりますが、仮に0.3~0.8は両群ともデータが存在していて、PS<0.3はコントロール群のみ、PS>0.8は治療群のみしか観察されなかったとします。その場合、PS<0.3およびPS>0.8の人達は解析すべきデータから除外します。PSのコモンサポートの中ではマッチングの相手がいますし、その相手が反事実(Counterfactual)を想定することができます。一方で、コモンサポートの外の人達は何をどうやっても治療群(もしくはコントロール群)に入る人かもしれませんし、その人たちがもし治療を受けなかったらどうなっていたかは少なくともそのデータを用いた解析では推定することができません。RCTだった場合、例えば、年齢が高すぎてRCTの参加基準を満たさず、どうやっても治療群に入れない人達をイメージして頂くと分かりやすいかもしれません。下は概念図になります。X軸がPS、Y軸が各PSにおけるサンプルの数を表しています。そして右側の実線が治療群のPSの分布、左側の破線がコントロール群のPSの分布になります。この図の中で、斜線でカバーされていない中心部がコモンサポートになります。両サイドの斜線部分はコモンサポート外に相当するので、この斜線部分の人達を解析対象から除外します。

common support

ここまできたら、あとは1978年の収入を2群間で比較するだけです。2群間でことなるのは職業訓練を受けたかどうかだけですので、ここで得られたアウトカムの差が、職業訓練プログラムの治療効果になります。

ここではPSマッチングを前提にお話しましたが、PSを用いた層別化(彼らはSubclassificationと呼んでいます)がローゼンバウムとルービンが薦めているもう一つの解析方法です。これはPSを元にいくつかのグループに分けて、同じグループ内で治療群とコントロール群の比較を行います。一般的には、5つの層を用いることで、90%のバイアスを取り除くことができると言われています(Rosenbaum & Rubin, 1983)。ここで述べられているバイアスとはあくまでPSモデルに含まれている変数によるバイアスのことですので、測定されていない交絡因子によるバイアスにはPSは無力です。

実はPSマッチングに関する誤解がたくさんあります。次回はそれらに関してご説明したいと思います。

 

広告

3件のコメント 追加

  1. 柵瀬 信太郎 外科 へrにアセンター より:

    聖路加国際病院外科 柵瀬信太郎です。ご無沙汰しています。
    Propensity Score Matching勉強しようと見ていたら、いい解説が見つかりました。
    津川友介先生とあったので、あれ?と思いながらスクロールしていたら、懐かしい写真がありました。
    すごいですね。もっともわかりやすく解説がなされ手はいますが、実際の理解は難しいですね。
    努力します。ありがとうございまた。

    いいね

    1. 津川 友介 より:

      柵瀬先生、大変ご無沙汰しております。アメリカで学んでいることを日本語でできるだけ分かりやすく説明することを心がけていますが、実際にデータを解析するとなると詳細な点において障壁があることは理解しております。よりわかりやすいものにできるように精進して参ります。

      いいね

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中