Diagramme im Regressionsdiskontinuitätsdesign in „Stata“ oder „R“


10

Lee und Lemieux (S. 31, 2009) schlagen dem Forscher vor, die Diagramme während der Regressionsdiskontinuitätsdesignanalyse (RDD) zu präsentieren. Sie schlagen das folgende Verfahren vor:

"... für eine gewisse Bandbreite und für eine bestimmte Anzahl von Bins K 0 und K 1 links und rechts vom Grenzwert besteht die Idee darin, Bins ( b k , b k + 1 ] für k zu konstruieren = 1 , . . . , K = K 0 + K 1 , wobei b 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.

... dann vergleiche die mittleren Ergebnisse links und rechts vom Grenzwert ... "

..in allen Fällen zeigen wir auch die angepassten Werte aus einem quartären Regressionsmodell, das auf jeder Seite des Grenzwerts separat geschätzt wird ... (S. 34 desselben Papiers)

Meine Frage ist, wie wir diese Prozedur in Stataoder Rzum Zeichnen der Diagramme der Ergebnisvariablen gegen die Zuweisungsvariable (mit Konfidenzintervallen) für die scharfe RDD programmieren. Ein Beispielbeispiel in Statawird hier und hier erwähnt (rd durch rd_obs ersetzen) und ein Beispiel Beispiel in Rist hier . Ich denke jedoch, dass beide den Schritt 1 nicht implementiert haben. Beachten Sie, dass beide die Rohdaten zusammen mit den angepassten Linien in den Plots haben.

Beispieldiagramm ohne Konfidenzvariable [Lee und Lemieux, 2009] Geben Sie hier die Bildbeschreibung ein Vielen Dank im Voraus.


Als Antwort auf Ihre Flagge können Sie Ihre Frage am besten wiederbeleben, indem Sie sie bearbeiten und ein Kopfgeld anbieten: Dies wird Ihre Frage stoßen und mehr Menschen für sie interessieren. Wenn Sie der Meinung sind, dass diese Frage bei Stack Overflow besser beantwortet werden kann, lassen Sie es uns wissen und wir können sie für Sie migrieren.
Chl

Ich möchte, dass dies zu Stack Overflow migriert wird.
Metriken

1
Leider ist diese Frage zu alt, um auf Stack Overflow migriert zu werden. Ich glaube, es gehört zu Cross Validated, aber wenn Sie nach Stack Overflow fragen möchten (wobei der Schwerpunkt auf dem Programmieraspekt liegt und ein minimal reproduzierbares Beispiel bereitgestellt wird ), lassen Sie es mich wissen und ich werde es hier schließen.
Chl

Sie sollten cmogram verwenden . Es macht alles was Sie brauchen.
Yan Song

Antworten:


10

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)

twowayxsseulll

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)  

Wie Sie sehen können, sind die Linien im ersten Diagramm dieselben wie im zweiten.


@Dimitry: +1 für die Lösung. Ich möchte jedoch den Mittelwert für jeden Behälter haben (bitte führen Sie das obige Statistikbeispiel aus) und nicht das Streudiagramm mit den Rohwerten. CI ist großartig.
Metriken

1
Ich bin mir nicht ganz sicher, was du meinst. Ich habe einen Code hinzugefügt, der zeigt, wie Sie die geglätteten Mittel in jedem Behälter von Hand erhalten. Wenn Sie nicht danach suchen, erklären Sie bitte genauer, was Sie vorhaben. Soweit ich das beurteilen kann, zeigen diese Grafiken normalerweise die Rohdaten und die geglätteten Mittelwerte.
Dimitriy V. Masterov

Um Lee und Lemieux zu zitieren (S. 31, 2009): "Eine Standardmethode zur grafischen Darstellung der Daten besteht darin, die Zuweisungsvariable (d hier) in mehrere Bins zu unterteilen und sicherzustellen, dass sich auf jeder Seite des Cutoffs zwei separate Bins befinden Punkt (um zu vermeiden, dass behandelte und unbehandelte Beobachtungen in demselben Behälter gemischt werden). Dann kann der Durchschnittswert der Ergebnisvariablen für jeden Behälter berechnet und gegen die Mittelpunkte der Behälter grafisch dargestellt werden. " Wenn es also 50 Fächer gibt, haben wir links und rechts nur 25 Datenpunkte und nicht alle Rohdaten (z. B. Grafik 6 (b) der Referenz: in Frage gestellt)
Metrics

1
Jetzt ist es klar! Ich stimme dem Kernel zu. Aber bist du sicher, dass es jetzt nicht Grad 0 ist? Das würde einer gleichgewichteten mittleren Glättung entsprechen.
Dimitriy V. Masterov

1
Ich glaube, das entspricht lpoly mit einem regulären Kernel und einem Polynom vom Grad 0
Dimitriy V. Masterov

7

Hier ist ein vordefinierter Algorithmus. Calonico, Cattaneo und Titiunik haben kürzlich ein Verfahren für eine robuste Bandbreitenauswahl vorgeschlagen. Sie haben ihre theoretischen Arbeiten sowohl für Stata als auch für R implementiert und es kommt auch mit einem Plot-Befehl. Hier ist ein Beispiel in 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)

Das gibt Ihnen diese Grafik: Geben Sie hier die Bildbeschreibung ein


Hallo, wie füge ich CI hinzu?
Krantz
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.