Доверительный интервал для среднего значения — это диапазон значений, который может содержать среднее значение генеральной совокупности с определенным уровнем достоверности.
Он рассчитывается как:
Доверительный интервал = 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), мы можем предположить, что выборочное распределение выборочного среднего нормально распределено (благодаря центральной предельной теореме ), и вместо этого можем использовать функцию norm.interval() из 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%-го доверительного интервала. То есть существует только 5% вероятность того, что истинная средняя высота растений в популяции меньше 16,758 дюйма или больше 24,042 дюйма.