Bootstrapping
> wähler
person_id alter einkommen beruf verheiratet kinder
<int> <int> <num> <char> <char> <num>
1: 1 37 48193 Selbständig Nein 1
2: 2 78 13735 Arbeiter/in Nein 0
3: 3 41 20673 Studierende/r Ja 1
4: 4 22 19289 Selbständig Nein 0
5: 5 79 19717 Arbeiter/in Ja 1
---
99996: 99996 27 32280 Arbeiter/in Ja 0
99997: 99997 70 22035 Arbeiter/in Nein 0
99998: 99998 29 21863 Arbeiter/in Nein 0
99999: 99999 24 24526 Angestellte/r Nein 0
100000: 100000 44 19918 Arbeiter/in Nein 1
verkehrsmittel partei
<char> <char>
1: Fahrrad Konservative Partei
2: Auto Liberale Partei
3: Auto Soziale Partei
4: Auto Konservative Partei
5: Auto Soziale Partei
---
99996: Auto Soziale Partei
99997: Auto Soziale Partei
99998: Fahrrad Soziale Partei
99999: Auto Soziale Partei
100000: Auto Grüne Partei
“To pull oneself up by one’s bootstraps” — sich am eigenen Schopf aus dem Sumpf ziehen
\[ \widehat{\mu} \pm 1.96 \cdot SE \] —
Quelle: Hesterberg (2015)
Quelle: Hesterberg (2015)
#| code-fold: false
B <- 2000
boot_means <- replicate(B, mean(sample(wähler$alter, size = stichprobe_n, replace = TRUE)))
hist(boot_means, breaks = 30,
main = "Bootstrap-Verteilung des Mittelwerts",
xlab = "Mittelwert (Alter)")
abline(v = mean(wähler$alter), col = "red", lwd = 2)
quantile(boot_means, probs = c(0.025, 0.975))
l <- 12 # Blocklänge (z. B. Monate)
B <- 2000
ts_boot <- replicate(B, {
idx <- sample(seq_len(n - l + 1), ceiling(n / l), replace = TRUE)
series_star <- unlist(lapply(idx, \(s) ts_data[s:(s + l - 1)]))[1:n]
mean(series_star) # gewünschte Statistik
})
hist(ts_boot, breaks = 30,
main = "Block-Bootstrap-Verteilung",
xlab = "Mittelwert")