斷點回歸由Thistlewaite and Campbell(1960)首次使用,但直到1990年代末才引起經濟學家的重視。
Thistlethwaite、Campbell於1960年首次提出使用斷點回歸設計研究處理效應, 在該文中他們的目的是研究獎學金對於未來學業的影響, 學生是否獲得獎學金取決於考試的分數。由於獎學金由學習成績決定,故成績剛好達到獲獎標準與差一點達到的學生具有可比性。如果考試分數大於獲獎標準分數, 則進入處理組;如果考試分數小於獲獎標準分數, 則進入控制組。因此處理變量在獲獎標準分數處形成了一個斷點, 該研究設計的主要思想是可以利用靠近這一斷點附近的樣本來有效估計處理效應。
Angrist and Lavy(1999)在研究班級規模對成績的影響時,利用以色列教育系統的一項制度進行斷點回歸;該制度限定班級規模的上限為40名學生,一旦超過40名學生(比如41名學生),則該班級被一分為二。
此後30年, 該方法並未引起學術界的重視,直到1990年以後, 斷點回歸設計開始被應用於各種領域,並且近年來成為因果分析和政策評估領域最重要的研究方法。
Hahn et al(2001)提供了斷點回歸在計量經濟學理論基礎。目前,斷點回歸在教育經濟學、勞動經濟學、健康經濟學、政治經濟學以及區域經濟學的應用仍方興未艾。參見Imbens and Lemieux(2008),Van Der Klaauw(2008)以及Lee and Lemieux(2010)的文獻綜述。
斷點回歸設計是一種準自然實驗, 其基本思想是存在一個連續變量, 該變量能決定個體在某一臨界點兩側接受政策幹預的概率, 由於X在該臨界點兩側是連續的,因此個體針對X的取值落入該臨界點任意一側是隨機發生的, 即不存在人為操控使得個體落入某一側的概率更大, 則在臨界值附近構成了一個準自然實驗。一般將該連續變量X稱為分組變量 (assignment variable) 。
斷點回歸的基本命令是rd,另外,還有一些其他命令,例如rdrobust、rdlocrand、rddensity等等。本文主要介紹rdrobust。
1、rdrobust:
rdrobust有兩個配套命令:rdbwselect用於帶寬選擇,rdplot用於RD繪圖(詳細信息請參見Calonico、Cattaneo和Titiunik [2015a])。
下載安裝方法為:
net install rdrobust , from ( http : //www-personal.umich.edu/~cattaneo/rdrobust)net install rdrobust,from(htp:// www-personal umich. edu/cattaneo/software/rdrobust/stata) replacerdrobust depvar runvar [if] [in] [, c(cutoff) p(pvalue) q(qvalue) deriv(dvalue) fuzzy(fuzzyvar [sharpbw]) covs(covars) kernel(kernelfn) weights(weightsvar) h(hvalueL hvalueR) b(bvalueL bvalueR) rho(rhovalue) scalepar(scaleparvalue) bwselect(bwmethod) scaleregul(scaleregulvalue) vce(vcemethod) level(level) all]語法含義為:
depvar可以是結果變量、原因變量或其他協變量
runvar是參考變量
其他可選項。
c(cutoff) specifies the RD cutoff. The default is c(0).
c(cutoff)用於設定斷點位置,默認為0。
p(pvalue) specifies the order of the local polynomial used to construct the point estimator. The default is p(1) (local linear regression). p(pvalue)設定多項式階數,默認為1,局部線性回歸。
q(qvalue) specifies the order of the local polynomial used to construct the bias correction. The default is q(2) (local quadratic regression).
covs(covars) 表示加上協變量
kernel(kernelfn) specifies the kernel function used to construct the local polynomial estimators. kernelfn may be triangular, epanechnikov, or uniform. The default is kernel(triangular).即表示
設定多項式擬合時的核函數,kernelfn可以有三種選擇:三角核函數 triangular、Epanechnikov核函數、矩形核函數 uniform,默認為三角核。
level(level)設置置信水平,默認為level(95).
h(hvalueL hvalueR)指定主要帶寬h,分別用在斷點的左邊和右邊。如果只指定一個值,則對該值使用左右兩邊。如果沒有指定,則由相應的命令rdbwselect計算帶寬h。
b(bvalueL bvalueR)指定在斷點左側和右側分別使用的偏差調整帶寬b。如果只指定一個值,則對該值使用雙方。如果沒有指定,則由相應的命令rdbwselect計算帶寬b。
一般帶寬和偏差帶寬不加上,系統由相應的命令rdbwselect計算帶寬。
rho(rhovalue)指定的值,使得偏置帶寬b等於b=h/rho。如果指定了h而沒有指定b,那麼默認值是(1)。
scalepar(scaleparvalue)指定感興趣的RD參數的調整項。當感興趣的總體參數涉及已知的乘法時,此選項非常有用子(例如,sharp kink RD)。默認是scalepar(1)(沒有縮放)。
all表示程序rdrobust報告三個不同的程序:i)用傳統方差估計進行常規RD估計;ii)使用傳統方差估計器進行偏差校正的RD估計;和iii)帶有穩健方差估計的偏差校正RD估計。
2、rdrobust操作應用
*-使用 David S.Lee (2007) 參議院選舉的數據use "https://gitee.com/arlionn/data/raw/master/data01/rdrobust_rdsenate.dta", clearuse "rdrobust_senate.dta", clear editdesc
**Robust RD estimation using MSE bandwidth selection procedurerdrobust vote marginrdrobust vote margin, h(15)結果為:
rdplot depvar runvar [if] [in] [, c(cutoff) p(pvalue) kernel(kernelfn) weights(weightsvar) h(hvalueL hvalueR) nbins(nbinsvalueL nbinsvalueR) binselect(binmethod) scale(scalevalueL scalevalueR) ci(cilevel) shade support(supportvalueL supportvalueR) genvars graph_options(gphopts) hide]語法含義為:
c(cutoff) specifies the RD cutoff. The default is c(0).
c(cutoff)用於設定斷點位置,默認為0。
p(pvalue) specifies the order of the local polynomial used to construct the point estimator. The default is p(1) (local linear regression). p(pvalue)設定多項式階數,默認為1,局部線性回歸。
kernel(kernelfn) specifies the kernel function used to construct the global polynomial estimators. kernelfn may be triangular, epanechnikov, or uniform. The default is kernel(uniform) (that is, equal or no weighting to all observations on the support of the kernel)..即表示設定多項式擬合時的核函數,kernelfn可以有三種選擇:三角核函數 triangular、Epanechnikov核函數、矩形核函數 uniform,默認為矩形核。
h(hvalueL hvalueR)指定主要帶寬h,分別用在斷點的左邊和右邊。如果只指定一個值,則該值在兩邊都使用。如果指定了兩個帶寬,則第一個帶寬用於斷點左側的帶寬,第二個帶寬用於斷點右側的數據。如果沒有指定,則選擇它來跨數據的全部支持。
nbins(##)設定劃分的區間數,提供兩個數值,則分別為左右的區間數;提供一個數值,則斷點左右使用共同的區間數。
ci( bilevel)可以根據設定的ci-level畫出每個區間擬合點的置信區間,選加 shade置信區間用陰影表示。
shade:指定可選的圖形選項,以用陰影區域替換置信區間。
support(supportvalueL supportvalueR)指定一個可選的擴展變量支持,用於構建容器。默認是sample範圍。
選項generate()可以將劃分的區間以及擬合的數值保存在相應的變量中
rdplot_id為每個觀察結果存儲一個惟一的區間 ID。
rdplot_N將每個觀察值對應的bin中存儲的觀察值數量。
rdplot_min_bin存儲每個觀察值的下端值。
rdplot_max_bin存儲每個觀察值的上端值。
rdplot_mean_bin存儲每個觀察對應的中點位置
rdplot_mean_x將運行變量的樣本均值存儲
rdplot_mean_y將結果變量的樣本均值存儲
rdplot_se_y將結果變量的平均值的標準差存儲在每個觀察值對應的bin中。
rdplot_ci_l將結果變量的樣本均值的置信區間的下端值存儲在每個觀察對應的bin中。
rdplot_ci_r將結果變量的樣本均值的置信區間的上端值存儲在每個觀察對應的bin中。
rdplot_hat_y存儲全局多項式估計器給出的結果變量的預測值
graph_options(gphopts)繪製圖形命令的圖形選項。
hide省略了RD圖形
2、rdplot操作應用
*-使用 David S.Lee (2007) 參議院選舉的數據use "https://gitee.com/arlionn/data/raw/master/data01/rdrobust_rdsenate.dta", clearuse "rdrobust_senate.dta", clear editdesc
Basic specification with titlerdplot vote margin, graph_options(title(RD plot))
Quadratic global polynomial with confidence bandsrdplot vote margin, p(2) ci(95) shaderdbwselect depvar runvar [if] [in] [, c(cutoff) p(pvalue) q(qvalue) deriv(dvalue) fuzzy(fuzzyvar [sharpbw]) covs(covars) kernel(kernelfn) weights(weightsvar) bwselect(bwmethod) scaleregul(scaleregulvalue) vce(vcemethod) all]語法含義為:
c(cutoff)指定斷點位置。默認值是c(0)。
p(pvalue)指定用來構造點估計器的局部多項式的格式。默認值是p(1)(局部線性回歸)。
q(qvalue)指定用於構造偏差校正的局部多項式的階數。默認值是q(2)(局部二次回歸)。
deriv(dvalue)指定要估計的回歸函數導數的順序。默認值是deriv(0)(如果指定了fuzzy(),則為sharp RD或fuzzy RD)。默認為0,即斷點回歸,取1則為彎折回歸設計
fuzzy(fuzzyvar [sharpbw])指定用於實現模糊RD估計的處理狀態變量(如果指定了deriv(1),則為模糊斷點。默認值是sharp RD 設計。如果設置了sharpbw選項,則使用sharp RD模型的帶寬選擇過程來執行模糊RD估計。
covs(covars)指定用於估計和推斷的額外協變量。
kernel(kernelfn)指定用來構造局部多項式估計的內核函數。kernelfn可以是三角形、epanechnikov或均勻的。默認值是內核(三角形)。
weights(weightsvar)指定用於估計過程的可選加權的變量
bwselect(bwmethod)指定要使用的帶寬選擇過程。具體實施方法見Calonico, Cattaneo, and Titiunik (2014b); Calonico, Cattaneo, and Farrell (Forthcoming); and Calonico et al. (2016)以及相關的軟體文章。bwmethod可以是下列方法之一:
mserd指定一個常見的均方誤差(MSE)——用於RD處理效果估計的最優帶寬選擇器。這是默認設置。
msetwo為RD處理效果估計器指定了兩個不同的mse最優帶寬選擇器(低於和高於截止)。
msesum為回歸估計的和指定了一個通用的mse -最優帶寬選擇器(與之相對的是其差值)。
msecomb1指定min(mserd, msesum)。
msecomb2分別為斷開的每一端指定中值median(msetwo、mserd、msesum)。
cerrd指定一個常見的覆蓋率錯誤率(CER)——用於RD處理效果估計器的最優帶寬選擇器。
certwo為RD處理效果估計器指定了兩個不同的ceri最優帶寬選擇器(低於和高於截止)。
cersum為回歸估計值的和指定了一個通用的ceri -optimal帶寬選擇器(與之相對)。
cercomb1指定min(cerrd, cersum)。
cercomb2分別為邊界的每一側指定median(certwo、cerrd、cersum)。
scaleregul(scaleregulvalue)指定添加到帶寬選擇器分母上的正則化項的比例因子。設置scaleregul(0)將刪除來自帶寬選擇器的正則化項。默認是scaleregul(1)。
vce(vcemethod)指定了用於計算方差-協方差矩陣估計器的過程,即標磚誤差的類型。vce(vcemethod)默認是vce(nn 3).
all指定rdbwselect報告所有可用帶寬選擇過程。
2、rdbwselect操作應用
*-使用 David S.Lee (2007) 參議院選舉的數據use "https://gitee.com/arlionn/data/raw/master/data01/rdrobust_rdsenate.dta", clearuse "rdrobust_senate.dta", clear editdesc
MSE bandwidth selection procedurerdbwselect vote margin
All bandwidth selection proceduresrdbwselect vote margin, all