"Stata"또는 "R"의 회귀 불연속 설계 그래프


10

Lee and Lemieux (p. 31, 2009)는 연구원이 회귀 불연속 설계 분석 (RDD)을 수행하면서 그래프를 제시 할 것을 제안합니다. 다음 절차를 제안합니다.

"... 일부 대역에 대한 및 쓰레기통 일부 번호 및 (가) 및 우측 기준치 왼쪽 각각 생각되는 쓰레기통 (구성하기 , ]에 대한 + , 여기서 "K 0 K 1 B 유전율 B의 K + 1 K = 1 , . . . , K = K 0 K 1 K = C - ( K 0 - K + 1 ) H .hK0K1bkbk+1k=1,...,K=K0K1bk=c(K0k+1)h.

c=cutoff point or threshold value of assignment variable
h=bandwidth or window width.

... 그런 다음 컷오프 지점의 왼쪽과 오른쪽의 평균 결과를 비교하십시오 ... "

.. 모든 경우에, 우리는 컷오프 지점의 양쪽에서 개별적으로 추정 된 quartic regression 모델의 픽팅 된 값을 보여줍니다.

내 질문은 우리 가 날카로운 RDD에 대한 할당 변수 (신뢰 구간 포함)에 대한 결과 변수의 그래프를 플로팅 Stata하거나 그 절차를 프로그래밍하는 방법입니다 R. 샘플 예제 Stata여기여기에 언급 되어 있습니다 (rd_obs로 rd 대체) 및 샘플 예 R여기에 있습니다 . 그러나 나는이 두 단계가 1 단계를 구현하지 않았다고 생각합니다. 두 모델 모두 원시 데이터와 플롯에 맞는 선이 있습니다.

신뢰 변수가없는 샘플 그래프 [Lee and Lemieux, 2009] 여기에 이미지 설명을 입력하십시오 미리 감사드립니다.


당신의 깃발에 반응하여, 당신의 질문을 되살리기위한 좋은 방법은 그것을 편집하고 현상금을 제공하는 것입니다 : 이것은 당신의 질문을 부딪 히고 더 많은 사람들이 그것에 관심을 갖도록 할 것입니다. 이 질문이 Stack Overflow에서 더 잘 처리 될 수 있다고 생각되면 알려 주시면 마이그레이션 해 드리겠습니다.
chl

이것을 스택 오버플로로 마이그레이션하고 싶습니다.
통계

1
불행히도이 질문은 너무 오래되어 스택 오버플로로 마이그레이션 할 수 없습니다. 나는 그것이 Cross Validated에 속한다고 생각하지만 스택 오버 플로우 ( 프로그래밍 측면 에 중점을두고 최소한의 재현 가능한 예 제공 )를 요청하려면 알려 주시면 여기서 닫을 것입니다.
chl

cmogram을 사용해야합니다 . 필요한 모든 것을 수행합니다.
Yan Song

답변:


10

점 에서 매끄럽게 임계 값 이하를위한 것 및 위를위한 것보다 2 도인 2 개의 국부 다항식을 수행하는 것과 크게 다른가 ? Stata의 예는 다음과 같습니다.Ki

use votex // the election-spending data that comes with rd

tw 
(scatter lne d, mcolor(gs10) msize(tiny)) 
(lpolyci lne d if d<0, bw(0.05) deg(2) n(100) fcolor(none)) 
(lpolyci lne d if d>=0, bw(0.05) deg(2) n(100) fcolor(none)), xline(0)  legend(off)

또는 lpoly smoothed 값과 표준 오류를을 사용하는 대신 변수로 저장할 수 있습니다 twoway. 아래 는 빈이고, 는 평활 평균이며, 는 표준 오차이며, 과 은 평활 결과에 대한 95 % 신뢰 구간의 상한과 하한입니다.S E U L 리터xsseulll

lpoly lne d if d<0, bw(0.05) deg(2) n(100) gen(x0 s0) ci se(se0)
lpoly lne d if d>=0, bw(0.05) deg(2) n(100) gen(x1 s1) ci se(se1)

/* Get the 95% CIs */
forvalues v=0/1 {
    gen ul`v' = s`v' + 1.95*se`v' 
    gen ll`v' = s`v' - 1.95*se`v' 
};

tw 
(line ul0 ll0 s0 x0, lcolor(blue blue blue) lpattern(dash dash solid)) 
(line ul1 ll1 s1 x1, lcolor(red red red) lpattern(dash dash solid)), legend(off)  

보시다시피, 첫 번째 줄의 선은 두 번째 줄의 선과 같습니다.


@Dimitry : 솔루션의 경우 +1 그러나 원시 값을 표시하는 산포도보다는 각 빈의 평균 값을 원합니다 (위의 스타 타 예제를 실행하십시오). CI는 훌륭합니다.
통계

1
무슨 말인지 잘 모르겠습니다. 각 빈에서 손으로 매끄럽게 다듬는 방법을 보여주는 코드를 추가했습니다. 그것이 당신이 찾고있는 것이 아니라면, 당신이 염두에두고있는 것을 더 자세히 설명하십시오. 내가 알 수있는 한,이 그래프는 일반적으로 원시 데이터와 평활 수단을 보여줍니다.
Dimitriy V. Masterov

Lee와 Lemieux의 인용 (p. 31, 2009) : "데이터를 그래프로 표시하는 표준 방법은 할당 변수 (여기서 d)를 여러 개의 빈으로 나누는 것입니다. (처리 된 것과 처리되지 않은 관측치가 같은 빈에서 함께 혼합되는 것을 피하기 위해). 그런 다음, 결과 변수의 평균값이 각 빈에 대해 계산되고 빈의 중간 점에 대해 그래프로 표시 될 수 있습니다. " 따라서 50 개의 빈이있는 경우 왼쪽과 오른쪽에 25 개의 데이터 포인트 만 있고 모든 원시 데이터는 아닙니다 (예 : 참조의 그래프 6 (b) : 문제가 업데이트 됨)
지표

1
지금은 분명하다! 커널에 동의합니다. 하지만 지금은 0 도가 아니라고 확신합니까? 이는 동일 가중치 평균 평활에 해당합니다.
Dimitriy V. Masterov

1
나는 그것이 일반적인 커널과 0 차 다항식을 가진 lpoly에 해당한다고 믿는다
Dimitriy V. Masterov

7

통조림 알고리즘은 다음과 같습니다. Calonico, Cattaneo 및 Titiunik은 최근 강력한 대역폭 선택 절차를 제안했습니다. 그들은 Stata와 R 모두에 대한 이론적 인 작업 구현했으며 플롯 명령도 제공합니다. 다음은 R의 예입니다.

# install.packages("rdrobust")
library(rdrobust)
set.seed(26950) # from random.org
x<-runif(1000,-1,1)
y<-5+3*x+2*(x>=0)+rnorm(1000)
rdplot(y,x)

그러면이 그래프가 나타납니다. 여기에 이미지 설명을 입력하십시오


안녕하세요, CI를 추가하는 방법?
Krantz
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.