双重差分法之平行趋势检验
簡單介紹一下實證論文中雙重差分法(DID)的平行趨勢檢驗(Parallel Trend Test)在Stata中如何操作。
(本文首發于個人微信公眾號DMETP,歡迎關注!)
一、平行趨勢假定
平行趨勢假定是實證論文中使用DID的前提,處理組與控制組的目標變量在政策發生前(事前)只有滿足平行趨勢假設才能使用DID。反之,如果處理組和控制組在事前就存在一定的差異,那么用DID做出來(可能還很好看)的結果就不再能代表政策的凈效應,極有可能存在其他因素影響我們被解釋變量的變動,此時可以使用三重差分法(DDD)。關于三重差分模型,連老師的一篇知乎推文講的超級詳細。
二、平行趨勢檢驗
這里主要介紹兩種情況下的平行趨勢檢驗。
一是普通DID模型的平行趨勢檢驗,包括怎么畫時間趨勢圖,怎么畫95%置信區間圖(動態效應檢驗圖)。這里以石大千等(2018)公布在《中國工業經濟》官網上的數據為例,由于所公布資料無法生成處理組虛擬變量,這里將使用微信公眾號『功夫計量經濟學』處理之后的數據。
參考文獻:
石大千, 丁海, 衛平, 劉建江. 智慧城市建設能否降低環境污染[J]. 中國工業經濟, 2018(06): 117-135.
二是多期DID模型的平行趨勢檢驗,包括怎么畫95%置信區間圖。這里之所以沒有畫平行趨勢圖,是因為在多期DID中,各個處理組受到政策沖擊的時點不一致。因此,就算能夠準確識別出處理組和控制組,由于處理組政策起始時點不一致,我們也很難在同一張圖中將兩組目標變量的時間趨勢圖畫出來。
李青原和章尹賽楠(2021)的思路是,單獨提取從樣本開始年份直到某一年年末才受到政策沖擊的樣本為處理組,并將從樣本開始年份直到某一年年末都沒受到政策沖擊的樣本作為控制組,畫出兩組間的時間趨勢圖,這樣的方法在政策沖擊時點較少時可以考慮,因此不具有一般性。
參考文獻:
李青原, 章尹賽楠. 金融開放與資源配置效率——來自外資銀行進入中國的證據[J]. 中國工業經濟, 2021(05): 95-113.
三、動態效應檢驗
動態效應檢驗實質上就是引入有限個時間虛擬變量,并將其與處理組虛擬變量交乘,考察交乘項的顯著性。動態效應檢驗和平行趨勢檢驗是有區別的,平行趨勢檢驗中,只要考察0時期前的交乘項是否顯著,如果不顯著,說明處理組和控制組在事前并沒有顯著差異,可以使用DID。
而動態效應檢驗不僅考察事前,也關注事后組別之間的差異,如果0時期后(包括0時期)的交乘項顯著,說明政策實施存在一定的持續性效果。當然,平行趨勢檢驗只要求事前不顯著,事后顯不顯著不影響事前的結論。
由于多期DID中處理組受到政策影響的時點不一致,那么怎樣生成時間虛擬變量就成為一個問題。在李青原和章尹賽楠(2021)中,分為5個時期,分別是樣本起始年份至政策實施前兩年、政策實施前一年、政策實施當年,政策實施后一年、政策實施后兩年至樣本結束年份;而在沈坤榮和金剛(2018)中,直接省略政策推行前三年以上的年份。可見,多期DID平行趨勢檢驗中如何設計時間虛擬變量需要兼顧理論假設和最終結果,同時需要想象力~
參考文獻:
沈坤榮, 金剛. 中國地方政府環境治理的政策效應——基于“河長制”演進的研究[J]. 中國社會科學, 2018(05): 92-115.
四、Stata代碼
*==============================================================================* * 雙重差分法(DID) | 平行趨勢檢驗 * *==============================================================================*** Stata Version: 16 | 17** 【數據來源】普通DID(原始數據):石大千等(2018), 參見在《中國工業經濟》網站(http://ciejournal.ajcass.org/Magazine/show/?id=54281) *- 普通DID(加工數據):『功夫計量經濟學』微信公眾號(https://mp.weixin.qq.com/s/06v6s90G1pp-yLju_yAy1Q) *- 多期DID(原始數據):李青原和章尹賽楠(2021),參見在《中國工業經濟》網站(http://ciejournal.ajcass.org/Magazine/show/?id=77331)** 【參考文獻】[1] 石大千, 丁海, 衛平, 劉建江. 智慧城市建設能否降低環境污染[J]. 中國工業經濟, 2018(06): 117-135. *- [2] 李青原, 章尹賽楠. 金融開放與資源配置效率——來自外資銀行進入中國的證據[J]. 中國工業經濟, 2021(05): 95-113. *- [3] 沈坤榮, 金剛. 中國地方政府環境治理的政策效應——基于“河長制”演進的研究[J]. 中國社會科學, 2018(05): 92-115+206.cd "C:\Users\KEMOSABE\Desktop\parallel_trend_test"graph set window fontface "Times New Roman"graph set window fontfacesans "宋體"**# 一、普通DID的平行趨勢檢驗use smart_city2018.dta, clearglobal xlist "lnrgdp lninno lnurb lnopen lnss"**# 1.1 時間趨勢圖bysort du year: egen mean_lnrso = mean(lnrso)twoway(line mean_lnrso year if du == 1, ///lpattern(solid) ///lcolor(black) ///lwidth(thin) ///scheme(qleanmono) ///ytitle("{stSans:人}""{stSans:均}""{stSans:廢}" ///"{stSans:氣}""{stSans:排}""{stSans:放}" ///"{stSans:量}" , size(medlarge) orientation(h)) ///xtitle("{stSans:年份}", size(medlarge)) ///xline(2012, lpattern(solid) lcolor(black) lwidth(thin)) ///saving(parallel_trend_test_1-1, replace)) ///(line mean_lnrso year if du == 0, ///lpattern(shortdash) ///lcolor(black) ///lwidth(thin)) , ///xlabel(2005(2)2015 , labsize(medlarge)) ///ylabel(-2.5(0.25)-1.5, labsize(medlarge) format(%3.2f)) ///legend(label(1 "{stSans:處理組}") ///label(2 "{stSans:控制組}") ///size(medlarge) position(1) symxsize(10))graph export "parallel_trend_test_1-1.emf", replacediscard // 結果已保存至路徑文件夾**# 1.2 動態效應檢驗(事件研究法)gen current = 2012.year * duforvalue i = 4(-1)1 {gen before`i' = (year == 2012 - `i') * du}forvalue k = 1/3 {gen after`k' = (year == 2012 + `k') * du}drop before4 // 將2008年作為基準年qui reghdfe lnrso before* current after* $xlist , absorb(id year) cluster(id)coefplot, ///keep(before* current after*) ///vertical ///scheme(qleanmono) ///coeflabels(before3 = -3 ///before2 = -2 ///before1 = -1 ///current = 0 ///after1 = 1 ///after2 = 2 ///after3 = 3) ///msymbol(O) msize(small) mcolor(black) ///addplot(line @b @at, lcolor(black) lwidth(thin) lpattern(solid)) ///ciopts(recast(rcap) lcolor(black) lwidth(thin)) ///yline(0, lpattern(dash) lcolor(black) lwidth(thin)) ///ytitle("{stSans:系}""{stSans:數}", size(medlarge) orientation(h)) ///xtitle("{stSans:期數}" , size(medlarge)) ///xlabel(, labsize(medlarge)) ///ylabel(, labsize(medlarge) format(%02.1f)) ///saving(parallel_trend_test_1-2, replace)graph export "parallel_trend_test_1-2.emf", replacediscardclear allcls**# 二、多期DID的平行趨勢檢驗use 平行趨勢檢驗.dta, clearglobal y "TFPQD_OP TFPQD_LP"global adjyear "yb2 yb1 y0 ya1 ya2"global ctrlvars "ADM PPE ADV RD HHI INDSIZE NFIRMS FCFIRM MARGIN LEVDISP SIZEDISP ENTRYR EXITR"global options "absorb((city)*(year) (ind3)*(year)) cluster(city year) keepsing"gen year_enter = 2007replace year_enter = 2004 if city == 5101 | city == 5000 | city == 2102 | ///city == 3501 | city == 4401 | city == 3701 | ///city == 3201 | city == 3702 | city == 3101 | ///city == 4403 | city == 1200 | city == 4201 | ///city == 4404 | prov == 44 | prov == 45 | ///prov == 43 | prov == 32 | prov == 33replace year_enter = 2005 if city == 1100 | city == 5301 | city == 2101 | ///city == 3502 | city == 6101replace year_enter = 2006 if city == 2201 | city == 2301 | city == 6201 | ///city == 6401gen yb2 = (year_enter == year + 2)gen yb1 = (year_enter == year + 1)gen y0 = (year_enter == year)gen ya1 = (year_enter == year - 1)gen ya2 = (year_enter <= year - 2)**# 2.1 動態效應檢驗(TFPQD_OP)qui reghdfe TFPQD_OP $adjyear $ctrlvars , $optionscoefplot, ///keep( $adjyear ) ///vertical ///scheme(qleanmono) ///coeflabels(yb2 = -2 ///yb1 = -1 ///y0 = 0 ///ya1 = 1 ///ya2 = 2) ///msymbol(O) msize(small) mcolor(black) ///addplot(line @b @at, lcolor(black) lwidth(thin) lpattern(solid)) ///ciopts(recast(rcap) lcolor(black) lwidth(thin)) ///yline(0, lpattern(dash) lcolor(black) lwidth(thin)) ///ytitle("{stSans:系}""{stSans:數}", size(medlarge) orientation(h)) ///xtitle("{stSans:期數}" , size(medlarge)) ///xlabel(, labsize(medlarge)) ///ylabel(, labsize(medlarge) format(%03.2f)) ///saving(parallel_trend_test_2-1, replace)graph export "parallel_trend_test_2-1.emf", replacediscard**# 2.2 動態效應檢驗(TFPQD_LP)qui reghdfe TFPQD_LP $adjyear $ctrlvars , $optionscoefplot, ///keep( $adjyear ) ///vertical ///scheme(qleanmono) ///coeflabels(yb2 = -2 ///yb1 = -1 ///y0 = 0 ///ya1 = 1 ///ya2 = 2) ///msymbol(O) msize(small) mcolor(black) ///addplot(line @b @at, lcolor(black) lwidth(thin) lpattern(solid)) ///ciopts(recast(rcap) lcolor(black) lwidth(thin)) ///yline(0, lpattern(dash) lcolor(black) lwidth(thin)) ///ytitle("{stSans:系}""{stSans:數}", size(medlarge) orientation(h)) ///xtitle("{stSans:期數}" , size(medlarge)) ///xlabel(, labsize(medlarge)) ///ylabel(, labsize(medlarge) format(%03.2f)) ///saving(parallel_trend_test_2-2, replace)graph export "parallel_trend_test_2-2.emf", replacediscard五、運行結果
1. 普通DID的平行趨勢檢驗
用石大千等(2018)的數據繪制出如下圖 1和圖 2。其中,圖 1是時間趨勢圖,可以看到,在政策實施年份(2012)年之前,處理組和控制組的人均廢氣排放量變動趨勢大體一致,但在2005-2006這兩年間兩組目標變量的變動方向相反。在2012年以后,控制組人均廢氣排放量有過上揚的歷史,隨后在2013年開始逐年下降,但下降幅度不大;處理組的人均廢氣排放量在2012年以后年份均處于下降通道,且在2014年下降幅度較大。因此,可以初步判斷兩組間在政策實施年份前的時間趨勢假定基本是滿足的,政策實施年份以后趨勢線的差異基本判斷是由智慧城市試點造成的。當然,這個結論并不穩健,需要進一步檢驗兩組間的動態效應。
圖 2是動態效應檢驗圖。其中,垂直于橫軸的帶蓋短直線是各期數與處理組虛擬變量的交乘項回歸系數的95%置信區間。可以看到,在期數為0(該例為2012年)以前,除政策實施年份三年前的系數顯著(95%置信區間沒有越過系數 = 0的水平虛線),其余期數都是不顯著的,這也與時間趨勢圖所揭示的信息基本保持一致。而在政策實施以后的所有年份,系數基本顯著(期數為2時有微微不顯著),說明該政策的影響具有一定的持續性(或稱時滯性),并且在樣本期間內于實施后的第三年該政策具有最大的效果。
當然,基準年的選擇對顯著性的影響很大,這里將2008年作為基準年,也可以通過選擇不同的基準年對結果進行適當調整。
2. 多期DID的平行趨勢檢驗
圖 3和圖 4分別是使用李青原和章尹賽楠(2021)公布的數據畫出來的基于OP法和LP法計算的TFP離散度的動態效應檢驗圖。在李青原和章尹賽楠(2021)公布的附件中,作者在平行趨勢檢驗部分提供了回歸結果表,但沒有將其繪制成圖。如圖 3所示,在政策實施之前,系數都是不顯著的,政策實施以后,系數同樣都不顯著。這說明了基于OP法計算的TFP離散度滿足平行趨勢假定,但政策實施不具有持續性。雖然政策不具有持續性,但系數為負是符合基本理論假設的,并且在政策實施一年后開始,系數與t值較之前明顯增大。
圖 4就比較完美了,實施年份之前都不顯著,實施年份之后都顯著,且系數符合理論假設,這說明基于OP法計算的TFP離散度既滿足平行趨勢假定,而且政策實施的影響具有一定的持續性。
總結
以上是生活随笔為你收集整理的双重差分法之平行趋势检验的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: antd 时间选择器,设置显示为中文
- 下一篇: Google SketchUp Cook