Mathematik für Biologiestudierende¶
Wintersemester 2025/26
- Oktober 2025
© 2025 Prof. Dr. Rüdiger W. Braun
Wiederholung (interaktiv)¶
Gehen Sie auf die Website
und geben Sie folgende Zugangsnummer ein
- 670719
oder scannen Sie den QR-Code

Themen heute¶
- Merkmale
- Zufallsstichproben
- Histogramme
Merkmale¶
Grundbegriffe¶
- die Elemente der Grundgesamtheit sind Träger von Merkmalen
- die Merkmale haben verschiedene Ausprägungen
- jedes Element der Grundgesamtheit besitzt für jedes Merkmal nur eine Ausprägung
Typen von Merkmalen¶
Quantitatives Merkmal:
zahlenmäßig erfassbar; Zahlenwerte besitzen Bedeutung
unterteilt in
stetiges Merkmal:
Zahlenwerte variieren kontinuierlich (z.B. Gewicht, gemessene Zeit)
diskretes Merkmal:
Skala ohne Zwischenwerte (z.B. Anzahl, Zeit in Tagen)
Qualitatives Merkmal:
alle anderen
Beispiele zu den Grundbegriffen¶
Grundgesamtheit: alle Bäume einer Baumschule
Merkmal: Art (qualitatives Merkmal)
Ausprägung: Fichte
Merkmal: Größe (quantitativ stetiges Merkmal)
Ausprägung: 3.38m
Merkmal: Pflanzdatum (quantitativ diskretes Merkmal)
Ausprägung: 9.10.2003
Matrikelnummer¶
Ist die Matrikelnummer ein quantitatives oder ein qualitatives Merkmal?
Antwort: Qualitatives Merkmal
Darstellung von Merkmalen in Python¶
- Ausprägungen qualitativer Merkmale werden als kategorielle Daten bezeichnet
- sie werden als Zeichenketten (string) dargestellt
- Beispiel
species = "Adelie"
- Zeichenketten werden in Anführungszeichen oder in Apostrophe eingeschlossen
- Beide Darstellungen sind gleichwertig
- diskrete quantitative Merkmale werden als ganze Zahlen (integer) dargestellt
- Beispiel
anzahl = 17
- kontinuierliche quantitative Merkmale werden als Gleitkommazahlen (float) dargestellt
- Beispiel
gewicht = 4.880
- Der Unterschied zwischen einer Gleitkommazahl und einer ganzen Zahl ist, dass die Gleitkommazahl einen Dezimalpunkt enthält, die ganze Zahl nicht
- Python kann ganze Zahlen exakt darstellen, Gleitkommazahlen nur näherungsweise
- Letzteres ist die Ursache der Rundungsfehler
- Der Dezimaltrenner in Python ist der Punkt
Stichproben¶
- Eine Stichprobe ist eine zufällig gewonnene Teilmenge aus der zu untersuchenden Grundgesamtheit
- Der Stichprobenumfang ist die Anzahl der Elemente in der Stichprobe
- Die Daten sind die beobachteten Ausprägungen des Merkmals bzw. der Merkmale
- Die Erfassung der Daten geschieht in der Urliste, auch Protokoll genannt
- Die Urliste ist unveränderlich
Zufall¶
Zufall bedeutet für uns: Das nächste Element ist nicht vorhersehbar
Zufällige Auswahl ist nicht einfach. Man verwendet
- Würfel
- Zufallsgenerator
- und früher sogar gedruckte Zufallstafeln
weil der Computer eine deterministische Maschine ist, sind die in den verschiedenen Programmiersprachen verfügbaren Zufallsgeneratoren in Wahrheit Pseudozufallsgeneratoren, berechnen also Zahlenfolgen, die für den Beobachter unvorhersehbar sind
die Pseudozufallsgeneratoren der gängigen Programmiersprachen reichen für Versuchsplanung und Modellbildung völlig aus
Zufallsgeneratoren in Python¶
Zuerst die Importe, die wir in der letzten Stunde auch schon hatten
import numpy as np
np.set_printoptions(legacy='1.21')
import seaborn as sns
sns.set_theme()
sns.set_context('talk')
import pandas as pd
rng = np.random.default_rng()
Zufallsgenerator, englisch "random number generator"
rng.random()
0.2526841796035232
zufällige Gleitkommazahl zwischen 0 und 1
rng.random()
0.07437195008637254
rng.random()
0.5658742142161289
rng.random(size=5)
array([0.76372166, 0.17793248, 0.40657386, 0.49561853, 0.66836286])
rng.integers(10, 20)
18
rng.integers(n, m) zufällige ganze Zahl zwischen n (eingeschlossen) und m (ausgeschlossen)
liste = np.arange(10)**2
liste
array([ 0, 1, 4, 9, 16, 25, 36, 49, 64, 81])
rng.choice(liste, 15)
array([16, 64, 49, 49, 9, 9, 64, 81, 36, 25, 81, 16, 16, 81, 25])
rng.choice zufällige Auswahl von Elementen aus einer Liste, Wiederholungen zulässig
rng.choice(liste, 10, replace=False)
array([25, 81, 16, 9, 4, 0, 1, 49, 64, 36])
mit replace = False werden Wiederholungen verboten
Seeding¶
rng = np.random.default_rng(1234)
1234 ist das seed
rng.integers(1, 20, size=5)
array([19, 19, 19, 8, 4])
rng.integers(1, 20, size=5)
array([18, 2, 5, 3, 7])
rng = np.random.default_rng(1234)
rng.integers(1, 20, size=5)
array([19, 19, 19, 8, 4])
Wozu soll das gut sein?
- um beim Test von Programmen definierte Ausgangslagen zu haben
- Fische lernen, in einem Labyrinth Futter zu suchen; Zeit wird gemessen
- die Fische werden an 25 Artgenossen verfüttert
- die Artgenossen sollen im selben Labyrinth Futter suchen; Zeit wird gemessen
- die neuen Fische sind schneller
- Nobelpreis?