?? 連享會主頁:lianxh.cn
「十年口碑,桃李三千」
?? 2021 Stata 暑期班
?? 2021 年 7 月 20-30 日
?? 連玉君(中山大學(xué));江艇 (中國人民大學(xué))
?? 課程主頁:https://gitee.com/lianxh/PX
New!
lianxh
命令發(fā)布了: GIF 動圖介紹
隨時(shí)搜索 Stata 推文、教程、手冊、論壇,安裝命令如下:
?. ssc install lianxh
作者:丁雅文 (北京大學(xué))
郵箱:1901111380@pku.edu.cn
編者按:本文部分內(nèi)容摘譯自下文,特此致謝!
Source:Dettmann E, Giebler A, Weyh A. flexpaneldid. A Stata Toolbox for Causal Analysis with Varying Treatment Time and Duration. 2020. -PDF-
目錄
1. 簡介
2. 理論背景
2.1 現(xiàn)有解決方法
2.2 靈活的條件 DID
2.3 處理組處理效應(yīng) ATT 估計(jì)
3. Stata 實(shí)操
4. 參考文獻(xiàn)
5. 相關(guān)推文
溫馨提示: 文中鏈接在微信中無法生效。請點(diǎn)擊底部「閱讀原文」?;蛑苯娱L按/掃描如下二維碼,直達(dá)原文:
雙重差分模型 (Difference in Difference, DID) 是目前經(jīng)濟(jì)學(xué)界估計(jì)處理效應(yīng)的主流方法之一,一般用于評估隨機(jī)試驗(yàn)或自然實(shí)驗(yàn) (例如,法律法規(guī)的調(diào)整) 的效果。經(jīng)典的 DID 方法通常擁有兩期 (處理前和處理后) 和兩組 (處理組和控制組) 數(shù)據(jù),并暗含了固定處理效應(yīng) (constant treatment effects) 的假定。讀者可參考推文「連享會專題:倍分法DID」 進(jìn)行學(xué)習(xí)。
然而在現(xiàn)實(shí)中,我們經(jīng)常發(fā)現(xiàn)不同個(gè)體接受政策干預(yù)的開始時(shí)間和持續(xù)時(shí)間往往是不同的。因此,假定所有受干預(yù)個(gè)體的處理效應(yīng)相同并不合理?,F(xiàn)有研究主要采用條件倍差法 (conditional DID) 和固定效應(yīng)形式的倍差法 (fixed effect DID),來解決因不同個(gè)體接受干預(yù)的開始時(shí)間和持續(xù)時(shí)間不同所導(dǎo)致的估計(jì)潛在偏誤。本文將介紹一個(gè)基于交錯采用設(shè)計(jì)框架 (the staggered adoption design framework) 的靈活條件 DID 方法,來解決上述問題。
目前計(jì)量經(jīng)濟(jì)學(xué)文獻(xiàn)主要采用兩種方法,來彌補(bǔ)經(jīng)典 DID 模型固定處理效應(yīng)假定的缺陷。
在經(jīng)典 DID 模型兩組兩期的數(shù)據(jù)結(jié)構(gòu)下,Angrist 和 Pischke (2009) 指出在滿足共同趨勢假設(shè)的條件下,條件倍差法和固定效應(yīng)倍差法得到的處理效應(yīng)應(yīng)該相同。然而,由于不同個(gè)體接受干預(yù)的開始時(shí)間和持續(xù)時(shí)間不同,這種等價(jià)性很難推廣到兩組或兩期以上的情況。因此,本文提出一種靈活的條件 DID 方法 (the flexible conditional DID) 方法,來更一般化地解決由于不同個(gè)體接受干預(yù)的開始時(shí)間和持續(xù)時(shí)間不同所導(dǎo)致的異質(zhì)性處理效應(yīng)。
在介紹該方法之前,我們先簡單介紹一下交錯采用設(shè)計(jì)框架。下圖以 2008 年國際金融危機(jī)為例,展示了交錯干預(yù)情況下對應(yīng)的數(shù)據(jù)結(jié)構(gòu):在這個(gè) 2004-2014 年的非平衡面板中,接受干預(yù)的企業(yè)單位 ,,,…, 開始接受干預(yù)的時(shí)間和干預(yù)持續(xù)時(shí)間皆不相同。此外,金融學(xué)中的日歷效應(yīng) (calendar time effect)、勞動經(jīng)濟(jì)學(xué)中的 Ashenfelter 沉降問題也說明了經(jīng)濟(jì)環(huán)境的動態(tài)變化和樣本自選擇等現(xiàn)象的存在,均會導(dǎo)致現(xiàn)實(shí)中固定處理效應(yīng)的假設(shè)不成立。
本文介紹的靈活條件 DID 方法對 Heckman 等 (1988) 提出的條件倍差法主要有三點(diǎn)改進(jìn):
靈活的條件 DID 與以往條件 DID 所依賴的前提假定有所不同:
靈活的條件 DID 估計(jì)方法主要有兩步:
第一步:數(shù)據(jù)預(yù)處理
按照所有匹配變量和結(jié)果變量的觀察日期進(jìn)行數(shù)據(jù)重組。具體來講,這一步主要是為每個(gè)處理組單位尋找合適的控制組單位。與某一處理組單位開始接受干預(yù)時(shí)具有相似樣本特征的控制組樣本,構(gòu)成該處理組單位的潛在控制組。例如,一個(gè)企業(yè)在 2007 年 1 月接受了投資補(bǔ)貼,潛在控制組企業(yè)應(yīng)該在 2007 年 1 月具有與該企業(yè)相似的企業(yè)特征。在 Stata 中用 flexpaneldid_preprocessing
命令實(shí)現(xiàn)這一步。
第二步:基于一種統(tǒng)計(jì)距離函數(shù)進(jìn)行匹配并計(jì)算處理組平均處理效應(yīng) ATT
靈活的條件 DID 匹配所用的統(tǒng)計(jì)距離函數(shù)結(jié)合了連續(xù)變量的平均絕對差與分類變量的廣義匹配系數(shù)。處理組企業(yè) 與任意一個(gè)非處理組企業(yè) 之間的距離函數(shù)可表示為:
其中, 為企業(yè) 與企業(yè) 之間的加總距離, 和 分別表示連續(xù)變量的平均絕對差和分類變量的廣義匹配系數(shù)。 表示用于匹配的變量數(shù)量,由連續(xù)變量個(gè)數(shù) 和類別變量個(gè)數(shù) 加總而成,。
連續(xù)變量的平均絕對差 定義如下:
其中,|·|代表絕對值, 代表可觀測變量 的最大差值。因此,連續(xù)變量的平均絕對差是所有可觀測變量最大差值標(biāo)準(zhǔn)化之后的均值。
廣義匹配系數(shù) 可以被定義為各分類變量中等值變量的份額 (即的分類變量占比):
其中,
Stata 中的 flexpaneldid
命令不僅可以計(jì)算這種統(tǒng)計(jì)距離,而且可以在匹配后進(jìn)行匹配變量的平衡性檢驗(yàn),并進(jìn)一步計(jì)算出我們關(guān)心的 ATT。采用半徑匹配法計(jì)算的個(gè)體ATT估計(jì)量為:
其中, 表示個(gè)體 接受干預(yù)的開始時(shí)間, 為個(gè)體 接受干預(yù)的持續(xù)時(shí)間。由于不同處理組個(gè)體的干預(yù)持續(xù)期可能不同,因此,處理組的平均處理效應(yīng)是不同觀測時(shí)期 對應(yīng)的 ATT 的加權(quán)平均。
本部分我們將介紹 flexpaneldid_preprocessing
和 flexpaneldid
命令的使用。這兩個(gè) Stata 命令均發(fā)布于 SSC。需要注意的是,在使用這兩個(gè)命令之前,Stata 必須先行安裝好 psmatch2
和 cem
命令。國內(nèi)用戶,可以使用連享會新近發(fā)布的 cnssc
命令極速安裝。該命令是 Stata 官方命令 ssc
的中文鏡像。
ssc install cnssc, replace
cnssc install psmatch2, replace
cnssc install cem, replace
*-安裝 flexpaneldid 命令,下載范例數(shù)據(jù):
cnssc des flexpaneldid // 命令簡介
cnssc install flexpaneldid, replace // 安裝
cnssc get flexpaneldid // 下載范例數(shù)據(jù)
本部分所用樣例來自 Wooldridge (2010),我們想研究某一個(gè)特定的干預(yù)對企業(yè)層面專利數(shù)量的影響。數(shù)據(jù)樣本和變量定義如下:樣例數(shù)據(jù)集是 1972-1981 年的企業(yè)面板數(shù)據(jù)庫,由企業(yè)代碼 cusip 和 年份 year 確定某年唯一的企業(yè)。如果在觀察期前 5 年內(nèi)某企業(yè)接受過干預(yù),則干預(yù)變量 treatment=1
,否則為 0。接受干預(yù)的企業(yè)干預(yù)開始和持續(xù)時(shí)間可能有所不同。
首先,運(yùn)行 flexpaneldid_preprocessing
命令,為處理組企業(yè)尋找潛在控制組。
. use flexpaneldid_example_data.dta, clear
. flexpaneldid_preprocessing, id(cusip) treatment(treatment) ///
time(year) matchvars(employ stckpr rnd sales return ///
pats_cat rndstck_cat rndeflt_cat) ///匹配變量
matchtimerel(-1) ///相對于開始干預(yù)時(shí)間的匹配時(shí)間設(shè)定
matchvarsexact(sic_cat) ///精確匹配的變量
prepdataset("preprocessed_data.dta") replace //儲存預(yù)處理數(shù)據(jù)
注意:matchtimerel(int)
規(guī)定了開始匹配的時(shí)間,例如 matchtimerel(-1)
就表示從處理組企業(yè)接受干預(yù)的前一期開始匹配。prepdataset(string) replace
用于儲存包含預(yù)處理結(jié)果的數(shù)據(jù)集??紤]到使用 flexpaneldid
命令時(shí)可能會重復(fù)使用預(yù)處理集,我們建議使用該選項(xiàng)。
flexpaneldid_preprocessing
命令運(yùn)行結(jié)果如下:
************************************************************************
********************* flexpaneldid - preprocessing *********************
************************************************************************
------------------------------------------------------------------------
id: cusip
treatment: treatment
time: year
matchvars: employ stckpr rnd sales return
pats_cat rndstck_cat rndeflt_cat
matchvarsexact: sic_cat
match_time: -1
prepdataset: preprocessed_data.dta
------------------------------------------------------------------------
************************************************************************
************************* Preprocessing ********************************
************************************************************************
Preprocessing of 61 treated:
.................................................. 50
........... 61
************************************************************************
************************* Preprocessing - Summary **********************
************************************************************************
Number of treated: 61
Number of treated dropped during preprocessing: 0
Number of treated after preprocessing: 61
Mean size of selection groups: 45.7377
運(yùn)行結(jié)果表明,共有 61 個(gè)處理組企業(yè)找到了潛在控制組,每個(gè)處理組企業(yè)平均有 45.7 家潛在控制組企業(yè)。
其次,運(yùn)行 flexpaneldid
命令進(jìn)行樣本匹配,具體代碼如下:
. use example_data.dta, clear
. flexpaneldid patents, id(cusip) treatment(treatment) ///
time(year) statmatching(con(employ stckpr rnd sales) ///
cat(pats_cat rndstck_cat)) ///計(jì)算統(tǒng)計(jì)距離的匹配變量
///con()和cat()中分別為連續(xù)變量和類別變量
outcometimerelstart(3) ///干預(yù)持續(xù)期為3年
outcomedev(-2 -1) ///表示干預(yù)開始的前兩期到前一期的結(jié)果變量變化
test ///用pstest命令進(jìn)行匹配變量平衡性檢驗(yàn)
prepdataset(’preprocessed_data.dta’) //儲存預(yù)處理數(shù)據(jù)
flexpaneldid
運(yùn)行結(jié)果首先匯報(bào)了該命令所添加的一些約束項(xiàng),然后匯報(bào)了匹配的結(jié)果。61 個(gè)處理組企業(yè)中有 47 個(gè)找到了可匹配的控制組企業(yè),同時(shí),用于匹配的控制組企業(yè)僅為 39 個(gè)。
********************************************************
*********************** flexpaneldid *******************
********************************************************
--------------------------------------------------------
outcome: patents
id: cusip
treatment: treatment
time: year
outcome_time_start: 3
outcome_time_end: .
outcome_dev: -2 -1
cemmatching:
statmatcing: , con(employ stckpr rnd sales) cat(pats_cat rndstck_cat)
test: test
outcomemissing:
didmodel:
--------------------------------------------------------
********************************************************
******************** Matching: STAT ********************
********************************************************
********************************************************
********* flexpaneldid - Matching Summary **************
********************************************************
| NT T
---------------+------------------------------
All | 165 61
Matched sample | 39 47
在 flexpaneldid
命令中采用 test
選項(xiàng)時(shí),Stata 會匯報(bào) pstest
命令的平衡性檢驗(yàn)結(jié)果。由下圖輸出結(jié)果可知,所有匹配變量在均值上均無顯著性差異,而 stckpr、sales 和 outcome_dev 三個(gè)變量的方差在 10% 的顯著性水平上具有顯著性差異。
********************************************************
******************** ps-test ***************************
********************************************************
---------------------------------------------------------------
| Mean | t-test | V(T)/
Variable | Treated Control %bias | t p>|t| | V(C)
------------+--------------------------+---------------+-------
employ | 26.197 20.337 8.6 | 0.42 0.677 | 1.13
stckpr | 25.779 18.28 23.1 | 1.12 0.266 | 6.36*
rnd | 38.116 31.329 4.6 | 0.23 0.822 | 1.30
sales | 1201 1054.5 3.9 | 0.19 0.849 | 0.56*
pats_cat | 1.9362 1.8936 3.2 | 0.15 0.879 | 0.98
rndstck_cat | 3.4255 3.2979 5.2 | 0.25 0.802 | 1.05
outcome_dev | -1.617 -1.5957 -0.2 | -0.01 0.991 | 1.81*
---------------------------------------------------------------
* if variance ratio outside [0.56; 1.80]
----------------------------------------------------------------------
Ps R2 LR chi2 p>chi2 MeanBias MedBias B R %Var
----------------------------------------------------------------------
0.037 4.77 0.688 7.0 4.6 44.2* 2.27* 43
----------------------------------------------------------------------
* if B>25%, R outside [0.5; 2]
由于樣例基于統(tǒng)計(jì)距離進(jìn)行匹配,flexpaneldid
命令會額外匯報(bào)匹配變量特定規(guī)模的檢驗(yàn)統(tǒng)計(jì)量 (scale-specific test statistics)。其中,Kolmogorov-Smirnov test 匯報(bào)所有連續(xù)變量的平衡性檢驗(yàn)結(jié)果,chi-square test 匯報(bào)所有分類變量的平衡性檢驗(yàn)結(jié)果。由于推文篇幅限制,我們只在這里貼出 employ (連續(xù)變量) 和 pats_cat (分類變量) 的平衡性檢驗(yàn)結(jié)果。
由下圖輸出結(jié)果可知,employ 的調(diào)整過的 值為 0.280,pats_cat 調(diào)整過的 值為 0.982,說明這兩個(gè)變量在處理組和控制組中的分布均無顯著性差異。
********************************************************
************************ KS-Test ***********************
********************************************************
ksmirnov employ , by(treated)
Two-sample Kolmogorov-Smirnov test for equality of distribution functions
Smaller group D P-value Corrected
----------------------------------------------
0: 0.1915 0.178
1: -0.0638 0.826
Combined K-S: 0.1915 0.355 0.280
Note: Ties exist in combined dataset;
there are 88 unique values out of 94 observations.
********************************************************
********************** Chi2-Test ***********************
********************************************************
tabulate pats_cat treated, chi2
pats_cat |
(at |
treatment | treated
time -1) | 0 1 | Total
-----------+----------------------+----------
0 | 8 8 | 16
1 | 14 12 | 26
2 | 7 9 | 16
3 | 11 11 | 22
4 | 7 7 | 14
-----------+----------------------+----------
Total | 47 47 | 94
Pearson chi2(4) = 0.4038 Pr = 0.982
flexpaneldid
命令還可附帶作出連續(xù)匹配變量的 Q-Q 圖,以直觀反應(yīng)樣本匹配質(zhì)量。由下圖可知,所有用于匹配的連續(xù)變量在匹配之后均與 45° 線有較小的偏離,且偏離大多發(fā)生在分布的尾部,這說明樣例連續(xù)變量匹配較好。
最后,flexpaneldid
命令匯報(bào)了 ATT 估計(jì)采用的距離測度方法、匹配方法、處理組和控制組樣本數(shù)量等信息,以及我們關(guān)心的 ATT 估計(jì)量。估計(jì)的 ATT 系數(shù)為 -2.20, 檢驗(yàn)的 值為 0.7193,說明處理組處理效應(yīng)并不顯著 (由于樣例干預(yù)是隨意設(shè)定,并非真實(shí)發(fā)生的干預(yù),本樣例中的ATT估計(jì)系數(shù)并無實(shí)際經(jīng)濟(jì)學(xué)含義)。
********************************************************
************ Conditional Diff-in-Diff ******************
********************************************************
Average treatment effect for the treated
Estimator : Nearest neighbor No. of treated obs = 47
Distance metric : Statistical DF No. of unique controls = 39
Mean no. of matches = 1
-----------------------------------------------------------------------
Outcome | mean Diff | DiD* |AI robust | z P>|z|
| treated | controls | | S.E. | |
---------+----------+----------+---------+----------+---------+--------
patents | -10.0213 | -7.8176 | -2.2037 | 6.1685 | -0.3572 | 0.7225
-----------------------------------------------------------------------
* Consistent bias-corrected estimator as proposed in Abadie & Imbens (2006,2011).
Note:產(chǎn)生如下推文列表的 Stata 命令為:
?lianxh did
安裝最新版lianxh
命令:
?ssc install lianxh, replace
?? ?? ?? ??
?? 暑期 空間計(jì)量專題
?? 2021 年 8 月 21-24 日
?? 范巧 (蘭州大學(xué));楊海生 (中山大學(xué))
?? 課程主頁:https://gitee.com/lianxh/SP
關(guān)于我們
New!
lianxh
命令發(fā)布了: GIF 動圖介紹
隨時(shí)搜索連享會推文、Stata 資源,安裝命令如下:
?. ssc install lianxh
使用詳情參見幫助文件 (有驚喜):
?. help lianxh
聯(lián)系客服