Letzte Änderung am 04. November 2025 um 19:55:30

“The average teacher explains complexity; the gifted teacher reveals simplicity.” — Robert Breault

Wir brauchen immer mal wieder etwas komplexere Daten und deshalb habe ich die Datensätze, die häufiger vorkommen, hier einmal gebündelt. Die komplexeren Datensätze werden dann in den Kapiteln zur Regressionsanalyse und Modellierung genutzt. Dafür brauchen wir dann größere Datensätze an denen wir dann auch was erkennen können.

7.1 Von der Olympiade der Tiere

Abbildung 7.1— Bei der Olympiade der Tiere geht es auch draum, wie hoch ein Tier springen kann. Moment, warum schaffen alle Tiere irgendwie immer die gleiche Höhe? Hat da nicht das Körpergewicht einen Einfluss?

Wir beschäftigen uns ja zu Beginn mit den Sprungweiten von verschiedenen Floharten. Hier habe ich dann nochmal einen anderen Datensatz mitgebracht. In meinem kleinen Datensatz zur Olympiade der Tiere habe ich die wissenschaftliche Arbeit von Yang et al. (2014) als Grundlage genommen. Wir haben hier das Körpergewicht und die durchschnittliche Dauer des Urinierens vorliegen. Diese Liste habe ich dann einmal erweitert. Ich habe dann noch die Sprungweiten und Sprunghöhen der Tiere ergänzt, soweit es mit möglich war die entsprechenden Informationen zu finden.

R Code [zeigen / verbergen]
olymp_tbl <- read_excel("data/animal_olympics.xlsx")

In der folgenden Tabelle findest du dann einmal einen Auszug aus den Daten. Ich habe hier einige Leerstellen, da ich nicht zu allen Tierarten die entsprechenden Informationen vorliegen habe. Dann müssen wir eben mit Leerstellen leben.

Tabelle 7.1— Auszug aus dem Daten zu der Olympiade der Tiere.
animal sex mass duration jump_height jump_length
Bat F 0.03 0.32
Bison M 907 20 180 214
Cat F 5 18 150 183
Chihuahua M 3 4 40 76.2
Cow 510 21 150
Dog M 71 24 150 121
Rhino M 2200 17
Squirrel 19 5 150 243
Tapir F 318 9
Tapir M 318 59
White horse F 470 10
Zebra M 430 8 80

Die Daten beinhalten dann die folgenden erhobenen Variablen. Teilweise sind die Informationen dann aus Yang et al. (2014) und Cadiergues et al. (2000) entnommen. In anderen Fällen habe ich das Internet befragt und die erste Information, die valide klang, übernommen.

  • animal, der Name der Tierart im allgemeinen Sprachgebrauch.
  • sex, das bestimmte Geschlecht der Tierart.
  • mass, das Gewicht der Tierart in [kg] entnommen Yang et al. (2014).
  • duration, die Dauer des Urinierens in [s] der Tierart entnommen Yang et al. (2014).
  • jump_height, die Sprunghöhe der Tierart in [cm].
  • jump_length, die Sprungweite der Tierart in [cm].

Dann können wir uns auch einmal einen Auszug aus den Daten in der folgenden Abbildung anschauen. Ich habe mit hier für den Zusammenhang zwischen der Dauer des Urinierens und dem Körpergewicht sowie dem Zusammenhang zwischen der Sprunghöhe und dem Sprunggewicht entschieden.

Abbildung 7.2— Scatterplot zu dem Zusammenahng von verschiedenen Variablen aus dem Datensatz zu der Olympiade der Tiere. Eine lineare Regressionsgleichung sowie die entsprechende Grade sind ergänzt. (A) Hängt die Dauer des Urinierens von dem Körpergewicht ab? (B) Gibt es einen Zusammenhang zwischen der dem Körpergewicht und der maximalen Sprunghöhe? [Zum Vergrößern anklicken]

Wir nutzen den Datensatz in verschiedenen Kapiteln.

TippDatei von den olympischen Tieren

Du findest die Datei animal_olympics.xlsx auf GitHub jkruppa.github.io/data/ als Excel Datei.

7.2 Von Fahrrädern in Osnabrück

