模型系列-PSM(stata實操)

PSM第一篇鏈接:模型系列-PSM原理介紹

第一篇主要介紹了爲什麼需要匹配?匹配的思路是什麼?什麼是傾向值?什麼是傾向值匹配?這篇中將會介紹和PSM有關的stata操作。

以下原理複習取自 許老師的計量經濟學講義,推薦公號 宏觀經濟學會

PSM原理複習

首先來溫習下“傾向值匹配”在說些什麼?

使用匹配估計量的條件:假設個體根據可觀測變量來選擇是否可參與項目

以一個就業培訓項目爲例,在對項目進行效應評估時,我們除了能觀測到人們是否參與了該項目Di和項目實施前後的收入Yi,還可以觀測到參與者一些個體特徵,比如年齡、受教育程度、膚色、性別等等協變量。

如果個體是否參與項目完全是由某些協變量X決定的,那麼我們就可以使用匹配估計方法來估計處理效應。

匹配估計的思想簡單易懂:實踐中,個體i參與了培訓(處理組),這人就不可能再穿越回去選擇不參加培訓。此時,我們就需要在沒有參加培訓的人中(控制組)找到某個或某些人j,如何找到這些人呢?

前面說,參與項目Di完全取決於可觀測變量Xi,那麼自然就是找那些與參與者i有相近X的未參與人j。我們選擇到的Xj與Xi越接近,j參與培訓的概率就越接近i。那麼,我們就可以把j的收入Yj近似當作i在沒有參與培訓情形下的收入,然後將i的實際收入Yi減去近似收入Yj,得到培訓的處理效應,即匹配估計量。

一般來說,匹配估計量會存在偏出,因爲Xi不可能和Xj完全相同。那麼在非精確匹配的情形下:

  • 一對一匹配,偏差較大,方差較小
  • 一對多匹配,偏差較小,方差加大

經驗法則:最好進行一堆四匹配,這樣能使均方誤差MSE最小。

PSM的思想即,將多個X轉換成一個指標,即通過某種函數f(X),把多維變量變成一維變量。這個一維變量就是傾向得分。然後,我們就可以根據這個傾向得分進行上述匹配。

PSM計算處理效應的步驟

  1. 選擇協變量X。儘量將影響D和Y的相關變量都包括在協變量中。如果協變量選擇不當或太少,就會引起效應估計偏誤;
  2. 計算傾向得分,一般用logit迴歸;
  3. 進行傾向得分匹配。如果傾向得分估計較爲精確,那麼,X在匹配後的處理組和控制組之間均勻分佈,這就是數據平衡。那麼我們檢驗得分是否準確就需要計算X中每個分量的“標準化偏差”。經驗法則:一般來說,標準化偏差不能超過10%,如果超過10%,就需要返回第2步重新計算,甚至第1步重新選擇匹配協變量,或者改變匹配方法。
  4. 根據匹配後的樣本計算處理效應

在第三部中,得分匹配效果不好,可能要改變匹配方法

  • k鄰近匹配
  • 卡尺匹配或半徑匹配
  • 卡尺內最近鄰匹配
  • 核匹配
  • 局部線性迴歸匹配
  • 樣條匹配

在實踐中,並沒有明確的規則來限定使用哪種匹配方法,但有一些經驗法則可以來參考:

  • 如果控制個體不多,應選擇又放回匹配
  • 如果控制組有較多個體,應選擇核匹配

最常用的方法:嘗試不同的匹配方法,然後比較它們的結果,結果相似說明很穩健。結果差異較大,就要深挖其中的原因。

但PSM也有侷限性:

  • 大樣本
  • 要求處理組和控制組有較大的共同取值範圍
  • 只控制了可觀測的變量,如果存在不可觀測的協變量,就會引起“隱性偏差”

PSM實操stata命令

數據準備

*使用美國國家調查數據
webuse nlswork

*設置面板
xtset idcode year

*面板數據描述
xtdes

*生成平方項
gen age2 = age^2
gen ttl_exp2 = ttl_exp^2
gen tenure2 = tenure^2

*定義全局變量
global xlist "grade age age2 ttl_exp ttl_exp2 tenure tenure2 not_smsa south race"

*描述性統計
sum ln_wage $xlist

*定義種子
set seed 0001

*生成隨機數
gen tmp = runiform()

*將數據庫隨機整理
sort tmp

傾向值匹配

*設置idcode大於2000的地方執行政策
gen treated = (idcode > 2000) &! missing(idcode)

首次使用需要安裝外部命令*
ssc install psmatch2,replace

*使用二值選擇模型 logit 迴歸估計傾向值,並基於近鄰匹配(默認 K=1)實現一對一匹配;
*其它匹配方法,例如半徑匹配、核匹配、樣條匹配等,選項格式見psmatch2 命令的幫助文檔
psmatch2 treated $xlist,out(ln_wage) logit ate neighbor(1) common caliper(.05) ties

*檢驗協變量在處理組與控制組之間是否平衡
pstest $xlist, both graph
gen common = _support



*去掉不滿足共同區域假定的觀測值
drop if common == 0

*繪圖顯示傾向值的共同取值範圍
psgraph

參考資料:
1.PSM與政策評估(附Stata實現)阿虎定量筆記
2.應用計量經濟學講稿 許文立

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章