日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

PSM的stata实现

發(fā)布時間:2023/12/19 综合教程 38 生活家
生活随笔 收集整理的這篇文章主要介紹了 PSM的stata实现 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1. PSM 簡介
在經(jīng)濟(jì)學(xué)中,我們通常希望評估某項公共政策實施后的效應(yīng),為此,我們構(gòu)建 "處理組" 和 "控制組" 以評估「處理效應(yīng) (treatment effect)」。然而,我們的數(shù)據(jù)通常來自非隨機(jī)的觀察研究中,處理組和控制組的初始條件不完全相同,故存在「選擇偏差 ( selection bias)」問題。「傾向得分匹配 (PSM)」法使用傾向得分函數(shù)將多維向量的信息壓縮到一維,然后根據(jù)傾向得分進(jìn)行匹配。這樣可以在既定的可觀測特征變量下,使得處理組個體和控制組個體盡可能相似,因而可以緩解處理效應(yīng)的選擇偏差問題。

匹配的思想如下:

假如某個體在處理組,為了找到對照,找至少一個其他各方面與該個體盡量相似但出于控制組的個體,這樣兩者就有可比性。

傾向得分匹配是指,找一個其他各方面與該個體盡量相似意味著要考慮兩個個體的很多方面,讓盡可能多的方面盡量相似,而高維匹配并不容易,因為維度越高找一個各方面相似的兩個個體越難。為了解決這個問題,Rosenbaum and Rubin (1983)提出了傾向得分的概念。個體的傾向得分是指在個體情況一定的前提下,其進(jìn)入處理組的概率。傾向得分用logit回歸,選擇盡可能多的協(xié)變量,也就是剛才說的“其他各方面”,類似于回歸中的控制變量。計算傾向得分類似于一個降維的過程,把非常多的協(xié)變量維度降為一個維度,就是傾向得分,也就是傾向得分綜合包含了所有協(xié)變量的信息。兩個個體的傾向得分非常接近,并不意味著這兩個個體的其他屬性也接近,這不好判斷。不過根據(jù)PSM的原理,傾向得分接近就夠了,其他屬性也接近更好。

2. PSM 的分析過程

2.1 PSM 模型設(shè)定
對于個體 ,根據(jù)是否進(jìn)行某項處理可以分為兩種結(jié)果:表示個體 是否進(jìn)行某項處理,即 1 表示處理,0表示未處理;
對于離散變量:

gen dv_dum=2 //dv是指變量,dv_dum是指生成自變量的二元變量。
replace dv_dum=0 if dv=0 
replace dv_dum=1 if dv=1

如果你的自變量本身就是標(biāo)為0和1,這一步可以不用,但是如果標(biāo)為1和2或者其他符號,一定要轉(zhuǎn)換為0和1.

對于連續(xù)變量:
quantities dv, gen (dv_dum) nq(3)//根據(jù)分位數(shù)產(chǎn)生三個虛擬變量,也就是決定選擇一個三分位數(shù)(上三分位或者下三分位數(shù))為臨界值。

replace dv_dum=0 if dv_dum==1
replace dv_dum=0 if dv_dum==2
replace dv_dum=1 if dv_dum==3    //意思是把自變量從小到大排列,最大的1/3作為較高的組,標(biāo)為1,剩余較小的2/3作為較低的組,標(biāo)為0.

2.2 PSM 的假設(shè)條件
共同支撐假設(shè) (Common Support Assumption)
平行假設(shè) (Balancing Assumption)

2.3 PSM 一般步驟
選擇協(xié)變量 :盡可能涵蓋有影響的相關(guān)變量;

獲取 PS 值:可以使用 probit 或 logit 模型估計;

檢驗平行假設(shè)是否滿足:使得在匹配后的處理組均值和控制組均值較接近,保證數(shù)據(jù)平衡;

根據(jù) PS值將處理組個體和控制組個體進(jìn)行配對:匹配的方法有最近鄰匹配、半徑匹配、核匹配等;

根據(jù)匹配后樣本計算 ATT 。

