Mathematik für Biologiestudierende¶

Wintersemester 2025/26

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

  • Wiederholung Poweranalyse
  • Mann-Whitney-U-Test
  • Rangtests
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

Poweranalyse¶

  • Man kann aus einem einseitigen unteren Test einen einseitigen oberen machen, indem man die beiden Datensätze vertauscht; umgekehrt natürlich auch.
  • Manchmal ist das sogar notwendig.

Beispiel Ertragssteigerung¶

  • Durch Bodenverbesserung soll der Ertrag beim Gemüseanbau gesteigert werden
  • Die Zufallsvariablen $X_1, ..., X_{n_1}$ geben den Ertrag auf unbearbeitem Boden an und $Y_1, ..., Y_{n_2}$ den auf bearbeitetem.
  • $\mu_1$ ist der Erwartungswert für den Ertrag auf unbearbeitetem Boden, $\mu_2$ für den auf bearbeitetem
  • Die Nullhypothese ist $H_0 = \{\mu_1 \ge \mu_2\}$. Es handelt sich also um einen einseitigen unteren Test.
  • Die Poweranalyse funktioniert aber nur für obere Tests.
  • Wir bezeichnen also mit $M_1$ den Erwartungswert für den Ertrag auf behandeltem Boden und mit $M_2$ den anderen.
  • Dann ist die Nullhypothese $H_0 = \{M_1 \le M_2\}$ und wir haben einen einseitigen oberen Test.
  • Wir planen für das Signifikanzniveau $\alpha=0.03$ und eine Effektstärke von 0.3, also einen geringen bis mittleren Effekt.
In [2]:
import statsmodels.stats.power as smp  
In [3]:
poweranalyse = smp.TTestIndPower() 
In [4]:
poweranalyse.plot_power(effect_size=[0.3], alpha=0.03, nobs=np.arange(100,450), alternative='larger');
No description has been provided for this image

Vergleich zweier Erwartungswerte bzw. zweier Mediane¶

Vergeich parametrisch nicht-parametrisch was wird verglichen
mit Referenzwert t-Test für verbundene Stichproben Wilcoxon-Test Erwartungswert
vorher-nachher t-Test für verbundene Stichproben Wilcoxon-Test Median
verschiedene Populationen t-Test für unverbundene Stichproben Mann-Whitney-U-Test Median

Mann-Whitney-U-Test¶

Den Mann-Whitney Test verwendet man zum Vergleich der Mediane unverbundener Datensätze, wenn die Normalverteilungsannahme nicht gesichert ist

In [5]:
galapagos = pd.read_csv("https://www.math.uni-duesseldorf.de/~braun/bio2526/galapagos.csv")
sns.scatterplot(galapagos.Species);
No description has been provided for this image
  • Es gibt also 5 Inseln, die eine sehr viel reichhaltigere Fauna als die anderen haben
  • Sind das die großen Inseln?
  • Alternativhypothese: Inseln mit reichhaltiger Fauna sind größer als die anderen
  • Prüfen wir mit Mann-Whitney-U-Test
In [6]:
reich = galapagos[galapagos.Species>=150]
arm = galapagos[galapagos.Species<150]
In [7]:
reich.describe()
Out[7]:
Species Area Elevation Nearest Scruz Adjacent
count 5.00000 5.000000 5.000000 5.000000 5.000000 5.000000
mean 318.60000 1373.602000 966.600000 9.860000 32.740000 128.114000
std 80.32621 1860.550153 427.743849 19.777462 25.876205 283.079535
min 237.00000 170.920000 640.000000 0.200000 0.000000 0.100000
25% 280.00000 551.620000 716.000000 0.600000 19.800000 0.520000
50% 285.00000 572.330000 864.000000 0.700000 28.100000 0.570000
75% 347.00000 903.820000 906.000000 2.600000 49.200000 4.890000
max 444.00000 4669.320000 1707.000000 45.200000 66.600000 634.490000
In [8]:
arm.describe()
Out[8]:
Species Area Elevation Nearest Scruz Adjacent
count 25.000000 25.000000 25.000000 25.000000 25.000000 25.000000
mean 38.560000 39.330000 248.320000 10.100000 61.824000 287.695200
std 34.467473 127.392845 307.762046 13.454182 73.035592 940.916069
min 2.000000 0.010000 25.000000 0.400000 0.400000 0.030000
25% 10.000000 0.210000 93.000000 1.100000 10.700000 0.520000
50% 25.000000 1.240000 147.000000 4.300000 47.400000 2.850000
75% 58.000000 17.950000 259.000000 10.700000 88.300000 59.560000
max 108.000000 634.490000 1494.000000 47.400000 290.200000 4669.320000

