Daten einlesen
Zweck: Datei in R laden.
df <- read.csv("datei.csv")
df <- read.delim("datei.txt")
Typischer Fehler: falsches Trennzeichen oder falscher Dateipfad.
Diese Seite ist als schneller R-Spickzettel gedacht: kurze Erklärung, typische Syntax, Mini-Beispiel und der häufigste Stolperstein.
Wenn du in der Prüfung schnell Syntax, einen typischen Befehl oder eine Standard-Regression brauchst, findest du hier die kompakten Muster. Die Seite ist bewusst kurz, prüfungsnah und direkt anwendbar.
Zweck: Datei in R laden.
df <- read.csv("datei.csv")
df <- read.delim("datei.txt")
Typischer Fehler: falsches Trennzeichen oder falscher Dateipfad.
Zweck: Struktur und erste Beobachtungen prüfen.
head(df)
View(df)
glimpse(df)
Typischer Fehler: direkt rechnen, ohne die Daten vorher kurz zu prüfen.
Zweck: nur relevante Variablen behalten.
select(df, income, age, vote)
Mini-Hinweis: praktisch vor Tabellen, Regressionen und Grafiken.
Zweck: nur Beobachtungen mit Bedingung behalten.
filter(df, age > 30)
filter(df, gender == "female")
Typischer Fehler: = statt ==.
Zweck: neue Spalte berechnen.
mutate(df, income_log = log(income))
mutate(df, east_dummy = ifelse(east == "yes", 1, 0))
Typischer Fehler: neue Variable nicht abspeichern.
Zweck: Kennzahlen berechnen.
summarise(df,
mean_income = mean(income, na.rm = TRUE),
sd_income = sd(income, na.rm = TRUE)
)
Typischer Fehler: na.rm = TRUE vergessen.
Zweck: Zusammenhang zwischen zwei Variablen ansehen.
ggplot(df, aes(x = income, y = turnout)) +
geom_point()
Mini-Hinweis: gut für erste lineare Muster.
Zweck: Kategorien vergleichen.
ggplot(df, aes(x = party)) +
geom_bar()
Typischer Fehler: Prozentwerte erwarten, obwohl nur Häufigkeiten gezeigt werden.
Zweck: linearen Zusammenhang direkt visualisieren.
ggplot(df, aes(x = income, y = turnout)) +
geom_point() +
geom_smooth(method = "lm", se = FALSE)
Mini-Hinweis: gut für Interpretation im Tutoratsstil.
Zweck: linearen Zusammenhang messen.
cor(df$x, df$y, use = "complete.obs")
Wichtig: Korrelation ist nicht automatisch Kausalität.
Zweck: Mittelwerte zweier Gruppen vergleichen.
t.test(y ~ group, data = df)
Mini-Hinweis: praktisch bei einfachen Gruppenvergleichen.
Zweck: Häufigkeiten zweier Kategorien vergleichen.
table(df$party, df$gender)
Typischer Fehler: absolute Häufigkeiten mit Anteilen verwechseln.
Syntax: eine UV.
m1 <- lm(y ~ x, data = df)
summary(m1)
Interpretation: β ist die erwartete Veränderung von Y bei +1 in X.
Syntax: mehrere UVs.
m2 <- lm(y ~ x1 + x2 + x3, data = df)
summary(m2)
Interpretation: immer ceteris paribus lesen.
Syntax: Haupteffekte + Interaktion.
m3 <- lm(y ~ x1 * x2, data = df)
summary(m3)
Typischer Fehler: β1 und β2 isoliert lesen, obwohl ein Interaktionsterm drin ist.
Zweck: erwartete Werte berechnen.
predict(m2)
predict(m2, newdata = data.frame(x1 = 1, x2 = 2, x3 = 0))
Mini-Hinweis: hilfreich für Prüfungsfragen zu Modellvorhersagen.
Zweck: einzelne Parameter gezielt holen.
coef(m2)
coef(m2)["x1"]
Typischer Fehler: Namen der Terme nicht exakt schreiben.
Zweck: Modellgüte prüfen.
summary(m2)$r.squared
summary(m2)$adj.r.squared
Wichtig: hohes R² ist nützlich, aber nicht automatisch kausal.
Syntax: binäre AV, logistischer Link.
m_logit <- glm(y ~ x1 + x2,
family = binomial(link = "logit"),
data = df)
summary(m_logit)
Wichtig: Das Modell schätzt nicht Y direkt, sondern P(Y = 1).
Syntax: gleiche Idee, anderer Link.
m_probit <- glm(y ~ x1 + x2,
family = binomial(link = "probit"),
data = df)
summary(m_probit)
Wichtig: Richtung und Signifikanz sind oft sehr ähnlich wie beim Logit.
Zweck: vorhergesagte Eintrittswahrscheinlichkeiten ausgeben.
p_hat <- predict(m_logit, type = "response")
head(p_hat)
Mini-Hinweis: Bei Logit/Probit sind Vorhersagen Wahrscheinlichkeiten zwischen 0 und 1.
Zweck: aus Wahrscheinlichkeiten 0/1-Vorhersagen bauen.
y_hat <- ifelse(p_hat > 0.5, 1, 0)
table(vorhersage = y_hat, beobachtet = df$y)
Typischer Fehler: p-Werte und vorhergesagte Wahrscheinlichkeiten verwechseln.
Zweck: Anteil korrekt vorhergesagter Beobachtungen berechnen.
mean(y_hat == df$y)
naiv <- ifelse(mean(df$y) > 0.5, 1, 0)
mean(naiv == df$y)
Wichtig: Die Modellgüte wird oft gegen ein naives Modell verglichen.
Kernidee: In Logit/Probit ist ein Koeffizient nicht direkt eine konstante Veränderung der Wahrscheinlichkeit.
# Merksatz für die Prüfung:
# Marginale Effekte hängen davon ab,
# wo man sich auf der S-Kurve befindet.
Wichtig: Deshalb immer zwischen Koeffizient und marginalem Effekt unterscheiden.
Syntax: UVs vor dem Pipe, Fixed Effects nach dem Pipe.
m_fe <- feols(y ~ x1 + x2 | country + year, data = df)
summary(m_fe)
Mini-Hinweis: sehr nützlich für Paneldaten und Two-way Fixed Effects.
Beispiel: nur Ländereffekte kontrollieren.
m_unit <- feols(y ~ x | country, data = df)
Wichtig: kontrolliert zeitinvariante Unterschiede zwischen Einheiten.
Beispiel: nur Jahre kontrollieren.
m_time <- feols(y ~ x | year, data = df)
Wichtig: fängt gemeinsame Zeitschocks ab.