3. PSM 的 Stata 實例

*-安裝命令
ssc install psmatch2, replace
set seed 10101
gen ranorder=runiform()
sort ranorder
psmatch2 Ln_geodistance_ew $control, out(ln_Cash_ratio1) neighbor(1) ate ties logit common


out(ln_wage)指明結(jié)局變量
logit指定使用logit模型進(jìn)行擬合,默認(rèn)的是probit模型(Logit模型具體分三類:第一類為二分類logistic模型,其對應(yīng)的命令代碼分別為logit;有序多分類logistic模型,其對應(yīng)的命令代碼分別為ologit;無序多分類logistic回歸模型,其對應(yīng)的命令代碼為mlogit。)
neighbor(1)指定按照1:1進(jìn)行匹配,如果要按照1:3進(jìn)行匹配,則設(shè)定為neighbor(3)
common強(qiáng)制排除試驗組中傾向值大于對照組最大傾向值或低于對照組最小傾向值
caliper(.05)試驗組與匹配對照所允許的最大距離為0.05
ties強(qiáng)制當(dāng)試驗組觀測有不止一個最優(yōu)匹配時同時記錄
ate 求平均處理效應(yīng)即求ATT估計值

估計結(jié)果包含 3 個部分:

第 1 部分是 logit 回歸的結(jié)果。

第 2 部分是處理組和控制組在匹配前后的差異及其顯著性,可以看出,匹配前處理組和控制組差異為 1.15901406,t 值為 2.15,匹配后處理組和控制組差異 -1.39805928,而 t 值為 -2.24。

第 3 部分則匯報觀測值共同取值范圍情況。在 3100 個觀測值中,除了處理組 17 個不在共同取值范圍中,其余 3083 個均在共同取值范圍中。

重點關(guān)注的是ATT的difference值及其T值(實際上這個T值也可不關(guān)注),匹配后仍然顯著。ATT是個體在干預(yù)狀態(tài)下的平均干預(yù)效應(yīng),也就是在控制其他匹配變量不變的情況下,自變量從0變?yōu)?,因變量的變化。這里ATT的difference意思是在其他匹配變量一致的情況下,自變量是1與自變量是0導(dǎo)致的因變量的差異是1.15個單位,這就是我們要求的系數(shù)。接下來根據(jù)T值確定p值,這里的T值就是個T檢驗,T值1.96對應(yīng)的p值是0.05,一半要求大于1.96,具體可查看T檢驗統(tǒng)計表。

不過Note提示了,這個表格的標(biāo)準(zhǔn)誤差有兩個問題,就是沒有考慮傾向得分為估計所得的事實,即假設(shè)傾向得分為真實值,然后求標(biāo)準(zhǔn)誤,并且該標(biāo)準(zhǔn)誤假設(shè)同方差,也可能不成立。為此,考慮使用自助法求標(biāo)準(zhǔn)誤,盡管自助標(biāo)準(zhǔn)誤差也未必正確。

打開數(shù)據(jù)編輯窗口,會發(fā)現(xiàn)軟件自動生成了幾個新變量:

其中_pscore是每個觀測值對應(yīng)的傾向值;

_id是自動生成的每一個觀測對象唯一的ID(事實上這列變量即是對_pscore排序);

_treated表示某個對象是否試驗組;

_support表示觀測對象是否在共同取值范圍內(nèi)

_weight是觀測對象用于匹配的頻率,如果_weight為空值,那就說明雖然你看上了對方(會有一個匹配對象),但是你并沒有被對方看上(對方匹配上的不是你);

_id是自動生成的每一個觀測對象唯一的ID;

_n1表示的是他被匹配到的對照對象的_id(如果是1:3匹配,還會生成_n2, _n3);

_pdif表示一組匹配了的觀察對象他們概率值的差。

*-考慮自助法估計標(biāo)準(zhǔn)誤
set seed 2019     //首先,我們需要產(chǎn)生隨機(jī)數(shù),對樣本進(jìn)行排序。為了保證結(jié)果可復(fù)現(xiàn)
bootstrap r(att) r(atu) r(ate),reps(500):psmatch2 distance_ew_high $control, out(ln_Cash_ratio1) neighbor(1) ate ties logit common 

