Mathematik für Biologiestudierende¶

Wintersemester 2025/26

  1. Oktober 2025

© 2025 Prof. Dr. Rüdiger W. Braun

Wiederholung (interaktiv)¶

Gehen Sie auf die Website

  • https://pingo.coactum.de

und geben Sie folgende Zugangsnummer ein

  • 670719

oder scannen Sie den QR-Code

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

In [1]:
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
In [2]:
rng = np.random.default_rng()

Zufallsgenerator, englisch "random number generator"

In [3]:
rng.random()
Out[3]:
0.2526841796035232

zufällige Gleitkommazahl zwischen 0 und 1

In [4]:
rng.random()
Out[4]:
0.07437195008637254
In [5]:
rng.random()
Out[5]:
0.5658742142161289
In [6]:
rng.random(size=5)
Out[6]:
array([0.76372166, 0.17793248, 0.40657386, 0.49561853, 0.66836286])
In [7]:
rng.integers(10, 20)
Out[7]:
18

rng.integers(n, m) zufällige ganze Zahl zwischen n (eingeschlossen) und m (ausgeschlossen)

In [8]:
liste = np.arange(10)**2
liste
Out[8]:
array([ 0,  1,  4,  9, 16, 25, 36, 49, 64, 81])
In [9]:
rng.choice(liste, 15)
Out[9]:
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

In [10]:
rng.choice(liste, 10, replace=False)
Out[10]:
array([25, 81, 16,  9,  4,  0,  1, 49, 64, 36])

mit replace = False werden Wiederholungen verboten

Seeding¶

In [11]:
rng = np.random.default_rng(1234)

1234 ist das seed

In [12]:
rng.integers(1, 20, size=5)
Out[12]:
array([19, 19, 19,  8,  4])
In [13]:
rng.integers(1, 20, size=5)
Out[13]:
array([18,  2,  5,  3,  7])
In [14]:
rng = np.random.default_rng(1234)
In [15]:
rng.integers(1, 20, size=5)
Out[15]:
array([19, 19, 19,  8,  4])

Wozu soll das gut sein?

  • um beim Test von Programmen definierte Ausgangslagen zu haben

Beispiel zur Versuchsplanung¶

Folgendes Experiment:

  • 25 Fische zufällig ausgewählt
  • 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?