Hypothesentest – Differenz der Mittelwerte
Wir wollen die Hypothese testen, dass sich die durchschnittlichen Spenden von A und B unterscheiden. Zuvor hast du gelernt, wie man eine Permutation der Daten erzeugt. Jetzt erzeugen wir eine Nullverteilung der Differenz der Mittelwerte und berechnen anschließend den p-Wert.
Für die Nullverteilung erzeugen wir zunächst mehrere permutierte Datensätze und speichern die Differenz der Mittelwerte für jeden Fall. Dann berechnen wir die Teststatistik als die Differenz der Mittelwerte mit dem ursprünglichen Datensatz. Schließlich approximieren wir den p-Wert, indem wir den doppelten Anteil der Fälle berechnen, in denen die Differenz größer oder gleich dem Absolutwert der Teststatistik ist (zweiseitige Hypothese). Ein p-Wert von weniger als z. B. 0,05 kann dann auf statistische Signifikanz hinweisen.
Diese Übung ist Teil des Kurses
Statistische Simulation in Python
Anleitung zur Übung
- Erzeuge mehrere Permutationen von
donations_Aunddonations_Bund weise siepermzu. - Setze
samplesauf die Differenz der Mittelwerte vonpermuted_A_datasetsundpermuted_B_datasets. Wir setzenaxis=1, damit es einen Mittelwert pro Datensatz gibt statt eines Gesamtmittelwerts. - Setze
test_statauf die Differenz der Mittelwerte vondonations_Aunddonations_B. - Berechne den p-Wert
p_valals das Doppelte des Anteils dersamples, die größer oder gleich dem Absolutwert vontest_statsind.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# Generate permutations equal to the number of repetitions
perm = np.array([np.random.____(len(____) + len(____)) for i in range(reps)])
permuted_A_datasets = data[perm[:, :len(donations_A)]]
permuted_B_datasets = data[perm[:, len(donations_A):]]
# Calculate the difference in means for each of the datasets
samples = np.mean(____, axis=1) - np.mean(____, axis=1)
# Calculate the test statistic and p-value
test_stat = ____
p_val = 2*np.sum(____ >= np.abs(____))/reps
print("p-value = {}".format(p_val))