Neben den klassischen Daten aus dem Bereich der Agrawissenschaften sammle ich auch so den ein oder anderen Datensatz. Hier haben wir dann einmal den Datensatz zu den Fahrrädern in Osnabrück vorliegen. An einer Straße in Osnabrück werden die Fahrräder gezählt. Genau genommen sind es nicht nur Fahrräder sondern auch Autos oder andere Gefährte, die die Fahrradstraße entlangfahren. Aber das ist nur eine Kleinigkeit. Ich habe immer mal wieder in den Jahren 2024 und 2025 die Informationen von der Säule unregelmäßig erhoben. Dazu dann noch die Temperatur und auch ob es geregnet hat.

R Code [zeigen / verbergen]
bikes_tbl <- read_excel("data/bikes_count.xlsx") |> 
  mutate(jahr = as_factor(jahr))

Dann können wir uns die Daten einmal in der folgenden Tabelle anschauen. Wir müssen dann vermutlich später nochmal ran und die Uhrzeiten und die Werte für das Datum richtig formatieren. Aber du siehst hier schonmal einen guten Überblick.

Tabelle 7.2— Auszug aus dem Daten zu den Fahrrädern in Osnabrück.
jahr datum uhrzeit tag tag_im_Jahr kw anzahl_tag anzahl_cum regen temp
2024 2024-09-16 1899-12-31 08:19:00 2024-09-16 260 38 187 771920 0 16
2024 2024-09-17 1899-12-31 08:22:00 2024-09-17 261 38 311 774630 0 15
2024 2024-09-18 1899-12-31 08:18:00 2024-09-18 262 38 206 777100 0 16
2024 2024-09-19 1899-12-31 08:18:00 2024-09-19 263 38 180 779552 0 15
2025 2025-10-24 1899-12-31 09:09:00 2025-10-24 297 43 459 1071789 0 11
2025 2025-10-29 1899-12-31 14:34:00 2025-10-29 302 44 2423 1087757 0 12
2025 2025-11-03 1899-12-31 08:17:00 2025-11-03 307 45 730 1102181 0 11
2025 2025-11-04 1899-12-31 15:45:00 2025-11-04 308 45 3032 1109169 0 15

Dann können wir auch einmal schnell die Anzahl an Fahrrädern zum Ende des Jahres 2024 vorhersagen.

R Code [zeigen / verbergen]
lm(anzahl_cum ~ tag_im_Jahr, filter(bikes_tbl, jahr == 2024)) |> 
  predict(tibble(tag_im_Jahr = 366))
       1 
989322.1 

Genauso machen wir das dann auch einmal für das Jahr 2025 und erkennen sogleich, dass es hier schon einiges an Unterschied gibt.

R Code [zeigen / verbergen]
lm(anzahl_cum ~ tag_im_Jahr, filter(bikes_tbl, jahr == 2025)) |> 
  predict(tibble(tag_im_Jahr = 365))
      1 
1341154 

In der folgenden Abbildung habe ich dir dann mal den Verlauf über den Herbst der Jahre dargestellt. Neben der unterschiedlichen Steigung sehen wir auch, dass wir wirklich im Jahr 2025 die eine Million Fahrräder locker erreicht haben. Das Ganze war dann im Jahr 2024 sehr viel knapper. Am Ende des Jahres fahren dann einfach keine Fahrräder mehr.

Abbildung 7.3— Zusammenhang zwischen dem zeitlichen Verlauf der beiden Jahre 2024 sowie 2025 und der gezählten Anzahlen an Fahhrädern in Osnabrück. [Zum Vergrößern anklicken]

7.3 Von hohen Bäumen

Dann schauen wir uns noch einen Datensatz von hohen Bäumen an. Wir haben hier einen sehr simplen Datensatz, aber wir können hier gut den Zusammenhang zwischen einem statistischen und mathematischen Modell diskutieren. Den es gibt ja einen Zusammenhang zwischen den Umfang und dem Volumen eines Objektes oder eben Baum. Wir finden den Datensatz im R Paket {tidymodels}.

R Code [zeigen / verbergen]
pacman::p_load(tidymodels)

