這篇文章是和小夥伴LF協作完成的,我倆用的是石墨文檔。如果需要對應的do文件,可以私信我郵箱,看到後空閒時間就發~
估計政策效應的四種方法:工具變量法、斷點回歸、傾向得分匹配法、雙重差分法。我們在這裏介紹雙重差分法。
一、模型引入
假設現要修一條鐵路,其必然會有穿過的和沒有穿過的城市。現在我們想知道鐵路修好以後,被鐵路穿過的城市經濟增長是不是更快了?
爲了回答上面的問題,我們至少需要觀察兩期情況即修鐵路前(t=0)和修鐵路後(t=1)。同時我們設如果城市i被穿過,我們記Di=1,反之Di=0。
如上圖的處理效應即爲“修鐵路”這項政策的效應。
treat組(處理組):受政策干預——結果Di=1
control組(對照組):未受政策干預——結果Di=0
以上的關鍵在於處理組如果未受到政策干預,其時間效應或趨勢應該與控制組一樣。
二、前提條件
1.使用前提
(1)政策不能是“一刀切”類型,即存在受政策影響的實驗組和不受政策影響的對照組
(2)至少兩年的面板數據,如果是截面數據一般也別考慮了
2.模型前提
(1)平行趨勢(CT)假設:處理組和對照組有共同趨勢,在政策干預之前,處理組和控制組的結果效應的趨勢應該是一樣的。
(2)SUTVA條件:政策干預隻影響處理組,不會對控制組產生交互影響,或者政策干預不會產生外溢效應;
(3)線性形式條件:潛在結果變量同處理變量和時間變量滿足線性條件。
由此可見DID的使用條件較爲嚴苛,並不能隨意使用。
三、模型構造
du 表明了一刀切政策無法適用DID;dt表明了截面數據無法使用。
四、穩健性檢驗
爲了證明所有的效應是由政策實施所引起的,必須做穩健性檢驗,主要體現在兩個方面:
1.平行趨勢檢驗
如果是多年面板數據可以通過畫圖或者回歸的方法來檢驗平行趨勢假設。
(1)畫圖:畫出實驗組時期和對照組時期的時間趨勢圖,如果兩條線的走勢完全一致或基本一致,說明CT假設是滿足的。
(2)迴歸:將模型構造中dt項改爲“年份虛擬變量”,政策實施前有a年就有a個年份虛擬變量,以及與du相乘的a個交互項。此時交互項反映的是“政策實施前年份,實驗組和對照組的差異”。如果這a個交互項不顯著,即說明政策實施前實驗組和對照組不存在明顯的差別,從而滿足CT假設。一般,“都不顯著”可以稍微放鬆,即便存在一兩個顯著的情況,但只要a個交互項聯合不顯著,也是滿足CT假設。
2.安慰劑檢驗
安慰劑檢驗覈心思想即即虛構處理組進行迴歸。
第一步:選取政策實施之前的年份進行處理,例如,政策發生在2014年,研究區間爲2013-2015年。我們可以把研究區間向前移動到2011-2013年,並假定政策實施年份爲2012年,然後進行迴歸。
第二步:選取已知的並不受政策實施影響的羣組作爲處理組進行迴歸。
如果不同虛構方式下的DID估計量的迴歸結果依然顯著,說明原來的估計結果很有可能出現了偏誤。
此外還可以利用不同不同的對照組進行迴歸,看研究結論是否依然一致。或者選取一個完全不受政策干預影響的因素作爲被解釋變量進行迴歸,如果DID估計量的迴歸結果依然顯著,說明原來的估計結果很有可能出現了偏誤。
注:以上如果迴歸結果顯著,說明原結果是一定有問題的,而如果迴歸結果不顯著,並不一定能表明原結果沒問題。
五、Stata命令詳解
1.數據下載地址
http://dss.princeton.edu/training/Panel101.dta
2.數據背景介紹
歷史上A、B、C、D、E、F、G這7個地區非常相似,然而1994年後E、F和G三個地區(實驗組)頒佈了一項政策,其餘4個地區(控制組)沒有。
3.DID基準迴歸
*定義工作環境
cd C:\Users\Administrator\Desktop
*導入數據
use panel101,clear
*假設政策執行時間爲1994年,設置虛擬變量
gen time = (year >= 1994)&!missing(year)
*假設政策執行地爲大於4的地方,設置虛擬變量
gen treated = (country >4)&!missing(country)
*構建DID估計量,即時間和空間的交互項
gen did = time*treated
*第一種DID迴歸設計
reg y did time treated,r
顯然在10%水平上,政策實施有顯著的負效應
*第二種DID迴歸設計
reg y time##treated,r
同樣的在第二種方法中,無需設置交互項,結果是一樣的
*第三種DID迴歸設計
**安裝外部命令
ssc install diff
**估計DID
diff y, t(treated) p(time)
在第三種方法裏,直接使用diff命令,快速實現方法一的三步驟,結果一樣
4.平行趨勢檢驗
以上的基準迴歸只有當地區在政策前足夠相似才能夠保證DID提取的是政策的因果效應,所以研究者需要知道兩組地區在政策前有多大差異。實現這一目標的方法是將年份虛擬變量乘以實驗組虛擬變量,這一交互項就可以捕捉兩組地區在每一年份的差異。
如果兩組地區的確有着平行趨勢的話,那麼預期在1994年前的那些交互項的迴歸結果將不顯著,而1994年後的將顯著。
**生成年份虛擬變量與實驗組虛擬變量的交互項(此處選在政策前後各3年)
gen Dyear = year-1994
gen Before3 = (Dyear==-3&treated==1)
gen Before2 = (Dyear==-2&treated==1)
gen Before1 = (Dyear==-1&treated==1)
gen Current = (Dyear==0&treated==1)
gen After1 = (Dyear==1&treated==1)
gen After2 = (Dyear==2&treated==1)
gen After3 = (Dyear==3&treated==1)
**將以上交互項作爲解釋變量進行迴歸
xtreg y time treated Before3 Before2 Before1 Current After1 After2 After3 i.year, fe
est sto reg
可以看出Before3 Before2 Before1 的係數均不顯著,After1的係數負向顯著
**採用coefplot命令畫圖
ssc install coefplot
coefplot reg,keep(Before3 Before2 Before1 Current After1 After2 After3) vertical recast(connect) yline(0)
保留關鍵變量: keep(Before2 Before1 Current After1 After2 After3_)*
轉置: vertical*
係數連線,觀察動態效果: recast(connect)*
增加直線y=0: yline(0)*
結果發現係數在政策前的確在0附近波動,而政策後一年係數顯著爲負,但很快又回到0附近。這說明實驗組和控制組的確是可以進行比較的,而政策效果可能出現在頒佈後一年,隨後又很快消失。
六、參考資料
1.雙重差分模型的平行趨勢假定如何檢驗? —— coefplot命令來告訴你
2.那些年,我們用過的DID
3.DID與政策評估(附Stata實現)
4.【Stata教程】如何進行平行趨勢檢驗