Nicht-parametrischer Test aus zwei Gründen erforderlich

  • Normalverteilungsannahmen verletzt
  • eine der beiden Gruppen hat nur 5 Elemente
In [9]:
res = stats.mannwhitneyu(reich.Area, arm.Area, alternative='greater')
res
Out[9]:
MannwhitneyuResult(statistic=122.0, pvalue=0.0005123847398218562)

Effektstärke beim Mann-Whitney-U-Test¶

  • die Teststatistik des Mann-Whitney-U-Tests wird mit U bezeichnet
  • die beiden Stichprobenumfänge sind $n_1$ und $n_2$

Die Formel für die Effektstärke nach Cohen's r ist $$ r = \left| 1 - \frac{2U}{n_1 \cdot n_2} \right| $$

In [10]:
U = res.statistic
n1 = 5
n2 = 25
r = 1 - 2*U/(n1*n2)
r
Out[10]:
-0.952

Also $r = 0.952$

Interpretation der Effektstärke für Cohen's r¶

r-Wert Interpretation
0.1 geringer Effekt
0.3 mittlerer Effekt
0.5 starker Effekt

Also ein sehr starker Effekt

Dieselbe Frage, aber als unterer Test:

In [11]:
stats.mannwhitneyu(arm.Area, reich.Area, alternative='less')
Out[11]:
MannwhitneyuResult(statistic=3.0, pvalue=0.0005123847398218562)

Jetzt also $U=3$

In [12]:
U = 3
n1 = 25
n2 = 5
In [13]:
r = 1 - 2*U/(n1*n2)
r
Out[13]:
0.952

Rangtests¶

  • Wilcoxon und Mann-Whitney sind Rangtests:
  • die Daten werden geordnet
  • die Ränge der Elemente der beiden Gruppen werden jeweils addiert
  • aus diesen Rangsummen werden die Teststatistiken berechnet
  • kleiner Unterschied der Rangsummen bedeuten kleine Unterschiede der Daten und daher Beibehaltung der Nullhypothese
In [14]:
galapagos['Rang'] = galapagos.Area.rank()
galapagos.head()
Out[14]:
Island Species Area Elevation Nearest Scruz Adjacent Rang
0 Baltra 58 25.09 346 0.6 0.6 1.84 21.0
1 Bartolome 31 1.24 109 0.6 26.3 572.33 12.5
2 Caldwell 3 0.21 114 2.8 58.7 0.78 7.0
3 Champion 25 0.10 46 1.9 47.4 0.18 5.0
4 Coamano 2 0.05 77 1.9 1.9 903.82 3.0
In [15]:
reich = galapagos[galapagos.Species>=150]
arm = galapagos[galapagos.Species<150]
In [16]:
T1 = arm.Rang.sum()  #  T1 gehört zu n1 = 25
T1
Out[16]:
328.0
In [17]:
T2 = reich.Rang.sum()
T2
Out[17]:
137.0
In [18]:
U1 = n1*n2 + n1*(n1+1)/2 - T1
U1
Out[18]:
122.0
In [19]:
U2 = n1*n2 + n2*(n2+1)/2 - T2
U2
Out[19]:
3.0
  • Wie man daraus den p-Wert bestimmt, ist nicht unser Thema
  • Es gibt beim Mann-Whitney-U-Test und beim Wilcoxon-Test jeweis zwei Methoden
    • eine exakte, die bei großen Stichprobenumfängen zu lange dauert
    • eine approximative, die bei kleinen Stichproben zu ungenau ist
    • Wenn die Methode nicht angegeben wird, wird sie vom System bestimmt
  • Wichtig: Die tatsächlichen Werte für die Flächen der Inseln sind in die Berechnung der Teststatistik nicht eingegangen
  • eingegangen ist nur die Reihenfolge

konservative Tests¶

  • Der $t$-Test verwendet eine Verteilungsannahme: Daten müssen normalverteilt sein
  • Tests, die auch bei Verletzung der Verteilungsannahmen noch gute Ergebnisse liefern, heißen konservativ
  • Der $t$-Test ist konservativ