Тестування гіпотез у Python
James Chapman
Curriculum Manager, DataCamp
age_first_code_cut класифікує, коли користувач Stack Overflow вперше почав програмувати"adult" означає, що почав у 14 років або пізніше"child" означає, що почав до 14 років«Гіпотеза» — це твердження про невідомий параметр сукупності
«Перевірка гіпотези» — це тест двох конкуруючих гіпотез
«Нульова гіпотеза ($H_{0}$)» — наявна ідея
«Альтернативна гіпотеза ($H_{A}$)» — нова «виклик» від дослідника
Для нашої задачі:
«Рівень значущості» — це «поза розумним сумнівом» для перевірки гіпотез

Перевірки гіпотез з'ясовують, чи лежать вибіркові статистики в хвостах «нульового розподілу»
| Тест | Хвости |
|---|---|
| альтернатива відрізняється від нуля | двобічний |
| альтернатива більша за нуль | правобічний |
| альтернатива менша за нуль | лівобічний |
$H_{A}$: Частка дата-сайентістів, які почали програмувати в дитинстві, більша за 35%
Це правобічний тест

p-значення: ймовірність отримати результат за умови, що нульова гіпотеза істинна
prop_child_samp = (stack_overflow['age_first_code_cut'] == "child").mean()
0.39141972578505085
prop_child_hyp = 0.35
std_error = np.std(first_code_boot_distn, ddof=1)
0.010351057228878566
z_score = (prop_child_samp - prop_child_hyp) / std_error
4.001497129152506
norm.cdf() — нормальна CDF з scipy.stats.norm.cdf().1 - norm.cdf().
from scipy.stats import norm
1 - norm.cdf(z_score, loc=0, scale=1)
3.1471479512323874e-05
Тестування гіпотез у Python