Автор оригинала: Robin Andrews.
В этой статье мы собираемся использовать Python для проверки, является ли монета справедливой. Мы сделаем это, используя Statsmodels Пакет для выполнения теста гипотеза.
Проблемы, которые мы будем решать, будет иметь форму:
Я перевернул монету 100 раз, и она приземлилась на головах 55 раз. Могу ли я заключить монету предвзяться к головам?
Python предоставляет множество отличных инструментов для работы с данными и статистикой. К ним относятся библиотеки, такие как Пандас , numpy , Scipy , Матплотлиб И, в случае сегодняшней задачи, Statsmodels Отказ Чтобы использовать эти инструменты, вам нужно, чтобы они были установлены как часть вашей настройки Python, либо установить их самостоятельно, обычно используя Пип Отказ Вы можете узнать о том, как это сделать здесь Отказ
В целом при работе с математикой и статистикой есть возможность применять формулы и делать значимые выводы и способность понимать, как работают формул. Оба из них важны, но в зависимости от задачи под рукой можно более подходящими, чем другой.
В духе первого из них я просто собираюсь дать вам какой-нибудь код Python, который заставит работу. Вы можете легко изменить код для решения многих связанных проблем, не обязательно понимая много о том, что происходит «под капотом».
Python Program для проверки, является ли монета справедливой
Код ниже довольно неясно. Вы можете настроить переменные, такие как Famcure_Success и Значение Чтобы исследовать результаты для разных образцов с разным уровнем доверия.
import statsmodels.api as sm
significance = 0.05 # Confidence level is 1 - significance level. Here it is 95%.
# In our sample, 55% of flips landed heads
sample_success = 550 sample_size = 1000
# Our null hypothesis (Ho) is 50% for heads
# The alternate hypothesis (Ha) is that the proportion of heads is > 50%
null_hypothesis = 0.50
test_statistic, p_value = sm.stats.proportions_ztest(count=sample_success, nobs=sample_size, value=null_hypothesis, alternative='larger')
# Results
print(f"z_statistic: {test_statistic:.3f}, p_value: {p_value:.3f}") if p_value > significance: print("Failed to reject the null hypothesis.") else: print(f"Reject the null hypothesis - accept the alternative hypothesis at {significance} level of significance.")
Вывод для Famcure_Success :
z_statistic: 3.178, p_value: 0.001 Reject the null hypothesis - accept the alternative hypothesis at 0.05 level of significance.
Если вы хотите попробовать некоторые вариации основной гипотезы, вы можете изменить Альтернатива Аргумент для sm.stats.proportions_ztest () :
- Для ха
Альтернатива = «меньше» - для HA> Ho использовать
Альтернатива = «больше» - для использования HA
Альтернатива = «двусторонний»
Последний – для того, когда вы подозреваете, что монета смещена, но вы не знаете, в каком направлении.
Испытание гипотезы объяснения
Чтобы полностью понять, как произведения гипотезы Works занимают некоторые исследования и практики. Однако эта базовая концепция довольно проста. Если вы когда-нибудь столкнулись с Доказательство противоречия В математике, как, например, в доказательствах бесконечности простых чисел или в геометрических доказательствах, вы будете знакомы с основной идеей. С точки зрения этого конкретного примера этапы:
- Предположим, что монета справедливо (это называется нулевая гипотеза или H₀ )
- Состояние Альтернативная гипотеза ( Hₐ ) – в этом случае монета смещена к головам
- Подсчитайте, сколько раз монетные земли возглавляются из данного количества переворотов
- Рассчитайте, насколько далеко этот результат лежит от ожидаемой стоимости от нулевой гипотезы (это называется z-счет )
- Если это очень маловероятно, что такое экстремальное значение будет происходить (низкое значение p), отклонить нулевую гипотезу и принять альтернативную гипотезу с указанным уровнем доверия
- В противном случае мы «не можем отклонить нулевую гипотезу», что означает, что результат не является статистически значимым
P-значение является мерой вероятности того, что наблюдаемая разница может произойти только случайным шансом. Чем ниже значение P, тем больше статистическая значимость наблюдаемой разницы.
Уровень доверия эквивалентен 1 – альфа-уровне. Таким образом, если уровень вашего значения составляет 0,05, соответствующий уровень доверия составляет 95%.
Эта статья показала, как использовать Python для изучения того, является ли монета справедливой или предвзятой к предвзятым, основанным на том, сколько раз он приземляется в данный образец. Я надеюсь, что вы нашли это интересно и полезно.
Счастливые вычисления!