Проверка гипотез в 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