Ein bisschen mehr kannst du auch Von dem Umfang von Bäumen woanders lesen. Wir konzentrieren uns hier einmal auf die Daten und nutzen diese Daten später in anderen Kapiteln. Der Baumumfang circumfence ist gemessen in Zoll, die Höhe height ist gemessen in Fuß und Volumen volume ist gemessen in Kubikfuß. Das ist grässlich und deshalb alles einmal in Zentimeter umgerechnet. Das ist dann auch sinnvoller. Wir laden also einmal die Daten und mutieren dann die Spalten entsprechend.

R Code [zeigen / verbergen]
data(trees)
trees_tbl <- trees |>
  as_tibble() |> 
  set_names(c("circumfence", "height", "volume")) |> 
  mutate(circumfence_cm = circumfence * 2.54,
         height_cm = height * 30.48,
         volume_cm3 = volume * 30.48^3) |> 
  mutate_all(round, 2) |> 
  select(circumfence_cm, height_cm, volume_cm3)

In der folgenden Tabelle ist dann nochmal ein Auszug aus den Daten zu sehen. Ich habe dann mal schnell auf zwei Kommastellen gerundet.

Tabelle 7.3— Auszug aus dem Daten zu den hohen Bäumen.
circumfence_cm height_cm volume_cm3
21.08 2133.6 291663.52
21.84 1981.2 291663.52
22.35 1920.24 288831.84
26.67 2194.56 464396.28
27.18 2468.88 532356.72
27.43 2529.84 557841.88
43.94 2468.88 1568753.3
44.45 2499.36 1577248.36
45.47 2438.4 1650872.16
45.72 2438.4 1458317.6
45.72 2438.4 1444159.18
52.32 2651.76 2180397.19

Dann bietet sich auch hier einmal eine Abbildung an. Ich habe dann einmal den Zusammenhang zwischen den Baumumfang und der Baumhöhe dargestellt und die Volumen einmal als größer werdende Kreise. Später dann mehr zu der Modellierung dieser Daten in den entsprechenden Kapiteln oder aber YouTube Videos.

Abbildung 7.4— Scatterplot des Zusamenhangs zwischen den Baumumfang und der Baumhöhe. Das Baumvolumen ist in unterschiedlicher Größe der Punkte dargestellt. [Zum Vergrößern anklicken]

7.4 Von fröhlichen Pinguinen

Abbildung 7.5— Darstellung der Schnabellänge (eng. bill length) und der Schnabelhöhe (eng. bill depth) für die Pinguindaten. Hier ist mit bill wirklich der Schnabel und nicht die. Rechnung gemeint.

Als ich über den Artikel Stop using iris als Datensatz gestolpert bin, habe ich mich dann auch entschlossen einmal den Datensatz {palmerpenguins} aus dem gleichnamigen Paket zu nutzen und vorzustellen. Wir laden also einmal das R Paket und dann die Daten.

R Code [zeigen / verbergen]
pacman::p_load(palmerpenguins)

Da die Daten schon aufgearbeitet sind, brauchen wir hier nicht viel machen. Es gibt noch eine rohe Version der Daten, wo dann mehr gemacht werden muss, aber mir reicht hier die aufgearbeitete Version allemal.

R Code [zeigen / verbergen]
data("penguins")
penguins_tbl <- penguins

Dann kommen wir auch schon zu dem Auszug aus den Daten. Wir haben hier zwei Faktoren mit jeweils drei Arten und zwei Inseln vorliegen sowie eben einiges an numerischen Messwerten für die Pinguine. Dazu kommt noch das Geschlecht und eben auch das Messjahr. Hier können wir dann einiges an Gruppenvergleichen entsprechend rechnen.

Tabelle 7.4— Auszug aus dem Daten zu den fröhlichen Pinguinen.
species island bill_length_mm bill_depth_mm flipper_length_mm body_mass_g sex year
Adelie Torgersen 39.1 18.7 181 3750 male 2007
Adelie Torgersen 39.5 17.4 186 3800 female 2007
Adelie Torgersen 40.3 18 195 3250 female 2007
Adelie Torgersen 2007
Adelie Torgersen 36.7 19.3 193 3450 female 2007
Adelie Torgersen 39.3 20.6 190 3650 male 2007
Chinstrap Dream 45.7 17 195 3650 female 2009
Chinstrap Dream 55.8 19.8 207 4000 male 2009
Chinstrap Dream 43.5 18.1 202 3400 female 2009
Chinstrap Dream 49.6 18.2 193 3775 male 2009
Chinstrap Dream 50.8 19 210 4100 male 2009
Chinstrap Dream 50.2 18.7 198 3775 female 2009

