Перевірка гіпотези — Різниця середніх
Ми хочемо перевірити гіпотезу, що існує різниця в середніх пожертвах, отриманих від A і B. Раніше ви навчилися генерувати одну перестановку даних. Тепер ми згенеруємо нульовий розподіл різниці середніх, а потім обчислимо p-значення.
Для нульового розподілу ми спочатку генеруємо багато переставлених наборів даних і зберігаємо різницю середніх для кожного випадку. Далі обчислюємо статистику критерію як різницю середніх для початкового набору даних. Нарешті, ми наближуємо p-значення як подвійну частку випадків, коли різниця більша або дорівнює абсолютному значенню статистики критерію (двостороння гіпотеза). P-значення менше, скажімо, 0,05 може свідчити про статистичну значущість.
Ця вправа є частиною курсу
Статистичне моделювання в Python
Інструкції до вправи
- Згенеруйте кілька перестановок
donations_Aіdonations_Bта запишіть їх уperm. - Присвойте
samplesрізницю середніх міжpermuted_A_datasetsіpermuted_B_datasets. Встановітьaxis=1, щоб отримати середнє для кожного набору даних, а не загальне середнє. - Встановіть
test_statрівним різниці середніх міжdonations_Aіdonations_B. - Обчисліть p-значення
p_valяк подвійну частку елементівsamples, що більші або дорівнюють абсолютному значеннюtest_stat.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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))