Hypothesentest: Sind die Schnäbel 2012 tiefer?
Dein ECDF-Plot und das Konfidenzintervall zeigen ziemlich deutlich, dass die Schnäbel von G. scandens auf Daphne Major tiefer geworden sind. Aber könnte dieser Effekt auch einfach Zufall sein? Anders gefragt: Wie hoch ist die Wahrscheinlichkeit, die beobachtete Differenz der durchschnittlichen Schnabeltiefe zu erhalten, wenn die Mittelwerte gleich wären?
Sei vorsichtig! Die Hypothese, die wir testen, ist nicht, dass die Schnabeltiefen aus derselben Verteilung stammen. Dafür könnten wir einen Permutationstest verwenden. Die Hypothese lautet, dass die Mittelwerte gleich sind. Um diesen Hypothesentest durchzuführen, müssen wir die beiden Datensätze so verschieben, dass sie denselben Mittelwert haben, und dann mit Bootstrap-Stichproben die Differenz der Mittelwerte berechnen.
Diese Übung ist Teil des Kurses
Statistical Thinking in Python (Teil 2)
Anleitung zur Übung
- Erstelle ein verkettetes Array der Schnabeltiefen von 1975 und 2012 und berechne und speichere dessen Mittelwert.
- Verschiebe
bd_1975undbd_2012so, dass ihre Mittelwerte dem eben für den kombinierten Datensatz berechneten Mittelwert entsprechen. - Ziehe je 10.000 Bootstrap-Replikate des Mittelwerts für die Schnabeltiefen von 1975 und 2012.
- Subtrahiere die Replikate von 1975 von denen von 2012, um Bootstrap-Replikate der Differenz zu erhalten.
- Berechne und gib den p-Wert aus. Die in der letzten Übung berechnete beobachtete Differenz der Mittelwerte befindet sich weiterhin als
mean_diffin deinem Namespace.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# Compute mean of combined data set: combined_mean
combined_mean = ____(____((bd_1975, bd_2012)))
# Shift the samples
bd_1975_shifted = ____
bd_2012_shifted = ____
# Get bootstrap replicates of shifted data sets
bs_replicates_1975 = ____
bs_replicates_2012 = ____
# Compute replicates of difference of means: bs_diff_replicates
bs_diff_replicates = ____
# Compute the p-value
p = np.sum(____ >= ____) / len(____)
# Print p-value
print('p =', p)