7.5 Von fliegenden Adlern

Adler sind großartige Tiere und deshalb wollen wir auch Adler bemessen. Dann haben wir einen Datensatz mit dem wir arbeiten und uns die Tiere genauer anschauen können. Wir laden wieder unser Paket und dann die entsprechenden Daten.

R Code [zeigen / verbergen]
pacman::p_load(Stat2Data)

Hier nutze ich die Daten wie sie eben vorliegen. Später können wir dann noch die Datenaufarbeiten und schöner machen. Hier eben einmal die rohen Daten zu den Adlern.

R Code [zeigen / verbergen]
data("Hawks")
hawks_tbl <- Hawks |> 
  as_tibble()

In der folgenden Tabelle siehst du einmal die Daten zu den Adlern. Wir haben hier eine ganze Reihe an Variablen von Zeitangaben bis hin dem Alter als Faktor in adult und juvenile. Dann haben wir noch einiges gemessen, wenn es möglich war. Wir haben hier also spannende Daten mit einiges an fehlenden Daten vorliegen.

Tabelle 7.5— Auszug aus dem Daten zu den fliegenden Adlern.
Month Day Year CaptureTime ReleaseTime BandNumber Species Age Sex Wing Weight Culmen Hallux Tail StandardTail Tarsus WingPitFat KeelFat Crop
9 19 1992 13:30 877-76317 RT I 385 920 25.7 30.1 219
9 22 1992 10:30 877-76318 RT I 376 930 221
9 23 1992 12:45 877-76319 RT I 381 990 26.7 31.3 235
9 23 1992 10:50 745-49508 CH I F 265 470 18.7 23.5 220
9 27 1992 11:15 1253-98801 SS I F 205 170 12.5 14.3 157
9 28 1992 11:25 1207-55910 RT I 412 1090 28.5 32.2 230
11 18 2003 14:07 1207-53144 RT I 366 805 23.5 25.7 217 222 1.5 0.25
11 18 2003 14:44 1177-04777 RT I 380 1525 26 27.6 224 227 3 0
11 19 2003 10:18 803-05985 SS I F 190 175 12.7 15.4 150 153 4 0
11 19 2003 12:02 1807-53145 RT I 360 790 21.9 27.6 211 215 2 0
11 20 2003 9:56 1177-04778 RT I 369 860 25.2 28 207 210 2 0
11 20 2003 13:30 1207-53145 RT A 199 1290 28.7 32.1 222 226 1 0

7.6 Von infizierten Ferkeln

Im Folgenden schauen wir uns den anonymisierten Datensatz zu einer Ferkelinfektion an. Wir haben verschiedene Gesundheitsparameter an den Ferkeln gemessen und wollen an diesen Rückschließen, ob diese Gesundheitsparameter etwas mit der Infektion zu tun haben. Insgesamt haben wir gut \(400\) Ferkel an vier verschiedenen Orten in Niedersachsen gemessen.

Tabelle 7.6— Auszug aus dem Daten zu den kranken Ferkeln.
age sex location activity crp frailty bloodpressure weight creatinin infected
61 male northeast 15.31 22.38 robust 62.24 19.05 4.44 1
53 male northwest 13.01 18.64 robust 54.21 17.68 3.87 1
66 female northeast 11.31 18.76 robust 57.94 16.76 3.01 0
59 female north 13.33 19.37 robust 56.15 19.05 4.35 1
63 male northwest 14.71 21.57 robust 55.38 18.44 5.27 1
55 male northwest 15.81 21.45 robust 60.29 18.42 4.78 1
54 female north 11.82 21.5 pre-frail 55.32 19.75 3.92 1
56 male west 13.91 20.8 frail 58.37 17.28 7.44 0
57 male northwest 12.49 21.95 pre-frail 56.66 16.86 2.44 1
61 male northwest 15.26 23.1 robust 57.18 15.55 3.08 1
59 female north 13.13 20.23 robust 56.64 18.6 3.41 0
63 female north 10.01 19.89 robust 57.46 18.6 4.2 1

