LoslegenKostenlos loslegen

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

Kurs anzeigen

Anleitung zur Übung

  • Erzeuge mehrere Permutationen von donations_A und donations_B und weise sie perm zu.
  • Setze samples auf die Differenz der Mittelwerte von permuted_A_datasets und permuted_B_datasets. Wir setzen axis=1, damit es einen Mittelwert pro Datensatz gibt statt eines Gesamtmittelwerts.
  • Setze test_stat auf die Differenz der Mittelwerte von donations_A und donations_B.
  • Berechne den p-Wert p_val als das Doppelte des Anteils der samples, die größer oder gleich dem Absolutwert von test_stat sind.

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))
Code bearbeiten und ausführen