Tutorial 9: Panel Daten und Difference-in-Differences
Lernziele
- Panel Daten und Fixed Effects Regression
- Anwendung Difference-in-Differences
Panel Daten und das Simpson Paradoxon
Simulieren Sie diese Daten in Ihrer R Umgebung:
# Set seed for reproducibility
set.seed(123)
# Parameters
<- 100 # Number of groups
n_groups <- 10 # Number of time periods
n_periods <- n_groups * n_periods
n
# Simulate groups and time periods
<- data.table(
data group = rep(1:n_groups, each = n_periods),
time = rep(1:n_periods, times = n_groups)
)
# Simulate fixed effects
:= rnorm(1, sd = 100), by = group]
data[, group_fe := rnorm(1, sd = 100), by = time]
data[, time_fe
# Simulate treatment variable and dependent variable
:= sample(0:1, n, replace = TRUE)]
data[, treatment := rnorm(n)]
data[, epsilon := 5 + 2 * treatment + group_fe + time_fe + epsilon] data[, y
- Verwenden Sie die
lm()
Funktion, um den Effekt des Treatments auf die abhängige Variabley
zu schätzen. - Schätzen Sie nun das Modell mit Fixed Effects für Gruppen und Zeitperioden. Verwenden Sie dazu das Paket
fixest
. Das kann so aussehen:
<- feols(y ~ treatment | group + time, data = data) model
- Was ist der Unterschied zwischen den beiden Schätzern?
- Ändern sie Standardabweichungen der Fixed Effects und sehen Sie, wie sich die Schätzer verändern.
Differences-in-Differences
Im folgenden haben Sie diese Tabelle gegeben
Gruppe | Zeit | Wert |
---|---|---|
Treatment | Vorher | 70 |
Treatment | Nacher | 85 |
Control | Vorher | 75 |
Control | Nacher | 80 |
- Stellen Sie die Werte grafisch dar.
- Berechnen Sie den Difference-in-Differences Schätzer.
- Erstellen Sie ein
data.table
Objekt mit den Daten inR
und transformieren Sie die Daten geeignet, sodass Sie dielm()
Funktion verwenden können, um den Effekt zu bestimmen. - Welche Variable ist der Difference-in-Differences Schätzer? Ist dieser gleich Ihrer vorherigen Berchnung? Erinnern Sie sich hier auch an die Intepretation von Dummy-Variablen in normalen linearen Modellen.
Replikation von Forschungspapier
Lesen Sie etwas in dem Paper Restructuring Research: Communication Costs and the Democratization of University Innovation von Agrawal und Goldfarb (2008, AER).
- Was ist die Kernfoschungsfrage?
Die Autoren haben Code und Daten der Analyse geteilt. Wir wollen überprüfen, ob alles richtig lief. Leider haben die Autoren kein R
, sondern Stata
benutzt:
xtreg dcoauths1_2 bothbitnet _I*, fe i(gpinst) cluster(instpbit) nonest
Lesen Sie insbeondere den Teil III. A und dort Gleichung (1). Die Ergebnisse finden Sie in Table 2. Replizieren Sie die erste Spalte unter Verwendung von R
und dem Paket fixest
.
Schauen Sie sich diese Gleichung an:
\[ \text{Collabortion}_{ijt} = \beta \text{Both Have Bitnet}_{ijt} + \mu_t + \phi_{ij} + \epsilon_{ijt} \]
- Was sind \(i\), \(j\) und \(t\)?
- Wofür brauchen wir \(\mu_t\) und \(\phi_{ij}\)?
- Laden Sie nun die Daten bitnet_paired_final.dta, welche im
dta
Format sind. Dieser Dateityp kann mit dem Befehlhaven::read_dta()
aus demhaven
Paket gelesen werden.
Die Variablen, die Sie benötigen sind dcoauths1_2
, bothbitnet
, year
, gpinst
.
- Identifizieren Sie diese Variablen in der obigen Regressionsgleichung.
- Schätzen Sie nun das Modell und integrieren Sie die Fixed Effects so wie in Aufgabe 1 dieses Blatts. Sind die Ergebnisse identisch zu denen im Papier?
- Intepretieren Sie das Ergebnis.
- Ist das ein Difference-in-Differences Schätzer? Was sind Kontrollgruppe und Treatmentgruppe?