#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
и используя соответствующие степени свободы