Как рассчитать доверительные интервалы в 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), мы можем предположить, что выборочное распределение выборочного среднего нормально распределено (благодаря центральной предельной теореме ), и вместо этого можем использовать функцию 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 дюйма.

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