p值求出來了,大于0.1,不顯著。這不能說明PSM得到了一個不顯著的結(jié)果。剛才用的匹配法是一對一匹配,一般來說要把幾種常見匹配都試試。陳強(qiáng)書中就把8種匹配法都試了,其中有幾種得到了顯著的結(jié)果。例如用核匹配得到的結(jié)果,T值大于1.96,不過這里也應(yīng)該用自助法求出控制異方差的p值。

*-使用pstest來考查匹配結(jié)果是否較好平衡了數(shù)據(jù)
quiet psmatch2 distance_ew_high $control, out(ln_Cash_ratio1) neighbor(1) ate ties logit common
pstest $control,both graph

*-畫條形圖來顯示傾向得分匹配的共同取值范圍
psgraph

從U到M,P值由顯著變?yōu)椴伙@著即該變量通過平衡性檢驗。要得到的結(jié)果是每個匹配變量在匹配后,各匹配變量的均值不存在顯著差異,其標(biāo)準(zhǔn)化誤差(即bias)小于10%,且所有 t 檢驗結(jié)果接受原假設(shè)「處理組與控制組無系統(tǒng)差異」,因此平行假設(shè)得到滿足。以age為例,5.6就是匹配后樣本組與控制組的age的標(biāo)準(zhǔn)化差異,小于10%。只有一個變量u74的標(biāo)準(zhǔn)化誤差大于10% ,但是也不大很多,并且只有一個變量,因此這個匹配的平衡性可以接受。平衡性檢驗了可以在匹配前進(jìn)行,也可以在匹配后進(jìn)行,只要檢驗結(jié)果可接受。

我們希望能夠通過PSM的匹配消除這些差異

PSM的過程在這里就可以結(jié)束了,不過有的文章還會用匹配后的數(shù)據(jù)做個回歸,你主分析用的什么回歸,這里就用什么回歸,只不過樣本變了。

*-PSM 匹配樣本的回歸
drop if _weight==.  //_weight是指樣本是否參與了匹配,參與了則標(biāo)為數(shù)字,沒參與則標(biāo)為點.,因此這一步是把沒參與匹配的樣本去掉。
或者可以使用if _weight!=. 在后方添加不影響原數(shù)據(jù)
xi:reg ln_Cash_ratio1 Ln_geodistance_ew $control i.year i.industry2 if flag==1 ,robust 
outreg2 using Table4B,excel drop(_I*) dec(3) tdec(3) bdec(3) alpha(0.01,0.05,0.1) symbol(***,**,*) stats(coef tstat) e(r2_a)
xi:reg ln_Cash_ratio1 Ln_geodistance_ew $control i.year i.industry2 if flag==1 [pw=_weight] //加入了weight加權(quán)的結(jié)果
outreg2 using Table4B,excel drop(_I*) dec(3) tdec(3) bdec(3) alpha(0.01,0.05,0.1) symbol(***,**,*) stats(coef tstat) e(r2_a)

問題一: 關(guān)于一對一匹配和一對多匹配

重復(fù)和不可重復(fù)匹配。不可重復(fù)匹配使得每個控制組只能匹配一次,即使該控制組是多個處理組的最佳匹配,這就使得匹配質(zhì)量降低和樣本變小。相反,重復(fù)匹配則可以有效避免這些問題,但是在估計處理效應(yīng)時,需進(jìn)行加權(quán)和調(diào)整標(biāo)準(zhǔn)誤,以反映匹配次數(shù)的影響。當(dāng)然,也要注意極端控制組被重復(fù)匹配多次對推斷結(jié)果的影響。
匹配半徑的設(shè)定。設(shè)定一個相對嚴(yán)格的「半徑」值一般可以有效避免「糟糕」的匹配和提高協(xié)變量的平衡性。
「1 對 1」 和「1 對多」匹配。會計研究中最常見的匹配方法是 1:1 匹配,但是在存在多個合理匹配樣本時,「一對多」匹配可以降低抽樣方差。與重復(fù)匹配一樣,在「一對多」匹配時,也需要考慮加權(quán)。

