Statistik

R-Kurs · Kapitel 12 · Zufallszahlen & -stichproben in R

Zufallszahlen & -stichproben in R

Reproduzierbare Zufallszahlen

Der Zufallsgenerator ist ein Pseudo-Generator: Mit set.seed() wird die Folge reproduzierbar. rnorm, runif erzeugen Zufallszahlen.

R
set.seed(42)
rnorm(5)                 # 5 Werte aus N(0,1)
set.seed(42)
rnorm(5)                 # exakt dieselben Werte
Ausgabe
[1]  1.3709584 -0.5646982  0.3631284  0.6328626  0.4042683
[1]  1.3709584 -0.5646982  0.3631284  0.6328626  0.4042683

Ziehen mit sample()

sample(x, n, replace = TRUE) zieht n Werte (mit Zurücklegen) aus x — ideal zum Simulieren von Würfeln, Karten usw.

R
set.seed(1)
wuerfe <- sample(1:6, 60, replace = TRUE)   # 60 Würfelwürfe
prop.table(table(wuerfe))                   # relative Häufigkeiten
Ausgabe
# relative Häufigkeiten, alle um 1/6 ≈ 0.167
# (die exakten Werte hängen von R-Version/seed ab)
Mini-Aufgabe

Simuliere 100 faire Münzwürfe („Kopf”/„Zahl”) und gib die absolute Häufigkeitstabelle aus (mit set.seed(7) für ein reproduzierbares Ergebnis).

💡 Tipp

sample(c(...), n, replace = TRUE); vorher set.seed für Reproduzierbarkeit.

Lösung zeigen
R
set.seed(7)
muenze <- sample(c("Kopf","Zahl"), 100, replace = TRUE)
table(muenze)
Ausgabe
# etwa 50 : 50 (z. B. Kopf 54, Zahl 46)

Simulation: Gesetz der großen Zahlen

Mit mehr Wiederholungen nähert sich die relative Häufigkeit dem theoretischen Wert an:

R
set.seed(123)
mean(sample(1:6, 100000, replace = TRUE) == 6)   # rel. Häufigkeit "Sechs"
Ausgabe
# ≈ 0.167 (nahe am theoretischen Wert 1/6)

Merke: Immer set.seed(...) vor der Zufallsziehung setzen, wenn das Ergebnis reproduzierbar sein soll (Übungen, Klausur, Berichte).

Abruf-Quiz

Frage 1 / 2

Wozu dient set.seed(42)?