Follow @data_no_memo

メモ

個人的なメモです。他者にわかりやすく書くよりも未来の自分にわかりやすく書いています。なお、記事内容の正確さは保証できません。勉強中の身ですので、間違い等ご指摘頂けたら幸いです。

傾向スコア(Propensity Score)法

傾向スコア法による分析を使いたいので勉強。分かった事についてメモ。なお、一口に傾向スコア法といっても様々な使い方があるので、適宜更新していく。

 

まず、物事の因果関係を考える時、例えば、留学経験はその人の収入を増加させるのかという問いを考える時(この時、原因は留学経験、結果は収入である。)、以下のように考える。

「仮想現実」が存在するとする。要するに、実際には存在しないパラレルワールド。ただの思考実験を行う。

 

例えば…

現実世界での田中太郎さんは留学して収入は700万円。仮想現実での田中太郎さんは留学を行わずに収入は500万円。この時、その差分の200万円が留学による収入の増加分だと考える事ができる。なお、この仮想現実での田中太郎さんと、現実世界での田中太郎さんは、留学の有無以外は全く同じだとしている。よって、現実世界での田中太郎さんと仮想現実での田中太郎さんの違いは、単に留学の有無だけなので、その後の収入を含むライフイベントに違いが存在するのであれば、それは留学が原因で起きたと考える事ができる。

要するに、これは自然科学の実験で行われている事を社会に落とし込んだだけである。自然科学の実験では、例えばある原子Aにある処置Xを与えると同時に、ある原子Aにはその処置Xを与えない。その後、処置Xを与えた原子Aに変化が見られ、処置Xを与えなかった原子Aに変化が見られなかったのであれば、それは処置Xが原因で発生した変化だと考える事ができる。

 

このような、自然科学の実験ではごく当たり前のように使用されている考え方を社会科学でも考えようというのである。ここで、原子Aは田中太郎さん、処置Xは留学に対応している。

数式で表現すると以下の通り。

\Delta_i = Y_{i}^{1} - Y_{i}^{0}

なお、Y_{i}^{1}はある個人i(ここでの例では田中太郎さん)が何らかの処置(ここでの例では留学)を行った時の結果(ここでの例では収入)であり、Y_{i}^{0}はある個人iが何らかの処置を行わなかった時の結果である。

先の例では、\Delta_i = 700 - 500となる。

 

この\Delta_iを求めたいのだが、残念ながら仮想現実はあくまで思考実験であり、仮想現実におけるデータは得られない。得られるのは、実際に留学にいった田中太郎さんの収入のデータだけ(あるいは、留学に行かなかった田中太郎さんの収入のデータだけ)であり、仮に田中太郎さんが留学に行かなかった場合(あるいは、仮に田中太郎さんが留学に行った場合)の収入データは存在しない。数式で一般化して表すと以下の通り。

Y_{i}=Y_{i}^{1} if D_{i} =1

Y_{i}=Y_{i}^{0} if D_{i} =0

なお、D_iは1か0をとる値で、もし個人iが処置を受けた場合(留学に行った場合)に1となり、処置を受けなかった場合(留学に行かなかった場合)に0となる単なる指示変数である。

この数式をもう少し綺麗に書くと以下の通りとなる。

Y_{i} = D_{i}Y_{i}^{1}+(1 - D_{i})Y_{i}^{0}

 

ここで、個人レベルではなく集団レベルで考えれば何とかなるかもという発想がでてくる(後に指摘するように、集団レベルで考えても何とかはならない。)。すなわち、\Delta_i = Y_{i}^{1} - Y_{i}^{0}を考えるのではなく、以下のように考える。

\frac{1}{n}\sum_{i=1}^{n}(Y_{i}^{1}-Y_{i}^{0})=E(Y_{i}^{1})-E(Y_{i}^{0})=E(\Delta_i)

なお、上記の式はサンプル数n全体の処置の因果効果の平均値であり、Average Treatment Effect(ATE)と呼ばれる。

また、処置を受けた者のみにおける処置の因果効果の平均値を求める場合もあり、それはAverage Treatment effect for the Treated(ATT)と呼ばれる。なお、数式で表現すると以下の通り。

E(Y_{i}^{1}|D=1)-E(Y_{i}^{0}|D=1)=E(\Delta_i|D=1)

さらに、処置を受けなかった者のみにおける処置の因果効果の平均値を求める場合もあり、それはAverage Treatment effect for the Controls(ATC)と呼ばれる。

E(Y_{i}^{1}|D=0)-E(Y_{i}^{0}|D=0)=E(\Delta_i|D=0)

なお、ATEはATTとATCを、処置された者の割合で重みづけたものに等しくなる。仮に、処置された者の割合を\piとすると、それは以下のように表現できる。

 E(\Delta_i) =\{  \pi E(Y_{i}^{1}|D=1) + (1 - \pi)E(Y_i ^1 | D = 0) \}-\{ \pi E(Y_i ^0 | D=1) + (1 - \pi) E(Y_i ^0 | D = 0) \}

 

