雙重差分法 | 平行趨勢檢驗

簡單介紹一下實證論文中雙重差分法(DID)的平行趨勢檢驗(Parallel Trend Test)在Stata中如何操作烘豹。

(本文首發(fā)于個人微信公眾號DMETP,歡迎關(guān)注Iぁ)

一轻猖、平行趨勢假定

平行趨勢假定是實證論文中使用DID的前提,處理組與控制組的目標變量在政策發(fā)生前(事前)只有滿足平行趨勢假設(shè)才能使用DID普泡。反之播掷,如果處理組和控制組在事前就存在一定的差異,那么用DID做出來(可能還很好看)的結(jié)果就不再能代表政策的凈效應(yīng)撼班,極有可能存在其他因素影響我們被解釋變量的變動歧匈,此時可以使用三重差分法(DDD)。關(guān)于三重差分模型砰嘁,連老師的一篇知乎推文講的超級詳細件炉。

二、平行趨勢檢驗

這里主要介紹兩種情況下的平行趨勢檢驗般码。

一是普通DID模型的平行趨勢檢驗妻率,包括怎么畫時間趨勢圖,怎么畫95%置信區(qū)間圖(動態(tài)效應(yīng)檢驗圖)板祝。這里以石大千等(2018)公布在《中國工業(yè)經(jīng)濟》官網(wǎng)上的數(shù)據(jù)為例宫静,由于所公布資料無法生成處理組虛擬變量,這里將使用微信公眾號『功夫計量經(jīng)濟學(xué)』處理之后的數(shù)據(jù)

參考文獻:

石大千, 丁海, 衛(wèi)平, 劉建江. 智慧城市建設(shè)能否降低環(huán)境污染[J]. 中國工業(yè)經(jīng)濟, 2018(06): 117-135.

二是多期DID模型的平行趨勢檢驗孤里,包括怎么畫95%置信區(qū)間圖伏伯。這里之所以沒有畫平行趨勢圖,是因為在多期DID中捌袜,各個處理組受到政策沖擊的時點不一致说搅。因此,就算能夠準確識別出處理組和控制組虏等,由于處理組政策起始時點不一致弄唧,我們也很難在同一張圖中將兩組目標變量的時間趨勢圖畫出來。

李青原和章尹賽楠(2021)的思路是霍衫,單獨提取從樣本開始年份直到某一年年末才受到政策沖擊的樣本為處理組候引,并將從樣本開始年份直到某一年年末都沒受到政策沖擊的樣本作為控制組,畫出兩組間的時間趨勢圖敦跌,這樣的方法在政策沖擊時點較少時可以考慮澄干,因此不具有一般性。

參考文獻:

李青原, 章尹賽楠. 金融開放與資源配置效率——來自外資銀行進入中國的證據(jù)[J]. 中國工業(yè)經(jīng)濟, 2021(05): 95-113.

三柠傍、動態(tài)效應(yīng)檢驗

動態(tài)效應(yīng)檢驗實質(zhì)上就是引入有限個時間虛擬變量麸俘,并將其與處理組虛擬變量交乘,考察交乘項的顯著性惧笛。動態(tài)效應(yīng)檢驗和平行趨勢檢驗是有區(qū)別的从媚,平行趨勢檢驗中,只要考察0時期前的交乘項是否顯著徐紧,如果不顯著静檬,說明處理組和控制組在事前并沒有顯著差異,可以使用DID并级。

而動態(tài)效應(yīng)檢驗不僅考察事前拂檩,也關(guān)注事后組別之間的差異,如果0時期后(包括0時期)的交乘項顯著嘲碧,說明政策實施存在一定的持續(xù)性效果稻励。當(dāng)然,平行趨勢檢驗只要求事前不顯著愈涩,事后顯不顯著不影響事前的結(jié)論望抽。

由于多期DID中處理組受到政策影響的時點不一致,那么怎樣生成時間虛擬變量就成為一個問題履婉。在李青原和章尹賽楠(2021)中煤篙,分為5個時期,分別是樣本起始年份至政策實施前兩年毁腿、政策實施前一年辑奈、政策實施當(dāng)年苛茂,政策實施后一年、政策實施后兩年至樣本結(jié)束年份鸠窗;而在沈坤榮和金剛(2018)中妓羊,直接省略政策推行前三年以上的年份∩约疲可見躁绸,多期DID平行趨勢檢驗中如何設(shè)計時間虛擬變量需要兼顧理論假設(shè)和最終結(jié)果,同時需要想象力~