Auch hier haben wir nur eingeschränkte Informationen zu den erhobenen Variablen. Daher müssen wir schauen, dass die Variablen in etwa Sinn ergeben.

  • age, das Alter in Lebenstagen der untersuchten Ferkel.
  • sex, das bestimmte Geschlecht der Ferkel.
  • location, anonymisierter Ort der Untersuchung. Wir unterscheiden zwischen Norden, Nordosten, West und Nordwest in Niedersachsen.
  • activity, Minuten an Aktivität pro Stunde. Die Aktivität wurde über eine automatische Bilderkennung bestimmt. Dabei musste die Bewegung ein gewisses Limit übersteigen. Einfach rumgehen hat nicht gereicht um gezählt zu werden.
  • crp, der CRP-Wert in mg/l aus der Blutprobe. Das Ausmaß des CRP-Anstiegs gibt einen Hinweis auf die Schwere der zugrundeliegenden Krankheit.
  • frailty, die visuelle Einordnung des Gesundheitszustandes anhand der Beweglichkeit des Ferkels. Nach einem Punkteschema wurden die Ferkel in die drei Gruppen robust, pre-frail und frail eingeteilt.
  • bloodpressure, gemessener Blutdruck der Ferkel.
  • weight, das gemessene Gewicht der Ferkel in kg.
  • creatinin, der Creatinin-Wert aus der Blutprobe. Zu hohe Kreatinin-Werte können auf eine Nierenschwäche, Verletzungen der Muskulatur oder eine Entzündung der Haut und Muskulatur hindeuten.
  • infected, der Infektionsstatus zum Zeitpunkt der Untersuchung.

Wir nutzen den Datensatz unter anderem in der logistischen Regression in Kapitel 59.

TippDatei von den infizierten Ferkeln

Du findest die Datei infected_pigs.xlsx auf GitHub jkruppa.github.io/data/ als Excel Datei.

7.7 Von langnasigen Hechten

In der folgenden Datentabelle wollen wir uns die Anzahl an Hechten in verschiedenen nordamerikanischen Flüßen anschauen. Jede Zeile des Datensatzes steht für einen Fluss. Wir haben dann in jedem Fluss die Anzahl an Hechten gezählt und weitere Flussparameter erhoben. Wir fragen uns, ob wir anhand der Flussparameter eine Aussage über die Anzahl an Hechten in einem Fluss machen können. Die Daten zu den langnasigen Hechten stammt von Salvatore S. Mangiafico - An R Companion for the Handbook of Biological Statistics.

Tabelle 7.7— Auszug aus dem Daten zu den langnasigen Hechten.
stream longnose area do2 maxdepth no3 so4 temp
basin_run 13 2528 9.6 80 2.28 16.75 15.3
bear_br 12 3333 8.5 83 5.34 7.74 19.4
bear_cr 54 19611 8.3 96 0.99 10.92 19.5
beaver_dam_cr 19 3570 9.2 56 5.44 16.53 17
beaver_run 37 1722 8.1 43 5.66 5.91 19.3
bennett_cr 2 583 9.2 51 2.26 8.81 12.9
seneca_cr 23 18422 9.9 45 1.58 8.37 20.1
south_br_casselman_r 2 6311 7.6 46 0.64 21.16 18.5
south_br_patapsco 26 1450 7.9 60 2.96 8.84 18.6
south_fork_linganore_cr 20 4106 10 96 2.62 5.45 15.4
tuscarora_cr 38 10274 9.3 90 5.45 24.76 15
watts_br 19 510 6.7 82 5.25 14.19 26.5

