今日、労働経済学の授業でPropensity Score Matchingを習いました。日本語でなんて言う訳があるのかわからないのですが、google先生に聞いても出てこないので、訳がないのでしょう。先生はGreeneの訳本に書いてあるかもしれないとおっしゃっていました。Greeneって翻訳がでてるんだ…。
この手法がどういう風に使えるかというと、実行した政策の効果がどの程度あるのかについて分析できます。授業の例では
Meyer, Viscusi, and Durbin (1995) data on the length of time workers received workers' compensation after an injury
を使って説明されてました。
これは病欠記録のデータで「けがをした時の有給休暇の上限の増加は欠勤日数を増やすか?」という問題を分析します。
これをまずはDifference in Defferences (差の差推定法) を使って分析します。
(授業の例を使って説明してますが、理解しているようなしていないような…。)
これは怪我の治療のための有給休暇の上限が増加するという政策変更(イベント)が、賃金が高いグループ(Treatmentグループ)と賃金が低いグループ(賃金が低いグループ)にどのような影響を与えるのかについて分析します。
推定式は
ln(durat) = a + b1afchnge + b2highearn + b3afchnge*highearn + ε
ただし、ε〜iid(0,σ^2)
duratは病欠期間
afchngeは1の時、変化したというダミー変数です。
highearnは1の時、賃金が高いというダミー変数です。
afchnge*highearnは上記に項の交差項です。
仮定として
(1) 労働者は観察不可能な労働に対する選好θiを持つが、賃金が高いグループと低いグループでそれは同質、かつ時間によって変化しない。
(2) 労働者は観察不可能な出来事φtに直面するが、それが労働供給に与える影響は賃金が高いグループと低いグループのどちらに対しても同じである。
推定結果
怪我の治療のための有給休暇の増加は、賃金が高いグループに対して、およそ0.215日有給日数を押し上げる効果があるという結果になりました。先生がおっしゃっていたのは、一般的に言って賃金が高いグループは労働意欲が高いのに(病欠日数にはマイナスの影響を与えると考えられるバイアスがある)、それでもなお病欠日数を増やす効果があるという結論は、この政策変更(イベント)の効果はかなりあるという結論が導き出せるということです。
次に同じ分析をPropensity Score Matchingを使って分析してみます。
まずはTreatmentグループであるかどうかをlogit(probitでも良い)にて推定して、その予測値を計算します。
推定式は
P(highearn=1,0) = a + b1afchnge + b2afchnge*highearn + ε
ただし、ε〜iid(0,σ^2)
次に予測値を用いてTreatmentグループとControlグループで似た属性同士をマッチングさせると、Average Treatment Effects on the Treated: ATTが出てきます。その値は0.215で先ほどのDiD推定で出てきた値と同じになりました!
推定はStata11 ICで行いました。以下そのdoファイルです。
//データの読み込み
use "http://fmwww.bc.edu/ec-p/data/wooldridge2k/INJURY.DTA",clear
//表の表示
tab afchnge highearn, su(ldurat)
//DiD推定
reg ldurat afchnge highearn afhigh
//Propensity Scoreの計算
pscore highearn afchnge, pscore(mypscore) logit
//ATTをKernel matching methodで計算
attk ldurat highearn afchnge afhigh
追記:傾向スコアマッチングというみたいです。
この手法がどういう風に使えるかというと、実行した政策の効果がどの程度あるのかについて分析できます。授業の例では
Meyer, Viscusi, and Durbin (1995) data on the length of time workers received workers' compensation after an injury
を使って説明されてました。
これは病欠記録のデータで「けがをした時の有給休暇の上限の増加は欠勤日数を増やすか?」という問題を分析します。
これをまずはDifference in Defferences (差の差推定法) を使って分析します。
(授業の例を使って説明してますが、理解しているようなしていないような…。)
| Before | After | |
| Control | 賃金低・変化無 | 賃金低・変化有 |
| Treatment | 賃金高・変化無 | 賃金高・変化有 |
推定式は
ln(durat) = a + b1afchnge + b2highearn + b3afchnge*highearn + ε
ただし、ε〜iid(0,σ^2)
duratは病欠期間
afchngeは1の時、変化したというダミー変数です。
highearnは1の時、賃金が高いというダミー変数です。
afchnge*highearnは上記に項の交差項です。
仮定として
(1) 労働者は観察不可能な労働に対する選好θiを持つが、賃金が高いグループと低いグループでそれは同質、かつ時間によって変化しない。
(2) 労働者は観察不可能な出来事φtに直面するが、それが労働供給に与える影響は賃金が高いグループと低いグループのどちらに対しても同じである。
推定結果
| ldurat | |
| afchnge | 0.0236 |
| (0.60) | |
| highearn | 0.215*** |
| (4.96) | |
| afhigh | 0.188** |
| (3.00) | |
| _cons | 1.199** |
| (44.24) | |
| N | 7150 |
次に同じ分析をPropensity Score Matchingを使って分析してみます。
まずはTreatmentグループであるかどうかをlogit(probitでも良い)にて推定して、その予測値を計算します。
推定式は
P(highearn=1,0) = a + b1afchnge + b2afchnge*highearn + ε
ただし、ε〜iid(0,σ^2)
次に予測値を用いてTreatmentグループとControlグループで似た属性同士をマッチングさせると、Average Treatment Effects on the Treated: ATTが出てきます。その値は0.215で先ほどのDiD推定で出てきた値と同じになりました!
推定はStata11 ICで行いました。以下そのdoファイルです。
//データの読み込み
use "http://fmwww.bc.edu/ec-p/data/wooldridge2k/INJURY.DTA",clear
//表の表示
tab afchnge highearn, su(ldurat)
//DiD推定
reg ldurat afchnge highearn afhigh
//Propensity Scoreの計算
pscore highearn afchnge, pscore(mypscore) logit
//ATTをKernel matching methodで計算
attk ldurat highearn afchnge afhigh
追記:傾向スコアマッチングというみたいです。
ネットに戯れ言を流し始めてから、もう15年経ちました。今回初めてランキングに参加します。 擬音が多い関西人よろしく”ポチッとな”と押してください。

大学院でDIDをやることになり、STATAの使い方も分からん、propensity scoreも分からんの自分でしたが、こういった練習用ファイルやコマンドを記述して頂き、本当に助かりました!ありがとうございます。おかげさまで頑張れそうです。
ありがとうございます。