LoslegenKostenlos loslegen

Bootstrap-Hypothesentest zu Spermienzahlen bei Bienen

Jetzt testest du folgende Hypothese: Im Mittel haben männliche Bienen, die mit Neonicotinoid-Insektiziden behandelt wurden, die gleiche Anzahl lebender Spermien pro Milliliter Sperma wie unbehandelte männliche Bienen. Du verwendest die Differenz der Mittelwerte als Teststatistik.

Zur Erinnerung: Die Funktionssignatur für draw_bs_reps() die du in Kapitel 2 geschrieben hast lautet draw_bs_reps(data, func, size=1).

Diese Übung ist Teil des Kurses

Statistical Thinking in Python (Teil 2)

Kurs anzeigen

Anleitung zur Übung

  • Berechne den Mittelwert der lebenden Spermien von control minus den von treated.
  • Berechne den Mittelwert aller lebenden Spermien. Füge dazu zuerst control und treated zusammen und nimm den Mittelwert des zusammengefügten Arrays.
  • Erzeuge verschobene Datensätze für control und treated, sodass beide verschobenen Datensätze den gleichen Mittelwert haben. Das wurde bereits für dich erledigt.
  • Erzeuge 10.000 Bootstrap-Replikate des Mittelwerts für jedes der beiden verschobenen Arrays. Verwende dazu deine Funktion draw_bs_reps().
  • Berechne die Bootstrap-Replikate der Differenz der Mittelwerte.
  • Der Code zur Berechnung und Ausgabe des p-Werts wurde für dich geschrieben. Klicke auf Antwort senden, um das Ergebnis zu sehen!

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# Compute the difference in mean sperm count: diff_means
diff_means = ____

# Compute mean of pooled data: mean_count
mean_count = ____

# Generate shifted data sets
control_shifted = control - np.mean(control) + mean_count
treated_shifted = treated - np.mean(treated) + mean_count

# Generate bootstrap replicates
bs_reps_control = ____(____,
                       np.mean, size=10000)
bs_reps_treated = ____(____,
                       np.mean, size=10000)

# Get replicates of difference of means: bs_replicates
bs_replicates = ____

# Compute and print p-value: p
p = np.sum(bs_replicates >= np.mean(control) - np.mean(treated)) \
            / len(bs_replicates)
print('p-value =', p)
Code bearbeiten und ausführen