data(penguins, package = "palmerpenguins") # Paket muss installiert seinpenguins-relationen
1 Aufgabe
1.1 Hintergrund
In dieser Aufgabe betrachten wir die Relationen einiger Ereignisse im Zusammenhang mit dem Datensatz penguins.
Sie können den Datensatz z.B. so importieren:
Sei das Ereignis \(W\) ein weiblicher Pinguin. Sei das Ereignis \(S\) ein “schwerer” Pinguin, definiert als schwerer als der Median aller Pinguine (des Datensatzes). Sei \(WS\) ein weiblicher, schwerer Pinguin.
Berechnen Sie folgende Wahrscheinlichkeiten, wobei wir den jeweiligen Anteil der Tiere als Wahrscheinlichkeit interpretieren.
1.2 Teilaufgaben
- \(Pr(W \cup S)\)
- \(Pr(W \cap S)\)
- \(Pr(\neg S)\)
- \(Pr(\neg W)\)
- \(Pr(W \setminus WS)\)
- \(Pr(S \setminus WS)\)
Hinweise:
- Beachten Sie die üblichen Hinweise des Datenwerks.
2 Lösung
Setup:
library(tidyverse)Median berechnen:
penguins |>
drop_na(body_mass_g) |>
summarise(body_mass_g_mean = median(body_mass_g))| body_mass_g_mean |
|---|
| 4050 |
weight_md <-
penguins |>
drop_na(body_mass_g) |>
summarise(body_mass_g_mean = median(body_mass_g))
weight_md| body_mass_g_mean |
|---|
| 4050 |
2.1 A. \(Pr(W \cup S)\)
Das logische “ODER” wird vom |-Operator abgebildet in R:
penguins |>
filter(sex == "female" | body_mass_g > weight_md) |>
nrow()[1] 261
Das sind 261 Zeilen von insgesamt 344:
nrow(penguins)[1] 344
Also:
261/344[1] 0.7587209
Die Wahrscheinlichkeit liegt bei 76%.
2.2 B. \(Pr(W \cap S)\)
Das logische “UND” wird vom &-Operator abgebildet in R:
anzahl_w_und_s <-
penguins |>
filter(sex == "female" & body_mass_g > weight_md) |>
nrow()
anzahl_w_und_s[1] 53
Das sind 53 Zeilen von insgesamt 344, also:
anzahl_w_und_s/nrow(penguins)[1] 0.1540698
2.3 C. \(Pr(\neg S)\)
penguins |>
filter(body_mass_g <= weight_md) |>
nrow() / nrow(penguins)[1] 0.5610465
2.4 D. \(Pr(\neg W)\)
penguins |>
filter(sex != "female") |>
nrow() / nrow(penguins)[1] 0.4883721
2.5 E. \(Pr(W \setminus WS)\)
Die Logische Differenz bekommt man in R mit der Funktion setdiff.
weiblich <- penguins |> filter(sex == "female")
weiblich_schwer <-
penguins |>
filter(sex == "female", body_mass_g > weight_md)
weiblich_minus_weiblichschwer <- setdiff(weiblich, weiblich_schwer)
weiblich_minus_weiblichschwer |>
head()| species | island | bill_length_mm | bill_depth_mm | flipper_length_mm | body_mass_g | sex | year |
|---|---|---|---|---|---|---|---|
| Adelie | Torgersen | 39.5 | 17.4 | 186 | 3800 | female | 2007 |
| Adelie | Torgersen | 40.3 | 18.0 | 195 | 3250 | female | 2007 |
| Adelie | Torgersen | 36.7 | 19.3 | 193 | 3450 | female | 2007 |
| Adelie | Torgersen | 38.9 | 17.8 | 181 | 3625 | female | 2007 |
| Adelie | Torgersen | 41.1 | 17.6 | 182 | 3200 | female | 2007 |
| Adelie | Torgersen | 36.6 | 17.8 | 185 | 3700 | female | 2007 |
weiblich_minus_weiblichschwer |>
nrow() / nrow(penguins)[1] 0.3255814
Es gibt mehrere Wege, die logische Differenz zu berechnen.
2.6 F. \(Pr(S \setminus WS)\)
schwer <- penguins |> filter(body_mass_g > weight_md)
schwer_minus_weiblichschwer <- setdiff(schwer, weiblich_schwer)
schwer_minus_weiblichschwer |> head()| species | island | bill_length_mm | bill_depth_mm | flipper_length_mm | body_mass_g | sex | year |
|---|---|---|---|---|---|---|---|
| Adelie | Torgersen | 39.2 | 19.6 | 195 | 4675 | male | 2007 |
| Adelie | Torgersen | 42.0 | 20.2 | 190 | 4250 | NA | 2007 |
| Adelie | Torgersen | 34.6 | 21.1 | 198 | 4400 | male | 2007 |
| Adelie | Torgersen | 42.5 | 20.7 | 197 | 4500 | male | 2007 |
| Adelie | Dream | 39.8 | 19.1 | 184 | 4650 | male | 2007 |
| Adelie | Dream | 44.1 | 19.7 | 196 | 4400 | male | 2007 |
schwer_minus_weiblichschwer |>
nrow() / nrow(penguins)[1] 0.2790698
2.7 Hinweis
Der Nenner der Wahrscheinlichkeit sollte die Anzahl aller Pinguine sein, für die alle relevanten Informationen verfügbar sind. Da body_mass_g und sex für die gesamte Aufgabe relevant sind, sollten nur Tiere ohne fehlende Werte in diesen Spalten betrachtet werden.
penguins_nona <- penguins |> drop_na(body_mass_g, sex)