Aan de slagGa gratis aan de slag

Toetsen van hypothesen - Verschil in gemiddelden

We willen de hypothese toetsen dat er een verschil is in de gemiddelde donaties die zijn ontvangen van A en B. Eerder heb je geleerd hoe je één permutatie van de data kunt genereren. Nu genereren we een nulverdeling van het verschil in gemiddelden en berekenen we vervolgens de p-waarde.

Voor de nulverdeling genereren we eerst meerdere gepermuteerde gegevenssets en slaan we het verschil in gemiddelden voor elk geval op. Vervolgens berekenen we de toetsingsgrootheid als het verschil in gemiddelden met de oorspronkelijke gegevensset. Ten slotte benaderen we de p-waarde door twee keer het aandeel gevallen te nemen waarin het verschil groter is dan of gelijk is aan de absolute waarde van de toetsingsgrootheid (tweezijdige hypothese). Een p-waarde kleiner dan bijvoorbeeld 0,05 kan dan wijzen op statistische significantie.

Deze oefening maakt deel uit van de cursus

Statisticale simulatie in Python

Cursus bekijken

Oefeninstructies

  • Genereer meerdere permutaties van donations_A & donations_B en ken dit toe aan perm.
  • Zet samples gelijk aan het verschil in gemiddelden van permuted_A_datasets & permuted_B_datasets. We zetten axis=1 zodat je een gemiddelde per gegevensset krijgt in plaats van één overall gemiddelde.
  • Zet test_stat gelijk aan het verschil in gemiddelden van donations_A & donations_B.
  • Bereken de p-waarde p_val als twee keer het aandeel van samples dat groter is dan of gelijk is aan de absolute waarde van test_stat.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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 bewerken en uitvoeren