Wie immer haben wir nicht so viele Informationen über die Daten vorliegen. Einiges können wir aber aus den Namen der Spalten in dem Datensatz ableiten. Wir haben in verschiedenen Flüssen die Anzahl an Hechten gezählt und noch weitere Flussparameter gemessen. Ein wenig müssen wir hier auch unsere eigene Geschichte spinnen.

  • stream, beschreibt den Fluss, wo die Messung der Anzahl an langnasigen Hechten stattgefunden hat.
  • longnose, die Anzahl der Hechte, die in einem Flussarm in einer definierten Zeit gezählet wurden.
  • area, erfasste Oberfläche des Flusses in dem gemessenen Gebiet. Die Fläche wurde über Satelietenbilder bestimmt.
  • do2, gemessener Partialdruck von Sauerstoiff \(O_2\) im Wasser und damit auch der verfügbarer Sauerstoff (engl. Oxygen-Delivery, DO2) im Wasser.
  • maxdepth, die maximale Tiefe des Flusses über mindestens einen Kilometer. Kürze Tiefen wurden nicht berücksichtigt.
  • no3, die gemessene Nitratkonzentration im Wasser.
  • so4, die gemessene Schwefelkonzentration im Wasser.
  • temp, gemessene Temperatur in dem Flussarm zur Zeit der Zählung.

Wir nutzen den Datensatz unter anderem in der Poisson Regression in Kapitel 56.

TippDatei von den langnasigen Hechten

Du findest die Datei longnose.csv auf GitHub jkruppa.github.io/data/ als Csv Datei.

7.8 Von den Kichererbsen in Brandenburg

Im Folgenden schauen wir uns die Daten eines Pilotprojektes zum Anbau von Kichererbsen in Brandenburg an. Wir haben an verschiedenen anonymisierten Bauernhöfen Kichererbsen angebaut und das Trockengewicht als Endpunkt bestimmt. Darüber hinaus haben wir noch andere Umweltparameter erhoben und wollen schauen, welche dieser Parameter einen Einfluss auf das Trockengewicht hat.

Tabelle 7.8— Auszug aus dem Daten zu den Kichererbsen in Brandenburg.
temp rained location no3 fe sand forest dryweight
25.26 high north 5.56 4.43 63 >1000m 253.42
21.4 high northeast 9.15 2.58 51.17 <1000m 213.88
27.84 high northeast 5.57 2.19 55.57 >1000m 230.71
24.59 low north 7.97 1.47 62.49 >1000m 257.74
26.51 low north 6.29 4.3 59.09 >1000m 242.03
22.3 low northeast 6.69 4.78 58.72 >1000m 236.98
25.04 low northeast 5.64 2.22 59.47 >1000m 240.28
28.77 low west 6.55 2.26 61.11 >1000m 268.39
25.47 low north 6.92 3.18 64.55 <1000m 268.58
29.04 low north 5.64 2.87 53.27 >1000m 236.07
24.11 high northeast 4.31 3.66 63 <1000m 259.82
28.88 low northeast 7.92 2 65.75 >1000m 274.75

Es ist ja schon fast Mode, aber auch hier haben wir wenig bis gar keine Informationen zu den erhobenen Variablen. Daher machen wir das Beste aus der Sachlage und überlegen uns was hier passen könnte.

  • temp, die mittlere Temperatur über die Wachstumsperiode.
  • rained, erfasste Regenmenge im Vergleich zum 10jähigen Mittel.
  • location, anonymisierter Ort der Untersuchung.
  • no3, die gemessene Nitratkonzentration im Boden.
  • so4, die gemessene Eisenkonzentration im Boden.
  • sand, der Anteil an Sand im Boden.
  • forest, der Abstand zum nächsten geschlossenen Waldstück.
  • dryweight, das Trockengewicht der Kichererbsen gemittelt über eine Hektar.

Wir nutzen den Datensatz unter anderem in der Gaussian Regression in Kapitel 55.

TippDatei von den Kichererbsen in Brandenburg

Du findest die Datei chickpeas.xlsx auf GitHub jkruppa.github.io/data/ als Excel Datei.

Referenzen

Cadiergues, M.-C., Joubert, C., & Franc, M. (2000). A comparison of jump performances of the dog flea, Ctenocephalides canis (Curtis, 1826) and the cat flea, Ctenocephalides felis felis (Bouché, 1835). Veterinary parasitology, 92(3), 239–241.
Yang, P. J., Pham, J., Choo, J., & Hu, D. L. (2014). Duration of urination does not change with body size. Proceedings of the National Academy of Sciences, 111(33), 11932–11937.