Mathematik für Biologiestudierende¶

Wintersemester 2025/26

03.12.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¶

  • Normalapproximation zur Versuchsplanung
  • t-Test
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
from scipy import stats

Normalverteilungen¶

  • Die Zufallsvariable $X$ heißt normalverteilt zum Erwartungswert $\mu$ und der Varianz $\sigma^2$, wenn ihre Standardisierung standard-normalverteilt ist. Man sagt dann, $X$ sei $N(\mu, \sigma^2)$-verteilt.

Quantile¶

  • $F$ die Verteilungsfunktion einer Zufallsvariablen
  • Die Zahl $u$ mit $F(u)=x$ ist das Quantil von $x$
  • Wenn $X$ standard-normalverteilt ist, dann bezeichnet man dieses Quantil mit $q_x$
  • Also $F(q_x) = x$.
  • Die Quantile der anderen Normalverteilungen haben keine festgelegte Bezeichnung

Beispiel¶

  • Der Vitamin-C-Gehalt von Zitronen beträgt 5.3%
  • Seine Streuung beträgt 0.8%
  • Die Zufallsvariable $X$ modelliert den Vitamin-C-Gehalt einer Zitrone
  • Dann ist $X$ verteilt gemäß $N(0.053, 0.008^2)$
In [2]:
P = stats.norm(0.053, 0.008)
  • Bei welchem Anteil der Zitronen liegt der Vitamin-C-Gehalt unter 5%?
  • Das ist eine Frage nach der Verteilungsfunktion $F(x) = P(X \le x)$
  • Die Verteilungsfunktion wird aufgerufen als P.cdf
In [3]:
P.cdf(0.05)
Out[3]:
0.35383023332727637
  • Welchen Vitamin-C-Gehalt erreichen mindestens 75% aller Zitronen?
  • Das ist eine Frage nach einem Quantil.
  • Wir suchen das $x$ mit $P(X \ge x) = 0.75$
  • also $F(x) = P(X \le x) = 0.25$
  • $x$ ist das Quantil von 0.25
  • Das Quantil ist nämlich die Umkehrfunktion von $F$
  • Das Quantil wird aufgerufen als P.ppf
In [4]:
P.ppf(0.25)
Out[4]:
0.047604081998431344
  • 75% aller Zitronen haben einen Vitamin-C-Gehalt von mindestens 4.76%

Normalapproximation¶

  • $X$ sei $B(n,p)$-verteilt
  • Es gilt näherungsweise für natürliche Zahlen $a < b$ $$ P(a \le X \le b) \cong \Phi\!\left( \frac{b - n \cdot p}{\sqrt{n \cdot p \cdot (1-p)}} \right) - \Phi\!\left( \frac{a - n \cdot p}{\sqrt{n \cdot p \cdot (1-p)}} \right) $$
  • Wenn $a = 0$ oder $b = n$ ist, braucht man nur einen Term \begin{align*} P(a \le X) &\cong 1 - \Phi\!\left( \frac{a - n \cdot p}{\sqrt{n \cdot p \cdot (1-p)}} \right) \\ P(X \le b) &\cong \Phi\!\left( \frac{b - n \cdot p}{\sqrt{n \cdot p \cdot (1-p)}} \right) \end{align*}

Beispiel: Extinktionsexperiment¶

  • Ein Extinktionsexperiment wird geplant, bei dem die Versuchstiere eine einmal erlernte Aufgabe wieder verlernen sollen. Dazu sollen zuerst mindestens 50 Tiere diese Handlung erlernen.
  • Aus früheren Versuchen weiß man, dass dies nur bei 80% der Versuchstiere gelingt.
  • Wir trainieren 60 Tiere.
  • Wie groß ist die Wahrscheinlichkeit, dass 50 Tiere die Aufgabe erlernen?

Normalapproximation:

$$ P(a \le X) \cong 1 - \Phi\!\left( \frac{a - n \cdot p}{\sqrt{n \cdot p \cdot (1-p)}} \right) $$

In [5]:
a = 50
n = 60
p = 0.8
In [6]:
u = (a - n*p) / np.sqrt(n*p*(1-p))
u
Out[6]:
0.6454972243679029
In [7]:
Phi = stats.norm()
1 - Phi.cdf(u)
Out[7]:
0.25930250821436274

Die Wahrscheinlichkeit, dass mindestens 50 Tiere die Aufgabe erlernen, beträgt nur 26%

  • Wir wollen zu 90% sicher sein, dass mindestens 50 Tiere die Aufgabe erlernen.
  • Wie viele Tiere müssen wir trainieren?

Normalapproximation in der Versuchsplanung¶

