Testování hypotéz – rozdíl průměrů
Chceme otestovat hypotézu, že průměrné dary přijaté od skupin A a B se liší. V předchozím cvičení jsi se naučil/a generovat jedno permutované uspořádání dat. Nyní vygenerujeme nulové rozdělení rozdílu průměrů a vypočítáme p-hodnotu.
Pro nulové rozdělení nejprve vygenerujeme více permutovaných datových sad a pro každý případ uložíme rozdíl průměrů. Poté vypočítáme testovou statistiku jako rozdíl průměrů v původní datové sadě. Nakonec odhadneme p-hodnotu jako dvojnásobek podílu případů, kde je rozdíl větší nebo roven absolutní hodnotě testové statistiky (oboustranná hypotéza). P-hodnota nižší než např. 0,05 pak může potvrzovat statistickou významnost.
Toto cvičení je součástí kurzu
Statistické simulace v Pythonu
Pokyny k cvičení
- Vygeneruj více permutací
donations_Aadonations_Ba výsledek přiřaď doperm. - Nastav
samplesjako rozdíl průměrůpermuted_A_datasetsapermuted_B_datasets. Používámeaxis=1, abychom získali průměr pro každou datovou sadu zvlášť, nikoli celkový průměr. - Nastav
test_statjako rozdíl průměrůdonations_Aadonations_B. - Vypočítej p-hodnotu
p_valjako dvojnásobek podílu hodnotsamples, které jsou větší nebo rovny absolutní hodnotětest_stat.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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))