ただし、このいずれも求める事は不可能である。なぜなら、仮に集団レベルで考えたとしても、全く同一の集団はこの世の中には存在しないからである。すなわち、ATEを求めようとすると、ある処置を受けたある集団Aと、その処置を受けなかった集団Aを考える必要があるが、ある処置を受けた集団Aと、その処置を受けなかった集団Aは、現実世界に共存していない。ここでも結局、仮想現実を考えていることとなる。

ここで表を使用して整理すると、以下の通りとなる。

f:id:abcxyzonetwothree:20190110104155p:plain

 

ここで、実際に観察されるのは赤色の部分であって、灰色の部分は観察する事ができない。例えば、留学しなかったのに(D=0)留学した時の収入(Y_i ^1)は測定不可能である。また、留学したのに(D=1)留学しなかった時の収入(Y_i ^0)も測定不可能である。

ここで、頓挫する。ATE、ATT、ATCを求めるには、どうしても観察されない部分の測定値が必要であるのに、仮想現実は存在しないので、その測定値は得られない。

 

そこで、ランダム割付という必殺技を登場させる。

例えば、全くランダムに人々を集団Aと集団Bに割り付ける。そして、集団Aには留学に強制的に行かせ、集団Bには強制的に留学に行かせないようにする。そして、その後の集団Aと集団Bの収入の差を考える。

これは何をしているかというと、集団Aと集団Bへの割付は全くランダムであるので、サンプル数が十分に大きければ、平均的に集団Aと集団Bとは同質な集団であるとみなせるという事である。そうすれば、「留学したのに、留学しなかった時の収入(E(Y^0 _i | D =1))」の平均値と「留学しなかった時に、留学しなかった時の収入(E(Y^0 _i | D =0))」の平均値は等しいとみなせる。また、「留学しなかったのに、留学した時の収入(E(Y^1 _i | D =0))」の平均値は「留学した時に、留学した時の収入(E(Y^1 _i | D =1))」の平均値と等しいとみなせる。

よって、実際には観測できない仮想現実における測定データを、実際に観測できるデータで置き換える事が可能となる。これにより、上記のATE、ATT、ATCを求める事ができるようになる。

すなわち、ランダム割付という必殺技によって、以下の仮定を満たしているという事になる。

仮定1:E(Y^1 _i | D =1) =E(Y^1 _i | D =0)]

仮定2:E(Y^0 _i | D =1) =E(Y^0 _i | D =0)]

 このように、ランダム割付という必殺技は非常に便利である。何らかの因果関係を調べたい時、ランダムに人々を2つのグループにわけ、片方には処置を行い、もう片方には処置をしない。そして、その2つのグループの差の平均(仮にグループ人数が1:1である場合)を見てやれば、ATEが求まるというわけである。

 

しかし、ここで残念なお知らせ。分野によってはランダム割付がほとんど不可能である事がある。例えば、今回の例の留学による収入の効果を見たい場合、ランダムに人々を留学に行けとか行くなとか言うのは、資金的にも倫理的にも厳しい可能性が高い(スタープロジェクトなどを実施するアメリカはバンバンやってそうだが…)。そうなると、仮定1と仮定2をパスする事ができないがために、ATE、ATT、ATCを求められない。

 

そこで、次善の策を考える。

ある集団Aとある集団Bは、ランダム割付されていないために、同質的であると言えない、すなわち異質であると言えるのだが、この異質性はある特徴群Sによって規定されていると考える。従って、特徴群Sの影響を取り除いてやれば、ある集団Aとある集団Bは、ランダム割付されていなくとも、同質であるとみなせるということである。

すなわち、以下の仮定が満たされているとする。

仮定1ーS:E(Y^1 _i | D = 1, S) = E(Y^1 _i | D=0, S)

仮定2ーS:E(Y^0 _i | D = 1, S) = E(Y^0 _i| D=0, S)

 

よって、特徴群Sを考慮した上で、ATE、ATT、ATCを推定しようというわけである。すなわち、同一の特徴群を有する集団を作って、その中で因果効果を測定しようというわけである。

留学の例で考える。もし、ランダム割付が可能ならば、集団Aに強制的に留学経験させ、集団Bに強制的に留学経験をさせない事が可能である。ここで、集団Aと集団Bは留学経験以外には平均的に同質であるので、留学経験による収入のATE、ATT、ATCを考える事ができる。

