Как рассчитать биномиальный доверительный интервал в Python


Доверительный интервал для биномиальной вероятности рассчитывается по следующей формуле:

Доверительный интервал = 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

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.