Generelles

Diese Übung soll dir helfen, die Binomialverteilung und die Normalverteilung besser zu verstehen und in R anhand dieser Verteilungen Wahrscheinlichkeiten zu berechnen. Alle relevanten Codes findest du im R-Workshop (siehe Moodle). Um die Aufgaben zu lösen, öffnest du dir am besten ein neues Skript und schreibst die Codes dort hinein. Das Skript kannst du mit Kommentaren (#) versehen und dann abspeichern. Für diese Übung musst du keinen Datensatz laden.
Solltest du bei einer Aufgabe nicht weiterkommen, empfehlen wir dir zuerst Google zu fragen oder in den Unterlagen nachzuschauen und erst dann die Lösung anschauen.


Normalverteilung

Wir verwenden als Beispiel den Intelligenzquotienten (IQ). Ob wir den “wahren” Mittelwert und die “wahre” Standardabweichung des IQ’s in der Population wirklich kennen, ist diskutabel. Für diese Übung glauben dieser Website. Demnach ist der IQ normalverteilt mit \(\mu = 100\) und \(\sigma = 15\):

\[ IQ\sim{\mathcal{N}(100, 15^2)} \] Anmerkung: Bei der Notation \(IQ\sim{\mathcal{N}(100, 15^2)}\) wird in der Regel die Varianz und nicht die Standardabweichung angegeben. Daher \(15^2\).

Aufgabe

Simuliere die Daten für den IQ für ca. 10% der Schweizer Bevölkerung, also für 850’000 Personen (du brauchst dazu die R-Funktion rnorm()). Weise die Daten einer neuen Variable iq_swiss zu. Visualisiere die Variable iq_swiss mithilfe eines Histogramms.


Lösung

iq_swiss <- rnorm(850000, 100, 15)
hist(iq_swiss, main = "Verteilung des IQ's in der Schweiz (n = 850'000)", col = "gray", freq = FALSE)

Da die 850’000 Werte zufällig aus einer Normalverteilung mit \(\mu = 100\) und \(\sigma = 15\) gezogen werden, erstaunt es nicht, dass die Werte ebenfalls normalverteilt sind.


Wahrscheinlichkeiten anhand der Normalverteilung berechnen

Um Wahrscheinlichkeiten anhand der Normalverteilung berechnen zu können, muss die Variable zuerst z-transformiert werden:

\[z_i = \frac{x_i-\mu_X}{\sigma_X}.\]

Anhand des z-Wertes kann die Fläche unter der Normalverteilungskurve berechnet werden. Die Funktion pnorm() gibt dir immer die Fläche links, des angegebenen z-Wertes an: \(Pr(X \le x)\). Möchtest du berechnen, wie gross die Fläche rechts vom z-Wert liegt (\(Pr(X\ge x)\)), muss du die Gegenwahrscheinlichkeit \(1-Pr(X \le x)\) berechnen: 1-pnorm(z).

Den z-Wert für eine gegebene Wahrscheinlichkeit \(Z(Pr = p)\) erhälst du mit Hilfe der Funktion qnorm(p).

Aufgaben

  1. Wie gross ist die Wahrscheinlichkeit, dass eine zufällige Person aus der Population einen IQ-Wert von 108 oder mehr hat?
  2. Wie gross ist die Wahrscheinlichkeit, dass eine zufällige Person aus der Stichprobe (iq_swiss) einen IQ-Wert von 108 oder mehr hat?

Lösungen

  1. Wie gross ist die Wahrscheinlichkeit, dass eine zufällige Person aus der Population einen IQ-Wert von 108 oder mehr hat?
x <-  108
mu <- 100
sigma <- 15
z <- (x-mu)/sigma
1-pnorm(z)
## [1] 0.2969014

Hier das Ganze noch formal und visuell (kleiner Exkurs).

\[ Pr(X > 108) = \int_{108}^{\infty} \frac{1}{15 \sqrt{2\pi}} \exp\left( -\frac{(t - 100)^2}{2 \cdot 15^2} \right) \, dt. \]

Der Ausdruck

\[ \frac{1}{15 \sqrt{2\pi}} \exp\left( -\frac{(t - 100)^2}{2 \cdot 15^2} \right) \]

ist die Wahrscheinlichkeitsdichtefunktion (PDF) der Normalverteilung \(\mathcal{N}(100, 15^2)\).

Die Dichtefunktion gibt nicht direkt die Wahrscheinlichkeit an, sondern wie dicht die Wahrscheinlichkeit an der Stelle \(t\) konzentriert ist.

Die wahre Wahrscheinlichkeit, dass der IQ in einem bestimmten Intervall liegt, erhält man durch Integration der Dichtefunktion über dieses Intervall. Das ist nicht sehr praktisch, weshalb wir eine z-Transformation durchführen und mit Hilfe der Standardnomalverteilung \(\Phi\) rechnen:

\[ \begin{align*} Pr(X > 108) &= 1 - \Phi(\frac{108-100}{15}) = 1 - \Phi(0.5333) \end{align*}. \]

# Dieser Code ist nicht prüfungsrelevant
library(tidyverse)
ggplot(NULL, aes(c(-3,3))) +
  geom_area(stat = "function", fun = dnorm, fill = "grey80", xlim = c(-3, z)) +
  geom_area(stat = "function", fun = dnorm, fill = "#00998a", xlim = c(z, 3)) +
  labs(x = paste("z"), y = "") +
  scale_y_continuous(breaks = NULL) +
  scale_x_continuous(breaks = z, "Z")

Die grüne Fläche beginnt beim besagten Wert von \(\frac{108-100}{15}\), geht bis \(\infty\) und beträgt 29% der Gesamtfläche. Fläche unter der Kurve = Wahrscheinlichkeit.

Wenn wir anhand unserer Stichprobe rechnen, wie gross diese Proportion ist, kommen wir auf ein sehr ähnliches Resultat:

sum(iq_swiss >= 108) / 850000
## [1] 0.2971835

Das macht Sinn, weil wir die Daten als eine Normalverteilung mit den Parametern \(\mu = 100\) und \(\sigma = 15\) simuliert haben. Weil \(n\) mit 850000 gross ist, ist die Abweichung von der simulierten zur theoretischen Verteilung sehr klein.


Weitere Übungen zur Normalverteilung

Aufgaben

Berechne auf Populationsebene:

  1. \(Pr(IQ\le76.7)\)
  2. \(Pr(80\le IQ \le110)\)
  3. Wie gross muss mein IQ sein, damit ich bei den obersten 30% bin? Hier musst du etwas umdenken…
  4. Kontrolliere mit der z-Transformation, ob deine Lösung zu Aufgabe 3 stimmt.
  5. Welcher z-Wert steht für eine Fläche, bzw. Wahrscheinlichkeit von 5%?
  6. Zwischen welchen Werten muss mein IQ liegen, damit ich bei den mittleren 95% liege?
  7. Was ist der relevante z-Wert, wenn die Randflächen jeweils 2.5% (=total 5%) betragen?

Lösungen

  1. Wie gross ist die Wahrscheinlichkeit, dass eine zufällige Person einen IQ von 76.7 oder weniger hat?
x <- 76.7
z <- (x-mu)/sigma
pnorm(z)
## [1] 0.06017176
# Dieser Code ist nicht prüfungsrelevant
ggplot(NULL, aes(c(-3,3))) +
  geom_area(stat = "function", fun = dnorm, fill = "#00998a", xlim = c(-3, z)) +
  geom_area(stat = "function", fun = dnorm, fill = "grey80", xlim = c(z, 3)) +
  labs(x = paste("z"), y = "") +
  scale_y_continuous(breaks = NULL) +
  scale_x_continuous(breaks = z)


  1. Wie gross ist die Wahrscheinlichkeit, dass eine zufällige Person einen IQ zwischen 80 und 110 hat?
x1 <- 80
z1 <- (x1-mu)/sigma
p1 <- pnorm(z1) # Fläche unterhalb von 80
x2 <- 110
z2 <- (x2-mu)/sigma
p2 <- 1-pnorm(z2)  # Fläche oberhalb von 110
p_tot <- 1-(p1+p2) # Die Randwahrscheinlichkeiten ziehen wir von den 100% ab
p_tot
## [1] 0.6562962
# Dieser Code ist nicht prüfungsrelevant
ggplot(NULL, aes(c(-3,3))) +
   geom_area(stat = "function", fun = dnorm, fill = "grey80", xlim = c(-3, z1)) +
  geom_area(stat = "function", fun = dnorm, fill = "#00998a", xlim = c(z1, z2)) +
  geom_area(stat = "function", fun = dnorm, fill = "grey80", xlim = c(z2, 3)) +
  labs(x = paste("z"), y = "") +
  scale_y_continuous(breaks = NULL) +
  scale_x_continuous(breaks = c(z1, z2))


  1. Wie gross muss mein IQ sein, damit ich bei den obersten 30% bin? Hier musst du etwas umdenken…
p <- 0.3
z <- qnorm(1-p) # qnorm um das Quantil der Standardnormalverteilung, also den z-Wert herauszufinden
x <- z*sigma+mu # einfache algebraische Umformung der z-Transformation
x
## [1] 107.866
# Dieser Code ist nicht prüfungsrelevant
ggplot(NULL, aes(c(-3,3))) +
   geom_area(stat = "function", fun = dnorm, fill = "grey80", xlim = c(-3, z)) +
  geom_area(stat = "function", fun = dnorm, fill = "#00998a", xlim = c(z, 3)) +
  labs(x = paste("z"), y = "") +
  scale_y_continuous(breaks = NULL) +
  scale_x_continuous(breaks = z)


  1. Kontrolliere mit der z-Transformation, ob deine Lösung zu Übung 3 stimmt.
z <- (x-mu)/sigma
1-pnorm(z)
## [1] 0.3

  1. Welcher z-Wert steht für eine Wahrscheinlichkeit von 5%?
qnorm(0.05)
## [1] -1.644854

  1. Zwischen welchen Werten muss mein IQ liegen, damit ich bei den mittleren 95% liege?
z1 <- qnorm(0.025) #Die 5% werden auf beide Seiten aufgeteilt, also die tiefsten 2.5%...
z2 <- qnorm(0.975) #... und die höchsten 2.5%
x1 <- z1 * sigma + mu
x2 <- z2 * sigma + mu
x1
## [1] 70.60054
x2
## [1] 129.3995

  1. Was ist der relevante z-Wert, wenn die Randflächen jeweils 2.5% (=total 5%) betragen?
qnorm(c(0.025, 0.975))
## [1] -1.959964  1.959964

Die Zahl 1.96 wird dir darum noch öfters begegnen…

Binomialverteilung

Beispiel: In ungefähr 50% der Fälle kommt es nach einer manuellen manipulation der Wirbelsäule zu leichten (und harmlosen) Nebenwirkungen (Paige et al. 2017). Wir gehen also davon aus, dass die Wahrscheinlichkeit \(\pi = 0.5\) für Nebenwirkungen. In einer Praxis werden pro Woche rund 80 Manipulationen an der Wirbelsäule durchgeführt. Die Variable \(X\) (Anzahl Personen mit Nebenwirkungen) ist Binomialverteilt:

\[ X \sim \mathcal{Bin}(80, 0.5) \]

Wahrscheinlichkeiten anhand der Binomialverteilung berechnen

Die Funktionen für die Binomialverteilung sind analog zur Normalverteilung: Die Funktion pbinom(x, n, p) gibt dir die Wahrscheinlichkeit für maximal \(x\) Personen mit Nebenwirkungen: \(Pr(X \le x)\). Mit 1-pbinom(x, n, p) für mehr als \(x\) Personen mit Nebenwirkungen: \(Pr(X > x)\).

Anders als bei der Normalverteilung kann man bei der Binomialverteilung auch Punktwahrscheinlichkeiten berechnen. Mit dbinom(x, n, p) berechnest du die Wahrscheinlichkeit für genau \(x\) Personen mit Nebenwirkungen: \(Pr(X = x)\).

Aufgaben

  1. Welcher Wert hat \(n\) und welcher \(\pi\)?
  2. Wie gross ist die Wahrscheinlichkeit, dass genau die Hälfte der Personen (in einer Woche) Nebenwirkungen hat: \(Pr(X = 40)\)?
  3. Wie gross ist die Wahrscheinlichkeit, dass mehr als die Hälfte der Personen (in einer Woche) Nebenwirkungen hat: \(Pr(X > 40)\)?
  4. Wie gross ist die Wahrscheinlichkeit, dass weniger als 20 Personen (in einer Woche) Nebenwirkungen haben?

Lösungen

  1. Welcher Wert hat \(n\) und welche \(\pi\)?

\(n = 80\) , \(\pi = 0.5\)


  1. Wie gross ist die Wahrscheinlichkeit, dass genau die Hälfte der Personen (in einer Woche) Nebenwirkungen hat: \(Pr(X = 40)\)?

    dbinom(40, 80, 0.5)
    ## [1] 0.08892788

  2. Wie gross ist die Wahrscheinlichkeit, dass mehr als die Hälfte der Personen (in einer Woche) Nebenwirkungen hat: \(Pr(X > 40)\)?

    1 - pbinom(40, 80, 0.5)
    ## [1] 0.4555361

  3. Wie gross ist die Wahrscheinlichkeit, dass weniger als 20 Personen (in einer Woche) Nebenwirkungen haben?

Vorsicht: Weniger als 20 bedeutet \(Pr(X \le 19)\) und nicht \(Pr(X \le 20)\)

pbinom(19, 80, 0.5)
## [1] 1.365935e-06