penguins-relationen

probability
Published

September 26, 2025

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:

data(penguins, package = "palmerpenguins")  # Paket muss installiert sein

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

  1. \(Pr(W \cup S)\)
  2. \(Pr(W \cap S)\)
  3. \(Pr(\neg S)\)
  4. \(Pr(\neg W)\)
  5. \(Pr(W \setminus WS)\)
  6. \(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)