Wykresy w projektowaniu nieciągłości regresji w „Stata” lub „R”

10

Lee i Lemieux (s. 31, 2009) sugerują badaczowi przedstawienie wykresów podczas analizy analizy nieciągłości regresji (RDD). Sugerują następującą procedurę:

”... w pewnym paśmie , i pewnej liczby pojemników i na lewo i na prawo od wartości odcięcia odpowiednio idea jest budowa zbiorników ( , ] dla + gdzie "K 0 K 1 b k b k + 1 k = 1 , . . . , K = K 0 K 1 b k = c - ( K 0 - k + 1 ) godz .hK0K1bkbk+1k=1,...,K=K0K1bk=c(K0k+1)h.

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

... następnie porównaj średnie wyniki po lewej i prawej stronie punktu odcięcia ... "

... we wszystkich przypadkach pokazujemy także dopasowane wartości z modelu regresji kwartalnej oszacowane osobno po każdej stronie punktu odcięcia ... (s. 34 tego samego artykułu)

Moje pytanie brzmi: jak zaprogramować tę procedurę w Statalub Rdo wykreślania wykresów zmiennej wynikowej względem zmiennej przypisania (z przedziałami ufności) dla ostrego RDD. Przykładowy przykład Statajest wymieniony tutaj i tutaj (zamień rd na rd_obs) i próbka przykład w Rjest tutaj . Myślę jednak, że oba nie wdrożyły kroku 1. Uwaga: oba mają nieprzetworzone dane wraz z dopasowanymi liniami na wykresach.

Przykładowy wykres bez zmiennej ufności [Lee i Lemieux, 2009] Z wprowadź opis zdjęcia tutaj góry dziękuję.

Metryka
źródło
W odpowiedzi na twoją flagę dobrym sposobem na ożywienie twojego pytania jest jego edycja i zaoferowanie nagrody: To podbije twoje pytanie i zainteresuje więcej osób. Jeśli uważasz, że to pytanie może być lepiej obsłużone w przypadku przepełnienia stosu, daj nam znać, a my możemy je dla Ciebie migrować.
chl
Chcę migrować to do przepełnienia stosu.
Metryki
1
Niestety to pytanie jest za stare, aby można je było przenieść do Przepełnienia stosu. Wierzę, że należy do Cross Validated, ale jeśli chcesz zapytać o przepełnienie stosu (kładąc nacisk na aspekt programowania i zapewniając minimalny powtarzalny przykład ), daj mi znać, a zamknę go tutaj.
chl
Powinieneś użyć cmogramu . Robi wszystko, czego potrzebujesz.
Yan Song,

Odpowiedzi:

10

K.ja

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)

twowayxssmiulll

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)  

Jak widać, linie na pierwszym wykresie są takie same jak na drugim.

Dimitriy V. Masterov
źródło
@Dimitry: +1 za rozwiązanie. Chciałbym jednak mieć średnią wartość dla każdego bin (proszę uruchomić przykładowy przykład powyżej) zamiast wykresu punktowego pokazującego surowe wartości. CI jest świetny.
Metryki
1
Nie jestem do końca pewien, co masz na myśli. Dodałem kodowanie pokazujące, w jaki sposób ręcznie wygładzasz środki w każdym pojemniku. Jeśli nie tego szukasz, wyjaśnij bardziej szczegółowo, co masz na myśli. O ile mi wiadomo, te wykresy zwykle pokazują surowe dane i wygładzone środki.
Dimitriy V. Masterov
Cytując Lee i Lemieux (s. 31, 2009): „Standardowym sposobem wykresowania danych jest podzielenie zmiennej przypisania (tutaj) na kilka przedziałów, upewniając się, że po obu stronach granicy są dwa oddzielne przedziały punkt (aby uniknąć pomieszania razem leczonych i nietraktowanych obserwacji w tym samym przedziale). Następnie średnią wartość zmiennej wynikowej można obliczyć dla każdego przedziału i porównać z punktami środkowymi przedziałów ". Tak więc, jeśli jest 50 przedziałów, będziemy mieli tylko 25 punktów danych po lewej i prawej stronie, a nie wszystkie nieprzetworzone dane (np. Wykres 6 (b) odnośnika: zaktualizowano w pytaniu)
Metryki
1
Teraz jest jasne! Zgadzam się na jądro. Ale czy jesteś pewien, że teraz nie ma stopnia 0? Odpowiadałoby to równo ważonemu środkowemu wygładzeniu.
Dimitriy V. Masterov
1
Uważam, że odpowiada to lpoly z regularnym jądrem i wielomianem stopnia 0
Dimitriy V. Masterov
7

Oto konserwowany algorytm. Calonico, Cattaneo i Titiunik niedawno zaproponowały procedurę niezawodnego wyboru przepustowości. Zaimplementowali oni swoją pracę teoretyczną zarówno dla Staty, jak i R. Zawiera ona także polecenie fabuły. Oto przykład w 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)

To da ci ten wykres: wprowadź opis zdjęcia tutaj

Durden
źródło
Cześć, jak dodać CI?
Krantz