參考文獻:

沈坤榮, 金剛. 中國地方政府環(huán)境治理的政策效應(yīng)——基于“河長制”演進的研究[J]. 中國社會科學(xué), 2018(05): 92-115.

四臣嚣、Stata代碼

*==============================================================================*
*                        雙重差分法(DID) | 平行趨勢檢驗                        *
*==============================================================================*

** Stata Version: 16 | 17

** 【數(shù)據(jù)來源】普通DID(原始數(shù)據(jù)):石大千等(2018), 參見在《中國工業(yè)經(jīng)濟》網(wǎng)站(http://ciejournal.ajcass.org/Magazine/show/?id=54281)
*-             普通DID(加工數(shù)據(jù)):『功夫計量經(jīng)濟學(xué)』微信公眾號(https://mp.weixin.qq.com/s/06v6s90G1pp-yLju_yAy1Q)
*-             多期DID(原始數(shù)據(jù)):李青原和章尹賽楠(2021)净刮,參見在《中國工業(yè)經(jīng)濟》網(wǎng)站(http://ciejournal.ajcass.org/Magazine/show/?id=77331)

** 【參考文獻】[1] 石大千, 丁海, 衛(wèi)平, 劉建江. 智慧城市建設(shè)能否降低環(huán)境污染[J]. 中國工業(yè)經(jīng)濟, 2018(06): 117-135.
*-             [2] 李青原, 章尹賽楠. 金融開放與資源配置效率——來自外資銀行進入中國的證據(jù)[J]. 中國工業(yè)經(jīng)濟, 2021(05): 95-113.
*-             [3] 沈坤榮, 金剛. 中國地方政府環(huán)境治理的政策效應(yīng)——基于“河長制”演進的研究[J]. 中國社會科學(xué), 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, clear

  global 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", replace

  discard  // 結(jié)果已保存至路徑文件夾

**# 1.2 動態(tài)效應(yīng)檢驗(事件研究法)

  gen current = 2012.year * du

  forvalue 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:數(shù)}", size(medlarge) orientation(h))      ///
      xtitle("{stSans:期數(shù)}"           , 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", replace

  discard
  clear all
  cls

**# 二茧球、多期DID的平行趨勢檢驗

  use 平行趨勢檢驗.dta, clear

  global 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 = 2007

  replace 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 ==   33
  replace year_enter = 2005 if city == 1100 | city == 5301 | city == 2101 |  ///
                               city == 3502 | city == 6101
  replace year_enter = 2006 if city == 2201 | city == 2301 | city == 6201 |  ///
                               city == 6401

  gen 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 動態(tài)效應(yīng)檢驗(TFPQD_OP)

  qui reghdfe TFPQD_OP $adjyear $ctrlvars , $options

  coefplot,                                                                  ///
      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:數(shù)}", size(medlarge) orientation(h))      ///
      xtitle("{stSans:期數(shù)}"           , 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", replace

  discard

**# 2.2 動態(tài)效應(yīng)檢驗(TFPQD_LP)

  qui reghdfe TFPQD_LP $adjyear $ctrlvars , $options

  coefplot,                                                                  ///
      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:數(shù)}", size(medlarge) orientation(h))      ///
      xtitle("{stSans:期數(shù)}"           , 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", replace

  discard

五庭瑰、運行結(jié)果

1. 普通DID的平行趨勢檢驗

用石大千等(2018)的數(shù)據(jù)繪制出如下圖 1圖 2。其中抢埋,圖 1是時間趨勢圖,可以看到督暂,在政策實施年份(2012)年之前揪垄,處理組和控制組的人均廢氣排放量變動趨勢大體一致,但在2005-2006這兩年間兩組目標變量的變動方向相反逻翁。在2012年以后饥努,控制組人均廢氣排放量有過上揚的歷史,隨后在2013年開始逐年下降八回,但下降幅度不大酷愧;處理組的人均廢氣排放量在2012年以后年份均處于下降通道,且在2014年下降幅度較大缠诅。因此溶浴,可以初步判斷兩組間在政策實施年份前的時間趨勢假定基本是滿足的,政策實施年份以后趨勢線的差異基本判斷是由智慧城市試點造成的管引。當(dāng)然士败,這個結(jié)論并不穩(wěn)健,需要進一步檢驗兩組間的動態(tài)效應(yīng)褥伴。

圖 2是動態(tài)效應(yīng)檢驗圖谅将。其中,垂直于橫軸的帶蓋短直線是各期數(shù)與處理組虛擬變量的交乘項回歸系數(shù)的95%置信區(qū)間重慢〖⒈郏可以看到,在期數(shù)為0(該例為2012年)以前似踱,除政策實施年份三年前的系數(shù)顯著(95%置信區(qū)間沒有越過系數(shù) = 0的水平虛線)隅熙,其余期數(shù)都是不顯著的稽煤,這也與時間趨勢圖所揭示的信息基本保持一致。而在政策實施以后的所有年份猛们,系數(shù)基本顯著(期數(shù)為2時有微微不顯著)念脯,說明該政策的影響具有一定的持續(xù)性(或稱時滯性),并且在樣本期間內(nèi)于實施后的第三年該政策具有最大的效果弯淘。

當(dāng)然绿店,基準年的選擇對顯著性的影響很大,這里將2008年作為基準年庐橙,也可以通過選擇不同的基準年對結(jié)果進行適當(dāng)調(diào)整假勿。

圖 1 普通DID的時間趨勢圖
圖 2 普通DID的動態(tài)效應(yīng)檢驗圖

2. 多期DID的平行趨勢檢驗

圖 3圖 4分別是使用李青原和章尹賽楠(2021)公布的數(shù)據(jù)畫出來的基于OP法和LP法計算的TFP離散度的動態(tài)效應(yīng)檢驗圖。在李青原和章尹賽楠(2021)公布的附件中态鳖,作者在平行趨勢檢驗部分提供了回歸結(jié)果表转培,但沒有將其繪制成圖。如圖 3所示浆竭,在政策實施之前浸须,系數(shù)都是不顯著的,政策實施以后邦泄,系數(shù)同樣都不顯著删窒。這說明了基于OP法計算的TFP離散度滿足平行趨勢假定,但政策實施不具有持續(xù)性顺囊。雖然政策不具有持續(xù)性肌索,但系數(shù)為負是符合基本理論假設(shè)的,并且在政策實施一年后開始特碳,系數(shù)與t值較之前明顯增大诚亚。

圖 4就比較完美了,實施年份之前都不顯著午乓,實施年份之后都顯著站宗,且系數(shù)符合理論假設(shè),這說明基于OP法計算的TFP離散度既滿足平行趨勢假定硅瞧,而且政策實施的影響具有一定的持續(xù)性份乒。

圖 3 基于OP法計算的TFP離散度的動態(tài)效應(yīng)檢驗圖
圖 4 基于LP法計算的TFP離散度的動態(tài)效應(yīng)檢驗圖
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市腕唧,隨后出現(xiàn)的幾起案子或辖,更是在濱河造成了極大的恐慌,老刑警劉巖枣接,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件颂暇,死亡現(xiàn)場離奇詭異,居然都是意外死亡但惶,警方通過查閱死者的電腦和手機耳鸯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門湿蛔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人县爬,你說我怎么就攤上這事阳啥。” “怎么了财喳?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵察迟,是天一觀的道長。 經(jīng)常有香客問我耳高,道長扎瓶,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任泌枪,我火速辦了婚禮概荷,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘碌燕。我一直安慰自己误证,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布修壕。 她就那樣靜靜地躺著雷厂,像睡著了一般。 火紅的嫁衣襯著肌膚如雪叠殷。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天诈皿,我揣著相機與錄音林束,去河邊找鬼。 笑死稽亏,一個胖子當(dāng)著我的面吹牛壶冒,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播截歉,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼胖腾,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了瘪松?” 一聲冷哼從身側(cè)響起咸作,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎宵睦,沒想到半個月后记罚,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡壳嚎,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年桐智,在試婚紗的時候發(fā)現(xiàn)自己被綠了末早。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡说庭,死狀恐怖然磷,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情刊驴,我是刑警寧澤姿搜,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站缺脉,受9級特大地震影響痪欲,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜攻礼,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一业踢、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧礁扮,春花似錦知举、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至僚焦,卻和暖如春锰提,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背芳悲。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工立肘, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人名扛。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓谅年,卻偏偏與公主長得像,于是被迫代替她去往敵國和親肮韧。 傳聞我的和親對象是個殘疾皇子融蹂,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容