Tutorial 9: Panel Daten und Difference-in-Differences

Zurück zur Startseite

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
n_groups <- 100   # Number of groups
n_periods <- 10   # Number of time periods
n <- n_groups * n_periods

# Simulate groups and time periods
data <- data.table(
  group = rep(1:n_groups, each = n_periods),
  time = rep(1:n_periods, times = n_groups)
)

# Simulate fixed effects
data[, group_fe := rnorm(1, sd = 100), by = group]
data[, time_fe := rnorm(1, sd = 100), by = time]

# Simulate treatment variable and dependent variable
data[, treatment := sample(0:1, n, replace = TRUE)]
data[, epsilon := rnorm(n)]
data[, y := 5 + 2 * treatment + group_fe + time_fe + epsilon]
  • Verwenden Sie die lm() Funktion, um den Effekt des Treatments auf die abhängige Variable y 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:
model <- feols(y ~ treatment | group + time, data = data)
  • 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 in R und transformieren Sie die Daten geeignet, sodass Sie die lm() 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 Befehl haven::read_dta() aus dem haven 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?

Zurück zur Startseite