Normalapproximation¶

  • $X$ ist die Anzahl der Tiere, welche die Aufgabe gelernt haben
  • $X$ ist $B_{n,p}$-verteilt für $p=0.8$ und unbekanntes n
  • Ziel $$ P(50 \le X) \ge 0.9 $$

$$ P(50 \le X) \cong 1 - \Phi\left( \frac{50 - 0.8 \cdot n}{\sqrt{n \cdot 0.8 \cdot 0.2}} \right) \overset{!}{=} 0.9 $$

Das bedeutet $$ \Phi\left( \frac{50 - 0.8 \cdot n}{\sqrt{0.16 \cdot n}} \right) = 0.1 $$

  • Wir benötigen das $u$ mit $\Phi(u) = 0.1$
  • Das ist das Quantil $q_{0.1}$
In [8]:
Phi.ppf(0.1)
Out[8]:
-1.2815515655446004
  • neue Gleichung $$ \frac{50 - 0.8 \cdot n}{\sqrt{0.16 \cdot n}} = -1.28155 $$

Nenner hochmultiplizieren

In [9]:
-1.28155 * np.sqrt(0.16)
Out[9]:
-0.51262

neue Gleichung $$ 50 - 0.8n = -0.51262 \sqrt n $$

Trick: Wir nennen $\sqrt n$ mal kurz $x$ und bringen alles auf die linke Seite. Dann können wir mit der p-q-Formel weitermachen

$$ 50 - 0.8 x^2 + 0.51262 x = 0 $$

In [10]:
50 / 0.8
Out[10]:
62.5
In [11]:
0.51262 / 0.8
Out[11]:
0.6407749999999999

Die p-q-Formel wird angewandt auf $$ x^2 - 0.640775x - 62.5 = 0 $$

$$ x = \frac{0.640775}2 \pm \sqrt{\frac{0.640775^2}4 + 62.5} $$

Die negative Lösung ist unsinnig

In [12]:
x = 0.640775 / 2 + np.sqrt(0.640775**2/4 + 62.5)
x
Out[12]:
8.232571026066383
  • Das ist der Wert der Lösung für $x$.
  • Wir suchen aber $n$
In [13]:
n = x**2
n
Out[13]:
67.77522569922769
  • Also 68 Tiere.
  • Das ist dasselbe Ergebnis, das wir in Lektion 9 mit zwei anderen Methoden herausbekommen hatten.

Vereinfachte Rechnung für ein ähnliches Problem¶

  • Ein Tulpenbauer hat 31000 Zwiebeln eingepflanzt
  • Jede einzelne wächst mit einer Wahrscheinlichkeit von 0.965 zu einer Pflanze mit Blütenknospe heran, die er dann ernten kann
  • Die Wahrscheinlichkeit, dass mindestens 30000 Blüten geerntet werden, beträgt unter 0.5%
  • Der Tulpenbauer muss einen Vertrag über 30000 Blüten erfüllen.
  • Da eine Vertragsstrafe vereinbart wurde, will er zu 98% sicher sein, dass diese 30000 Blüten heranwachsen.
  • Diese Aufgabe ist der vorigen eng verwandt.
  • Anstelle der genauen Lösung der quadratischen Gleichung soll jetzt aber näherungsweise gerechnet werden.

Normalapproximation

$$ P(30\,000 \le X) \cong 1 - \Phi\left( \frac{30\,000 - 0.965 \cdot n}{\sqrt{n \cdot 0.965 \cdot 0.035}} \right) \overset{!}{=} 0.98 $$

  • Wenn kein Zufall im Spiel wäre, dann bräuchten wir $\displaystyle \frac{30\,000}{0.965}$ Zwiebeln
In [14]:
30000 / 0.965
Out[14]:
31088.082901554404
  • Wir ersetzen das n im Nenner durch diese Zahl
In [15]:
nenner = np.sqrt(31088 * 0.965 * 0.035)
nenner
Out[15]:
32.40366028707251

neue Gleichung

$$ \Phi\left( \frac{30\,000 - 0.965 \cdot n}{32.40} \right) = 0.02 $$

Benötigtes Quantil

In [16]:
Phi.ppf(0.02)
Out[16]:
-2.053748910631823

also

$$ \frac{30\,000 - 0.965 \cdot n}{32.40} = -2.054 $$

Nenner hochmultiplizieren

In [17]:
nenner * 2.054
Out[17]:
66.55711822964693

$$ 30\,000 - 0.965 \cdot n = -66.56 $$

In [18]:
(30000 + 66.56) / 0.965
Out[18]:
31157.056994818657

Es müssen 31157 Tulpenzwiebeln angebaut werden.

Probe:

In [19]:
P = stats.binom(31157, 0.965)
In [20]:
1 - P.cdf(29999)
Out[20]:
0.9798364230197576

Fast eine Punktlandung