Stataで逆ミルズ比を使ったTreatment Effect Model (処置効果モデル)
セレクションバイアスへの対応方法の中で、逆ミルズ比を使ったTreatment Effect Model (処置効果モデル) による対応*1についてコードがあまり充実していないので、情報収集のためにもまとめておく。
右辺の関心変数Cが[0,1]をとるダミー変数であるとし、そのYへの影響を検証したいとする。Cがランダムに振り分けられる場合には、単純なOLSで推定すれば問題ない。
しかし、Cが何らかの意思決定にもとづいて選択される場合、いわゆるセレクションバイアスの問題が生じる。
形式的に、従属変数をY、関心変数C以外の独立変数をXとして、次のようなモデルを推定したいとする:
Cがランダムに割り振られるような状況では、この係数を推定すればよい。しかし、Cが次のようなルールで選択されるような場合は係数にバイアスがかかってしまう。
WをCを選択する際に考慮する純便益であるとして、これが正である場合にCを選択するとする。つまり:
であるとする。このときに、もとのモデルで係数を推定すると係数にバイアスがかかることが知られている*2。
これを解決するのがHeckmanのTreatment Effect Modelである。Treatment Effect Modelと言った場合、選択Cについての操作変数を用いたものがある。これはtreatreg*3というコードで実行できる。
ただタイトルにもあるように、ここで使いたいのは逆ミルズ比を用いたTreatment Effect Modelでありこれとは異なる。
Heckmanのセレクションバイアスを逆ミルズ比で調整するモデルについては、heckmanというコードがある。しかし、これは観察されるか否かというセレクションバイアス*4を扱えるものであり、
ここで使いたいTreatment Effect Modelではない。いまのところ把握しているのは、一段階目のProbitモデルを推定した後に自分で逆ミルズ比を計算するというもので:
*Step1. Estimating probit model on the choice of C probit C Z , cluster(id) *Step2. Get each item to compute inverse Mill's ratio predict EVENTPROB predict PROBITXB, xb gen PDFPROBIT = normalden(PROBITXB) gen CDFPROBIT = normprob(PROBITXB) *Step3. Get inverse Mill's ratio gen imr = PDFPROBIT/CDFPROBIT replace imr = 1- imr if treatment == 0 drop EVENTPROB-CDFPROBIT
Step1では、選択の有無を示すダミーCをその決定要因であるZに回帰する。つづいてStep2では、Step1の推定結果から逆ミルズ比を計算するための分子および分母を計算している。
Step3でこれらの数値を用いて逆ミルズ比(imr)を計算している。これを二段階目にコントロール変数として加えることでCの選択に関する問題を調整することができる。
今度、も少し理論的背景を分厚くして加筆修正します。
http://economics.mit.edu/files/32
*1:たとえば、Acharya, V., & Xu, Z. (2017). Financial dependence and innovation: The case of public versus private firms. Journal of Financial Economics, 124(2), 223-243.で用いられている
*2:Prabhala, N., & Li, K. (2007). Self-selection models in corporate finance. Handbook of corporate finance: Empirical corporate finance, 1, 37.
*3:https://www.stata-journal.com/sjpdf.html?articlenum=st0240
*4:わかりにくいが、C=1である場合にのみデータが観察される場合を指す。ダイエット食品の実験対象を希望制で集めた場合、その希望者のデータしか観察することができない。