【Stata 18新功能】didplacebo:DID安慰劑檢驗的Stata新命令(上)

一、前言
雙重差分法的重要前提為平行趨勢假定。但由于在處理后,處理效應已與時間效應混合,故平行趨勢假定本質上不可檢驗。因此,在近年的DID實踐中,越來越多的研究者通過“安慰劑檢驗”(placebo tests),進一步考察是否存在被遺漏的混雜事件,以及由此引起的可能偏差。但DID安慰劑檢驗主要源于經驗研究的實踐,具體做法靈活多樣,編程門檻高低不一,甚至目前文獻中還存在一些操作誤區(qū)與誤解。
為方便學者做出更規(guī)范的DID安慰劑檢驗,降低編程難度,陳強老師團隊(陳強、齊霽、顏冠鵬,2023)研發(fā)了Stata新命令didplacebo。該命令可自動進行DID的時間、空間與混合安慰劑檢驗,并快捷地提供可視化結果。
陳強、齊霽、顏冠鵬(通訊作者),“雙重差分法的安慰劑檢驗:一個實踐的指南”,2023年,山東大學工作論文
2023年8月13日,顏冠鵬博士在第七屆Stata中國用戶大會上進行主題演講,正式發(fā)布此命令,引起與會專家與Stata用戶的極大關注。
Stata命令didplacebo適用于單時點沖擊的標準DID,以及多時間沖擊的交疊DID(staggered DID)。本期推文將首先介紹標準DID的安慰劑檢驗操作。
二、DID安慰劑檢驗的原理
以標準DID為例,下面介紹DID安慰劑檢驗的基本原理,包括時間、空間與混合安慰劑檢驗。
時間安慰劑檢驗(in-time placebo test)
時間安慰劑檢驗將處理前的某個時期作為“偽處理時間”(fake treatment time),僅使用處理前的樣本數據進行DID估計。由于在處理前政策并未實施,故若發(fā)現(xiàn)處理前某期的安慰劑效應顯著,則可懷疑處理效應可能由偶然因素或混雜事件所驅動。
空間安慰劑檢驗(in-space placebo test)
在進行空間安慰劑檢驗時,從樣本中無放回地隨機抽取若干個體作為“偽處理個體”(fake treatment unit),并進行DID估計,得到一個安慰劑效應的估計值。如此重復500次(或1000次),即可得到安慰劑效應的分布。
顯然,如果處理效應為0,則與此安慰劑效應的分布相比,處理效應估計值不應該是極端值,比如極端地大,極端地小,或絕對值極端地大。由此可計算相應的右邊p值,左邊p值與雙邊p值。若p值小于0.05,則可拒絕“處理效應為0”的原假設,認為處理效應顯著。
混合安慰劑檢驗(mixed placebo test)
在進行混合安慰劑檢驗時,從樣本中無放回地隨機抽取若干個體作為“偽處理個體”(fake treatment unit),并隨機抽取一個統(tǒng)一的“偽處理時間”(fake treatment time)進行DID估計,得到一個安慰劑效應的估計值。如此重復500次(或1000次),即可得到安慰劑效應的分布?;旌习参縿z驗的其余步驟與空間安慰劑檢驗相同。
三、命令簡介
從SSC可方便地安裝命令didplacebo (Stata 16 及以上):
. ssc install didplacebo, all replace
其中,選擇項“all”表示下載該命令所附帶的兩個演示數據集cao_chen.dta與bbb.dta。
didplacebo的語法結構及選項說明
didplacebo estimatename, treatvar(treatvarname) [pbotime(#) pbounit pbomix([1|2|3]) repeat(int) seed(int) ranunitnum(int) rantimescope(t_min t_max) frame(framename) nofigure savegraph(prefix, [asis, replace])]
其中:
estimatename:指定安慰劑檢驗前儲存的DID回歸結果
treatvar:指定處理變量
pbotime(numlist):進行時間安慰劑檢驗,numlist指定前置期數
pbounit:進行空間安慰劑檢驗
pbomix([1|2|3]):進行混合安慰劑試驗。1指定對標準DID進行混合安慰劑試驗,2和3分別指定對交疊DID進行無約束和有約束的安慰劑檢驗
repeat(int): 指定重復次數,默認500次
seed(int):設置隨機種子,默認值為1
ranunitnum(int):指定在每次重復中隨機選定的偽處理組個體數量
rantimescope(t_min t_max):指定在每次重復中隨機選定的偽處理時間范圍
frame(framename):創(chuàng)建一個儲存安慰劑檢驗結果的Stata數據框
nofigure:不畫圖,默認畫圖
savegraph:將生成的所有圖形保存到當前路徑
四、標準DID的安慰劑檢驗案例
下面以“漕糧海運”的案例(Cao and Chen, 2022),演示標準DID的時間、空間以及混合安慰劑檢驗操作。
Yiming Cao and Shuo Chen. “Rebel on the canal: Disrupted trade access and social conflict in China, 1650–1911”,American Economic Review 112.5 (2022), 555–1590.
1825年大運河在與黃河交界處決堤,迫使清政府于1826年進行“漕糧海運”的嘗試,之后大運河逐漸廢棄,運河周邊城市失去原有貿易通道,導致社會動蕩與叛亂。Cao and Chen(2022)以清朝1650-1911年575個縣的面板數據,研究漕糧海運政策對地方叛亂的影響;其中,運河流經的縣構成處理組(共73個縣),而運河未流經的縣則為控制組(共502縣)。考慮以下標準DID的雙向固定效應(TWFE)模型:

其中,被解釋變量為縣城 i 在第 t 年的每百萬人叛亂數量(由于存在大量零值,已對此變量進行逆雙曲正弦變換),

表示縣城 i 是否為運河縣,

表示第 t 年是否在政策沖擊后(1826年及之后取值為1,反之取值為0),而交互項

為處理變量。
加載數據集cao_chen.dta,并設為面板數據集:
. sysuse cao_chen.dta, clear
. xtset county year

遵照Cao and Chen(2022),使用非官方命令reghdfe估計上述雙向固定效應模型:
. reghdfe rebel canal_post, absorb(i.county i.year) cluster(county)
其中,選擇項“absorb(i.county i.year)”控制了所有縣與年度的固定效應,而選擇項“cluster(county)”指定以縣為聚類的聚類穩(wěn)健標準誤。估計結果如下:

雙向固定效應估計值為0.023,且在5%水平上顯著。將回歸結果存為“did_cao_chen”,以便后續(xù)調用:
. estimates store did_cao_chen
下面進行時間安慰劑檢驗:
. didplacebo did_cao_chen, treatvar(canal_post) pbotime(1(1)10)
其中,“did_cao_chen”為上述所存儲的TWFE回歸結果,而必選項“treatvar(canal_post)” 指定處理變量為canal_post。選擇項“pbotime(1(1)10)” 表示將處理時間分別前置1至10期,即分別以1816-1825年作為偽處理時間,進行DID估計。檢驗結果如下:

以上表共匯報了十個時間安慰劑檢驗的結果;其中,標準誤與存儲結果did_cao_chen所用的標準誤相同(即均為聚類穩(wěn)健標準誤)。結果顯示,所有安慰劑效應的p值都大于0.1,故均可接受“安慰劑效應為0”的原假設。更直觀地,該命令同時畫了各期時間安慰劑效應的95%置信區(qū)間。其中,所有置信區(qū)間都包含0值,說明安慰劑效應均不顯著。

下面進行空間安慰劑檢驗,從575個縣中隨機抽取73個縣構成“偽處理組”(原始樣本中共有73個運河縣),而其余502個縣作為“偽控制組”,進行DID估計;并如此重復500次:. didplacebo did_cao_chen, treatvar(canal_post) pbounit rep(500) seed(1)其中,選擇項“pbounit”表示進行空間安慰劑檢驗,選擇項“rep(500)”表示重復500次(這是默認選項,故可省略),而選擇項“seed(1)”指定隨機種子為1(這是默認選項,故可省略)。所得結果如下:

上表匯報了空間安慰劑檢驗的雙邊、左邊及右邊p值。其中,雙邊及右邊p值均為0.008,故在1%水平上強烈拒絕“處理效應為0”的原假設。此命令還畫了安慰劑效應的核密度圖與直方圖,以及處理效應估計值(圖中垂直實線)。

在上圖中,處理效應估計值(0.038)位于安慰劑效應分布的右側尾部,為極端值。直觀上,如果處理效應為0,則在一次抽樣中不應看到如此極端的處理效應估計值。具體而言,此分布大于0.038的右側尾部面積即為右邊p值0.008(即安慰劑效應大于處理效應估計值的概率),小于0.038的左側面積即為左邊p值0.992(即安慰劑效應小于處理效應估計值的概率),而安慰劑效應的絕對值大于處理效應估計值的概率則為雙邊p值0.008。下面進行混合安慰劑檢驗,即在隨機抽取“偽處理組”后,再隨機抽取統(tǒng)一的“偽處理時間”,進行DID估計;并如此重復500次:. didplacebo did_cao_chen, treatvar(canal_post) pbomix(1)其中,選擇項 “pbomix(1)”表示進行適合于標準DID的混合安慰劑檢驗(交疊DID的混合安慰劑檢驗有所不同,參見下期推文),所得結果如下:

以上結果顯示,雙邊與右邊p值均小于1%,故平均處理效應在1%水平上顯著。更直觀地,此命令還畫了安慰劑效應的分布圖,其中處理效應估計值(圖中垂直實線)位于安慰劑效應分布的右側尾部,為極端值。

若想同時進行時間、空間與混合安慰劑檢驗,可輸入如下命令:. didplacebo did_cao_chen, treatvar(canal_post) pbotime(1(1)10) pbounit pbomix(1)此命令的輸出結果從略。下期推文將繼續(xù)介紹使用didplacebo命令進行交疊DID的安慰劑檢驗,敬請期待。