ここで、ランダム割付が不可能な場合、集団Aと集団Bは異質であるが、どのような特徴によって集団Aと集団Bは異質なのだろうか。例えば、留学する人というのはもともと「裕福な家庭出身」であり、集団Aと集団Bは裕福な家庭出身かどうかによって異質性が生み出されていると考えよう。すなわち、裕福な家庭出身ほど経済的なサポートがあるため留学しやすく、あまり裕福な家庭ではなない者ほど留学しない傾向にあるとした時、処置を受けた集団A(留学した集団)と処置を受けなかった集団B(留学しなかった集団)とには「裕福な家庭出身」という特徴によって、異質性が生み出されていると考える事ができる。

この時、「裕福な家庭出身」という特徴をコントロールする必要がある。ここで、傾向スコアの文脈では層別化する事でコントロールするという発想を考えたら、後の議論に接続しやすいので層別化を考える(なお、ここで従属変数を収入に、独立変数を留学経験ダミーと家庭の裕福さに設定して回帰すればいいやん!というツッコミが来そうだが、後々議論するように、傾向スコアで考えることは回帰分析で考える時よりもいくつか利点があるらしい)。すなわち、単に集団Aと集団Bを比較するのではなく、「裕福な家庭出身」ではあるが集団Aに属している集団A'と、「裕福な家庭出身」ではあるが集団Bに属している集団B'を比べる事を考える。

仮に、集団Aと集団Bの異質性が「裕福な家庭出身」のみによって生み出されているのであれば、「裕福な家庭出身」によって層別化された集団A'と集団B'は同質的であるとみなせる。よって、仮定1ーSと仮定2ーSが満たされる。なので、ATE、ATT、ATCを求める事ができる。

このように、集団Aと集団Bを生み出すその他の要因を考慮することで、ある意味人工的にデータ上でランダム割付のような状態を生み出そうという発想である。

ただし、集団Aと集団Bの異質性を生み出す要因が「裕福な家庭出身」だけではないとしよう。すなわち、その要因が複数あるとしよう。そうした場合、全ての要因で層別化をどんどん行なっていけば、最終的に残された集団A'と集団B'のサンプル数は少なくなってしまう。あるいは、0になってしまう。すなわち、層がたくさんあればあるほど、同質的な集団を生み出す事が難しくなってしまう。これは「次元の呪い」として知られる問題である。

 

ここで、傾向スコアの登場である。ざっくり言うと、傾向スコアとは、集団Aと集団Bの異質性を生み出す諸要因によって求められた集団A(処置群)に属する確率(1〜0をとる)のことである。この確率の推定にはロジットモデルやプロビットモデル が使用される。

abcxyzonetwothree.hatenablog.com

留学の例で言えば、留学の有無を従属変数に、集団Aと集団Bの異質性の要因(特徴群S)となっている諸変数を独立変数として、ロジットモデルもしくはプロビットモデルを回すことで、その確率(=傾向スコア)を求める。

こうすれば、層別化する時に考える諸変数が、傾向スコアという一変数に縮約されて便利である。この傾向スコアによって層別化した集団A'と集団B'を作ってやればよい。

 

ただし、ここである仮定が置かれる。それが「強く無視できる割り当て(Strongly Ignorable Treatment Assignment)」という仮定である。これは、「集団A、集団Bに割り当てられるのは、観測される特徴群Sによってのみに規定されるのであり、最終的な結果変数(ここでは収入)に依存しない」というものである。簡単に言えば、集団Aか集団Bに割り当てられるのは、この観測される特徴群Sのみによって決まり、それ以外はランダムであるということ。

 つまり、以下の式が成立する。

Pr (Y_{i}^{1}, Y_i ^0 | D, S) = Pr (Y_{i}^{1}, Y_i ^0 | S)

つまり、特徴群Sを考慮してしまえば、Y_{i}^{1}, Y_i ^0の同時分布は、どちらの群に割り当てられるかに依存しないということである。

ここで、傾向スコアをRとすると、上の式から以下の通りになる。

 E(Y_i ^1 | R ) =E(Y_i ^1 | R, D=1), E(Y_i ^0 | R ) =E(Y_i ^0 | R, D=0)

ここで、単なる期待値計算で以下の通りになる。

 E( Y_{i}^{1} )- E( Y_{i}^{0} ) = E( Y_{i}^{1} - Y_{i}^{0} ) = E( E( Y_{i}^{1} - Y_{i}^{0} | R ) ) 

これらを考慮すると、以下の通りになる。

 E( Y_{i}^{1} ) - E(Y_{i}^{0} ) = E(E(Y_i ^1 | R, D=1)-E(Y_i ^0 | R, D=0)) 

つまり、傾向スコアRによって層別化された、すなわち傾向スコアRが同一である場合、それらの集団の差の期待値は E( Y_{i}^{1} ) - E(Y_{i}^{0} ) となる。ここで、改めて上記の式の右辺をみると、仮想現実でのデータを持ってこないでも E( Y_{i}^{1} ) - E(Y_{i}^{0} ) を(ATEを)推定できるということである。

 

とりあえず今回はここまで…。また適宜更新する。