經(jīng)驗法則:一對四匹配,均方誤差MSE最小。

試一下1:1, 1:2, 1:3的匹配結(jié)果進(jìn)行比較做決定。

問題二:原變量是連續(xù)變量手動生成了虛擬變量,在進(jìn)行回歸的時候是進(jìn)行原回歸還是對虛擬變量回歸

你主分析用的什么回歸,這里就用什么回歸,只不過樣本變了。匹配后的多元回歸,首先要把不參與匹配的樣本刪除,代碼:

drop if _weight==.  //_weight是指樣本是否參與了匹配,參與了則標(biāo)為數(shù)字,沒參與則標(biāo)為點.,因此這一步是把沒參與匹配的樣本去掉。
xtset firm year
xtreg Y dv_dum controls, fe r

對匹配方法進(jìn)行對比

1. k近鄰匹配,令k=4,節(jié)省空間,采用quietly省去結(jié)果的匯報

psmatch2 t age educ black hisp married re74 re75 u74 u75,outcome(re78) n(4) ate ties logit common quietly

*上表顯示,一對四匹配和一對一匹配類似,下面進(jìn)行卡尺內(nèi)一對四匹配,首先計算傾向得分的標(biāo)準(zhǔn)差,乘以0.25

sum _pscore
dis 0.25*r(sd)

0.01979237
*由此可知0.25倍的標(biāo)準(zhǔn)差約等于0.02,將卡尺范圍定為0.01,對傾向得分相差1%的觀測值進(jìn)行一對四匹配

psmatch2 t age educ black hisp married re74 re75 u74 u75,outcome(re78) n(4) cal(0.01) ate ties logit common quietly

2. 半徑匹配:大多數(shù)一對四匹配發(fā)生在卡尺0.01范圍內(nèi),不存在太遠(yuǎn)的近鄰,進(jìn)行半徑(卡尺)匹配

psmatch2 t age educ black hisp married re74 re75 u74 u75,outcome(re78) radius cal(0.01) ate ties logit common quietly

3. 核匹配

psmatch2 t age educ black hisp married re74 re75 u74 u75,outcome(re78) kernel ate ties logit common quietly

4. 局部線性回歸匹配(使用默認(rèn)核函數(shù)與帶寬)

psmatch2 t age educ black hisp married re74 re75 u74 u75,outcome(re78) llr ate ties logit common quietly

*上表未匯報ATT標(biāo)準(zhǔn)誤,采用自助法得到標(biāo)準(zhǔn)誤

set seed 2019
bootstrap r(att) r(atu) r(ate),reps(500):psmatch2 t age educ black hisp married re74 re75 u74 u75,outcome(re78) llr ate ties logit common quietly

*根據(jù)上表自助標(biāo)準(zhǔn)誤,對平均處理效應(yīng)的三種度量均至少在5%水平上顯著
5. 條匹配(同樣使用自助法),先安裝一個非官方命令spline

findit snp7_1
set seed 2019
bootstrap r(att) r(atu) r(ate),reps(500):psmatch2 t age educ black hisp married re74 re75 u74 u75,outcome(re78) spline ate ties logit common quietly

*估計結(jié)果仍然類似,總之,以上各匹配得分結(jié)果顯示,參加就業(yè)培訓(xùn)的平均處理效應(yīng)為正,在經(jīng)濟(jì)意義和統(tǒng)計意義上均顯著
6. 馬氏匹配,計算異方差穩(wěn)健標(biāo)準(zhǔn)誤

psmatch2 t, outcome(re78) mahal(age educ black hisp married re74 re75 u74 u75) n(4) ai(4) ate 

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

如果控制個體不多,應(yīng)選擇又放回匹配
如果控制組有較多個體,應(yīng)選擇核匹配

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

但PSM也有局限性:

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

總結(jié)

以上是生活随笔為你收集整理的PSM的stata实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。