Биноминальное распределение: как вычислить Альфа, чтобы вероятность покрывалась доверительным интервалом?

#python #statistics #probability #confidence-interval

#python #Статистика #вероятность #доверительный интервал

Вопрос:

Итак, у меня есть код, который вычисляет границы доверительного интервала

 import statsmodels.api as sm
from statsmodels.stats.proportion import proportion_confint   
    
def bin_conf (k, n, a):
    alpha, count, nobs = a, k, n
    return proportion_confint(count, nobs, alpha, method='normal')

bin_conf(75, 300, 0.05)
>>> (0.20100090038649865, 0.29899909961350135)
 

Но мне нужно посчитать альфа, чтобы уже определенная вероятность также покрывалась уже определенным доверительным интервалом?

Например: размер испытаний (n) = 500. Успешные испытания = 200. CI = [0,35 ; 0,45]. Альфа = ?

Есть ли в statsmodels или любой другой библиотеке Python решение, чтобы выяснить это?

Ответ №1:

у statsmodels нет вспомогательной функции для этого, потому что это не обычный вариант использования.

Однако доверительные интервалы, основанные на нормальном распределении, можно легко инвертировать. Ширина доверительного интервала в два раза превышает критическое значение, умноженное на стандартное отклонение среднего.

 from scipy import stats

ci = [0.35, 0.45]
count, nobs = 200, 500

p = count / nobs
std = np.sqrt(p * (1 - p) / nobs)
critval = (ci[1] - ci[0]) / std / 2
alpha = stats.norm.sf(critval) * 2  # two-sided
alpha

0.02247887336612522
 

Убедитесь, что оно совпадает с «нормальной» пропорцией_confint

 proportion_confint(count, nobs, alpha, method='normal')
(0.35, 0.45000000000000007)
 

То же самое можно использовать для доверительных интервалов на основе t-распределения, заменив stats.norm stats.t и используя соответствующие степени свободы