RDD: 斷點回歸命令rdrobust(附rdbwselect、rdplot)及Stata實現

2021-03-02 計量經濟學服務中心

斷點回歸由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) replace

 rdrobust 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) shade

   rdbwselect 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

相關焦點

  • 再談斷點回歸 (RDD):命令rdrobust、 rdbwselect、rdplot及Stata實現
    >第二部分   優秀中文論文解讀第三部分   斷點回歸命令介紹以及操作案例3.1   rdrobust3.2   rdplot3.3   rdbwselect 第三部分  斷點回歸命令介紹以及操作案例斷點回歸的基本命令是rd,另外,還有一些其他命令,例如rdrobust、rdlocrand,rddensity等等。
  • 斷點回歸 (RDD):命令rdrobust、 rdbwselect、rdplot及Stata實現
    斷點回歸的歷史發展第二部分   優秀中文論文解讀第三部分   斷點回歸命令介紹以及操作案例3.1   rdrobust3.2   rdplot 第三部分  斷點回歸命令介紹以及操作案例斷點回歸的基本命令是rd,另外,還有一些其他命令,例如rdrobust、rdlocrand,rddensity等等。
  • Stata:斷點回歸分析設計
    斷點回歸的基本命令是rd,另外,還有一些其他命令,例如rdrobust、rdlocrand、rddensity等等。本文主要介紹rdrobust。1、rdrobust:rdrobust有兩個配套命令:rdbwselect用於帶寬選擇,rdplot用於RD繪圖(詳細信息請參見Calonico、Cattaneo和Titiunik [2015a])。
  • Stata: 斷點回歸 (RDD) 教程
    為此,我們可以利用擬合方法,對分配點左右分別擬合,通過觀察兩側擬合線的的差異來更容易推測跳躍現象是否發生RDD分析裡提供了rdplot命令處理這項工作。下圖中分別列出了利用散點圖、 rdplot 命令 + 線性擬合、 rdplot命令 + 二階多項式擬合圖和rdplot命令 + 三階多項式擬合圖的結果。
  • Stata:斷點回歸分析教程
    (估計跳躍值和顯著性)首先我們導入數據,輸入命令如下:在進行斷點回歸(RD)設計時,樣本數據需要滿足一定的前提條件,比如,斷點兩側除斷點(Cutoff)處理效應外,其他因素需保持平衡(滑)以及不存在Selective Sorting。
  • RDD:斷點回歸可以加入控制變量嗎?
    引言斷點回歸 (RDD) 由於其依賴的假設較弱,並可以為局部政策效應提供穩健的估計和推斷,故被廣泛應用於實證研究中。在斷點回歸中,若使用最小二乘法估計,研究者通常會加入不受政策影響的協變量,如人口統計特徵;而使用非參數局部多項式法,研究者大都不考慮協變量,這使得估計量並不總是參數的一致估計。
  • 小白學統計|面板數據分析與Stata應用筆記(十一(終))
    由於此回歸存在一個斷點,所以稱為"斷點回歸"或"斷點回歸設計"。對上述方程(5)進行斷點回歸的估計可能會出現兩個問題。Stata的命令rd,默認使用IK法確定最優帶寬;命令rdrobust提供CCT最新多種不同的最優帶寬計算方法選項(mserd、cerrd,默認為mserd)。斷點回歸設計也需要進行穩健性檢驗,由於斷點回歸在操作上存在不同選擇,實踐中一般建議同時匯報以下四種情形,以保證穩健性。
  • 斷點回歸(RD)學習手冊(包含設計前提條件內生分組等顯著性檢驗、精確斷點&模糊斷點等全套標準操作)
    stata斷點回歸命令有相關的操作選項。另外還有圖形選擇(在最優帶寬處畫線),可以考慮加協變量進行選擇。▍5、檢驗其他影響結果變量的因素(協變量),在斷點處是否存在跳躍檢驗協變量在斷點處是否存在跳躍,若是存在跳躍,說明該協變量的條件密度函數在斷點處不是連續的,需要剔除。若將存在跳躍的協變量剔除。
  • 斷點回歸前沿-多斷點RDD
    計量百科·資源·乾貨:斷點回歸由Thistlewaite and Campbell(1960)首次使用,但直到1990年代末才引起經濟學家的重視。因此處理變量在獲獎標準分數處形成了一個斷點, 該研究設計的主要思想是可以利用靠近這一斷點附近的樣本來有效估計處理效應。Angrist and Lavy(1999)在研究班級規模對成績的影響時,利用以色列教育系統的一項制度進行斷點回歸;該制度限定班級規模的上限為40名學生,一旦超過40名學生(比如41名學生),則該班級被一分為二。
  • Stata:斷點回歸 (RDD)實用指南
    斷點回歸設計(Regression Discontinuity Design, RDD)最早是由Thistlethwaite and Campbell
  • 【文獻複製】用最新款rdrobust複製經典文獻
    rdrobust程序來源:http://sites.googole.com/repackages/rdrobust/stata數據來源
  • Stata:滾動回歸的五個命令-rolling
    滾動窗口回歸2. rollreg 命令3. rolling 命令4. rolling2 命令5. asreg 命令6. 參考文獻7.在滾動回歸之前,必須要 tsset 或 xtset 聲明時間變量。當使用 rolling 命令時,window(#) 選項是必須的,其含義是每次回歸的窗口大小。
  • 450年的葡萄牙殖民主義在印度:傳教士,教育,和性別的根源|附地理斷點回歸設計GRD(空間斷點回歸設計SRD)匯總
    關鍵詞:殖民主義,性別不平等的根源,男性偏愛,文化與制度,印度,葡萄牙帝國,地理斷點回歸設計(GRDD),空間RDD。:新晉克拉克獎得主Dell地理斷點論文技術分析III:ArcGIS地理數據導入stata形成計算數據等新晉克拉克獎得主Dell地理斷點論文技術分析II:ArcGIS-3D與R語言參數畫黑白和彩圖|附技術分析III部分stata資料新晉克拉克獎得主Dell的地理斷點論文技術分析I:ArcGIS-Python地理數據處理,biprobit
  • 一文收藏stata14&15小抄:常用命令匯總
    Basic stata command 本節主要對stata一些基礎命令例如導入導出和描述性分析以及創建新變量進行學習。圖1.4 stata命令語法格式圖1.9  創建新變量 命令gene2   stata數據轉換 Data Transformation本節主要對stata
  • Stata15.0中文版正式發布!又要騙我去學習了
    來源:stata官網,https://www.stata.com/new-in-stata/chinese-interface
  • Stata+R:門檻回歸教程
    進行回歸分析,一般需要研究係數的估計值是否穩定。很多經濟變量都存在結構突變問題,使用普通回歸的做法就是確定結構突變點,進行分段回歸。這就像我們高中學習的分段函數。但是對於大樣本、面板數據如何尋找結構突變點。所以本文在此講解面板門限回歸的問題,門限回歸也適用於時間序列。
  • 【重發】面板門檻模型-stata命令xthreg介紹
    目前,Stata14沒有官方命令可以估計門檻模型或者面板門檻模型,最新的Stata15加入了估計門檻模型的功能,但依然不能估計面板門檻模型。所以,一般我們還是藉助外部命令,在Stata14版本下估計面板門檻模型。一、命令介紹目前面板門限回歸有兩個命令。
  • 我就是要R輸出Stata的outreg2和estout一樣的回歸表格!
    當然,手動一定的方法是使用諸如stargazer,outreg,xtable之類的包將回歸結果整理為letex代碼,手動在latex中編譯(通過sumlime操作也很方便)。但,我就喜歡交互式編程,就喜歡在數據整理和分析的過程中像stata的estout命令輸出表格一樣的結果,儘管不可直接列印,但各個參數都在表格的恰當位置,稍微手工調整一下節課。而不是knit來knit去的。
  • 人生苦短,我學stata
    課程內容涵蓋空間計量、因果推斷計量方法、斷點回歸為了幫助大家全面系統的掌握stata,我們在一貫堅持高水平授課辦會的基礎上,特別打造「小班教學、理論與軟體並重、精品課程解析」的課程培訓亮點,現推出2021年高級計量及Stata應用研討班!截至目前,計量經濟學服務中心已經在西安、北京、上海、廣州等地成功舉辦了15場stata高級班,並在深圳南方科技大學舉辦了一場stata編程研討班。
  • stata常用命令集
    中summarize所計算出來的峰度skewness和偏度kurtosis有問題,與ECELL和SPSS有較大差異,建議不採用stata的結果。)list in -20/l(l表示last one,-20表示倒數第20個樣本,該命令列出了從倒數第20個到倒數第一個樣本的各變量值)step3.用replace命令替換極端值replace x1=?