Доверительный интервал для биномиальной вероятности рассчитывается по следующей формуле:
Доверительный интервал = p +/- z * (√ p (1-p) / n )
куда:
- p: доля «успехов»
- z: выбранное значение z
- n: размер выборки
Самый простой способ вычислить этот тип доверительного интервала в Python — использовать функцию пропорции_confint() из пакета statsmodels :
proportion_confint ( count , nobs , alpha = 0.05 , method = 'normal' )
куда:
- count : Количество успехов
- nobs : общее количество испытаний
- альфа : уровень значимости (по умолчанию 0,05)
- method : метод, используемый для доверительного интервала (по умолчанию «нормальный»)
В следующем примере показано, как использовать эту функцию на практике.
Пример: расчет биномиального доверительного интервала в Python
Предположим, мы хотим оценить долю жителей округа, поддерживающих определенный закон.
Мы решили выбрать случайную выборку из 100 жителей и обнаружили, что 56 из них поддерживают закон.
Мы можем использовать функцию ratio_confint() , чтобы вычислить 95% доверительный интервал для истинной доли жителей, которые предполагают этот закон во всем округе:
from statsmodels. stats.proportion import proportion_confint
#calculate 95% confidence interval with 56 successes in 100 trials
proportion_confint(count= 56 , nobs= 100 )
(0.4627099463758483, 0.6572900536241518)
95-процентный доверительный интервал для истинной доли жителей округа, поддерживающих закон, составляет [0,4627, 0,6573] .
По умолчанию эта функция использует асимптотическое нормальное приближение для вычисления доверительного интервала. Однако мы можем использовать аргумент метода , чтобы использовать другой метод.
Например, функцией по умолчанию, используемой в языке программирования R для вычисления биномиального доверительного интервала, является интервал оценки Уилсона.
Мы можем использовать следующий синтаксис, чтобы указать этот метод при вычислении доверительного интервала в Python:
from statsmodels. stats.proportion import proportion_confint
#calculate 95% confidence interval with 56 successes in 100 trials
proportion_confint(count= 56 , nobs= 100 , method='wilson')
(0.4622810465167698, 0.6532797336983921)
Это говорит нам о том, что 95-процентный доверительный интервал для истинной доли жителей округа, поддерживающих закон, составляет [0,4623, 0,6533] .
Этот доверительный интервал лишь немного отличается от рассчитанного с использованием нормального приближения.
Обратите внимание, что мы также можем настроить значение альфа для расчета другого доверительного интервала.
Например, мы можем установить альфа равным 0,10, чтобы рассчитать доверительный интервал 90%:
from statsmodels. stats.proportion import proportion_confint
#calculate 90% confidence interval with 56 successes in 100 trials
proportion_confint(count= 56 , nobs= 100 , alpha= 0.10 , method='wilson')
(0.47783814499647415, 0.6390007285095451)
Это говорит нам о том, что 90-процентный доверительный интервал для истинной доли жителей округа, поддерживающих закон, составляет [0,4778, 0,6390] .
Примечание : Вы можете найти полную документацию по функции пропорции_confint() здесь .
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные операции в Python:
Как построить доверительный интервал в Python
Как использовать биномиальное распределение в Python