Testowanie hipotez – różnica średnich
Chcemy przetestować hipotezę, że istnieje różnica w średnich darowiznach otrzymanych z grup A i B. W poprzednim ćwiczeniu nauczyłeś(-aś) się generować jedną permutację danych. Teraz wygenerujemy rozkład zerowy różnicy średnich, a następnie obliczymy p-wartość.
Aby uzyskać rozkład zerowy, najpierw generujemy wiele permutowanych zbiorów danych i zapisujemy różnicę średnich dla każdego przypadku. Następnie obliczamy statystykę testową jako różnicę średnich na oryginalnym zbiorze danych. Na koniec szacujemy p-wartość, obliczając dwukrotność frakcji przypadków, w których różnica jest większa lub równa wartości bezwzględnej statystyki testowej (hipoteza dwustronna). P-wartość mniejsza niż np. 0,05 może świadczyć o istotności statystycznej.
To ćwiczenie jest częścią kursu
Symulacje statystyczne w Pythonie
Instrukcje do ćwiczenia
- Wygeneruj wiele permutacji
donations_Aidonations_Bi przypisz wynik doperm. - Ustaw
samplesjako różnicę średnich zbiorówpermuted_A_datasetsipermuted_B_datasets. Użyjaxis=1, aby uzyskać średnią dla każdego zbioru danych zamiast średniej globalnej. - Ustaw
test_statjako różnicę średnichdonations_Aidonations_B. - Oblicz p-wartość
p_valjako dwukrotność frakcji wartościsampleswiększych lub równych wartości bezwzględnejtest_stat.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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))