Как рассчитать доверительные интервалы в python
Доверительный интервал для среднего значения — это диапазон значений, который может содержать среднее значение генеральной совокупности с определенным уровнем достоверности.
Он рассчитывается следующим образом:
Доверительный интервал = x +/- t*(s/√n)
Золото:
- x : выборочное среднее
- t: значение t, соответствующее уровню достоверности
- s: выборочное стандартное отклонение
- n: размер выборки
В этом руководстве объясняется, как рассчитать доверительные интервалы в Python.
Доверительные интервалы с использованием распределения t
Если мы работаем с небольшой выборкой (n <30), мы можем использовать функцию t.interval() из библиотеки scipy.stats для расчета доверительного интервала для среднего значения генеральной совокупности.
В следующем примере показано, как рассчитать доверительный интервал для истинной средней высоты популяции (в дюймах) определенного вида растений, используя выборку из 15 растений:
import numpy as np import scipy.stats as st #define sample data data = [12, 12, 13, 13, 15, 16, 17, 22, 23, 25, 26, 27, 28, 28, 29] #create 95% confidence interval for population mean weight st.t.interval(alpha=0.95, df=len(data)-1, loc=np.mean(data), scale=st.sem(data)) (16.758, 24.042)
95% доверительный интервал для истинного среднего размера популяции составляет (16,758, 24,042) .
Вы заметите, что чем выше уровень достоверности, тем шире доверительный интервал. Например, вот как рассчитать 99% ДИ для тех же данных:
#create 99% confidence interval for same sample st.t.interval(alpha= 0.99 , df=len(data)-1, loc=np.mean(data), scale=st.sem(data)) (15.348, 25.455)
99% доверительный интервал для истинного среднего размера популяции равен (15,348, 25,455) . Обратите внимание, что этот интервал шире предыдущего 95% доверительного интервала.
Доверительные интервалы с использованием нормального распределения
Если мы работаем с выборками большего размера (n≥30), мы можем предположить, что выборочное распределение выборочного среднего нормально распределено (благодаря центральной предельной теореме ) и вместо этого можем использовать функцию нормы. интервал() из библиотеки scipy.stats.
В следующем примере показано, как рассчитать доверительный интервал для истинной средней высоты популяции (в дюймах) определенного вида растений, используя выборку из 50 растений:
import numpy as np import scipy.stats as st #define sample data np.random.seed(0) data = np.random.randint(10, 30, 50) #create 95% confidence interval for population mean weight st.norm.interval(alpha=0.95, loc=np.mean(data), scale=st.sem(data)) (17.40, 21.08)
95% доверительный интервал для истинного среднего размера популяции равен (17,40, 21,08) .
Как и в случае с распределением t, более высокие уровни достоверности приводят к более широким доверительным интервалам. Например, вот как рассчитать 99% ДИ для тех же данных:
#create 99% confidence interval for same sample st.norm.interval(alpha= 0.99 , loc=np.mean(data), scale=st.sem(data)) (16.82, 21.66)
95% доверительный интервал для истинного среднего размера популяции составляет (17,82, 21,66) .
Как интерпретировать доверительные интервалы
Предположим, что наш 95% доверительный интервал для истинной средней высоты вида растений составляет:
95% доверительный интервал = (16,758, 24,042)
Способ интерпретации этого доверительного интервала следующий:
Существует 95% вероятность того, что доверительный интервал [16,758, 24,042] содержит истинную среднюю высоту растений популяции.
Другой способ сказать то же самое состоит в том, что существует только 5%-ная вероятность того, что истинное среднее значение генеральной совокупности лежит за пределами 95%-ного доверительного интервала. То есть вероятность того, что фактическая средняя высота растения будет меньше 16,758 дюйма или больше 24,042 дюйма, составляет всего 5%.