可有償投稿計量經濟圈,計量相關則可數據庫
郵箱:econometrics666@sina.cnide
全部計量經濟圈方法論叢的do文件, 微觀數據庫和各類軟件都放在社羣裏.歡迎到因果推斷研究小組交流訪問.想要完整do file和數據集的請看文後獲取方式.優化
今天,咱們「因果推斷研究小組」將爲計量經濟圈的圈友引薦一個用得比較多的因果推斷方法「synthetic control method」(SCM)。咱們聽到最多的例子是,加州於1989年實施的禁菸法案, 但願看看該法案是否下降了菸草的消費量。由於這個禁菸法案只在加州範圍內有政策效果,所以傳統的DID方法就沒有那麼好用了,由於這裏的實驗組就只有一個成員——加州。ui
對於這種問題,咱們迫切想要獲得因果關係,所以合成控制法就出現了而且獲得快速推廣。SCM的基本思想是,使用其餘38個未實施禁菸法案的州的加權平均來合成一個「加州」,經過對比真實的加州和合成的加州在1989年禁菸法案以後香菸消費量的差別來識別出政策效應。code
在合成控制法中,有一些關鍵變量比較重要,所以值得咱們提出來單獨說一說。如下就是咱們使用一個吸菸數據集,就加州1989年實施的禁菸法案對該州香菸消費量(銷售量)的影響所作的合成控制法。blog
synth cigsale beer(1984(1)1988) lnincome retprice age15to24 cigsale(1988) cigsale(1980) cigsale(1975), trunit(3) trperiod(1989) fig replace keep(resout)圖片
上面程序中的一些變量解釋
1.因變量y:cigsale(人均香菸銷售量,包/年;
2.自變量x:beer(人均啤酒消費量), lnincome(人均GDP), retprice(香菸零售價), age15to24 (15-24歲人口的比重), cigsale(1988),cigsale(1980), cigsale(1975)是1988,1980和1975年的人均香菸銷售量;
3.trunit(3):我們的政策影響組(加州), 數據中的3=california;
4.trperiod(1989):禁菸法案從1989年開始實施;
5.fig:把合成控制圖展現出;ci
6.keep(resout):把最後的合成結果輸出到directoryit
咱們把經過SCM迴歸後所生成的結果數據展現出來。從中,咱們能夠看到,合成的加州人均香菸消費量是經過必定權重係數將其餘對照州的人均香菸消費量組合起來的。咱們看到colorado州給以的權重爲0.285(最大),由於這個州與我們的政策影響州(加州)在我們的政策開始前的特徵變量x上比較接近——表明了colorado州更加像政策影響組裏的加州。io
注意:實質上,SCM在政策實施以前尋找最優的權重係數的過程,實際上運用了咱們以前經常運用的「Matching」方法。在尋找最優的weight過程,等因而在構造一個|Y1t(treated)-W*Yit(scm)|距離,而後讓我們的預測值在預測的過程當中出現最小的均方偏差值(MSPE)。
在沒有使用合成控制法的時候,咱們比較一下加州和其餘州的人均香菸消費量的時間趨勢圖(其餘州的值是取的平均值)。很明顯,在1989年禁菸法案尚未出臺以前,二者就出現了很大的差距,此時,咱們不可能去識別出無噪音的因果關係。因此,咱們須要經過匹配方法,去保證在1989年以前我們的控制組與政策影響組幾乎沒有差異,這樣纔可以可以對後面的政策效應作出清晰的判斷。
如下就是我們最關心的圖片,由於他可以最直觀地告訴咱們,在政策開始實施以前,在合成的加州里的人均香菸消費量與實際加州的人均香菸消費量幾乎完美重合。一旦在政策實施的1989年以前,合成的加州與實際加州的人均香菸消費量較爲一致,那麼咱們在1989年以後所出現的二者背離情形就意味着政策效應的顯現。
圖裏面清楚地顯示着,在1989年禁菸法案以後,實際加州的人均香菸消費量遠比合成的加州的人均香菸消費量要低不少,且有隨着時間有不斷擴大的趨勢。這就意味着,禁菸法案確實對於加州的人均香菸消費量起到了偌大的抑制做用。
上面的程序並無完整地將scm展現出來,下面咱們進一步添加二個新的option:xperiod和nested。對於這兩個選項的詳細用處,咱們列在了下方。
synth cigsale beer lnincome retprice age15to24 cigsale(1988) cigsale(1980) cigsale(1975) , trunit(3) trperiod(1989) xperiod(1980(1)1988) nested
上面程序中的一些新變量解釋
1.xperiod(1980(1)1988):取解釋變量beer, lnincome, retprice, age15to24爲1980,1981,....1988年的平均值;
2.nested:嵌套,可以幫助咱們找到優化擬合,代價是長時間的計算
在SCM過程當中,下方的結果比較重要,由於咱們可從中知道不少重要信息,好比控制組,自變量,用來預測的年份等。
下面這個圖是咱們作的安慰劑檢驗:就是對這39個州(包括加州)分別作一個SCM,而後得到政策處理效應(實際的人均香菸消費量minus合成的香菸消費量)。這張圖片裏的黃顏色線條就是加州做爲政策影響組所獲得的政策效應。從圖裏,咱們能夠看到,在1989年以前,實際的cigsale與合成的cigsale幾乎是如出一轍的(gap圍繞在0上下)。
然而,對於以其餘38個州做爲政策影響組的gap在1989年以前沒有以加州做爲政策影響組的gap小,何況加州做爲政策影響組在1989年以後有明顯的降低趨勢,這不得不讓咱們思考是否是有什麼政策效應出現,因此安慰劑檢驗意味着我們的加州禁菸法案是有效的。
在1970-1989年期間(政策效應出現以前),當把其餘38個州看成政策影響組時所獲得的MSPE超過當加州做爲政策影響組時所獲得的MSPE 20倍時的所謂「outliers」剔除時,咱們會獲得以下看起來沒有那麼雜亂無章的政策效應趨勢圖。不過,仍是這條黃顏色的線條非同尋常,由於在1989年政策出臺以前,合成控制組與政策效應影響組差很少一致,而在政策出臺後二者有向下的趨勢,所以代表加州禁菸政策的出臺確實抑制了人均的香菸消費量。
**安慰劑檢驗的程序------------- forval i=1/39{ qui synth cigsale retprice cigsale(1988) cigsale(1980) cigsale(1975), /// xperiod(1980(1)1988) trunit(`i') trperiod(1989) keep(synth_`i', replace) } //對全部39個州分別進行SCM(把39個州分別做爲政策影響組) forval i=1/39{ use synth_`i', clear rename _time years gen tr_effect_`i' = _Y_treated - _Y_synthetic keep years tr_effect_`i' drop if missing(years) save synth_`i', replace } //獲得SCM的政策效應 use synth_1, clear forval i=2/39{ qui merge 1:1 years using synth_`i', nogenerate } //把全部39個政策效應合併起來 local lp forval i=1/39 { local lp `lp' line tr_effect_`i' years, lcolor(gs12) || twoway `lp' || line tr_effect_3 years, lcolor(orange) legend(off) xline(1989, lpattern(dash)) } //直接畫圖就好
①還不是計量經濟圈社羣羣友的,若是對這篇文章完整的do file和數據有須要,請先進入計量經濟圈社羣而後在裏面聯繫獲取。
②是計量經濟圈社羣的羣友的,若是對這篇文章完整的do file和數據有須要,請將此文轉發到朋友圈而後公衆號後臺聯繫獲取。
因果推斷研究小組保留權利