Доверительный интервал позволяет оценить диапазон значений, в котором с определенной вероятностью находится истинный параметр генеральной совокупности. Рассмотрим методы построения доверительных интервалов с использованием Python.

Содержание

Доверительный интервал позволяет оценить диапазон значений, в котором с определенной вероятностью находится истинный параметр генеральной совокупности. Рассмотрим методы построения доверительных интервалов с использованием Python.

1. Необходимые библиотеки

БиблиотекаНазначение
numpyМатематические операции и генерация данных
scipy.statsСтатистические функции и распределения
matplotlibВизуализация результатов

2. Основные параметры доверительного интервала

  • Уровень доверия: Обычно 90%, 95% или 99%
  • Точечная оценка: Выборочное среднее или пропорция
  • Стандартная ошибка: Мера изменчивости оценки
  • Критическое значение: Z- или t-статистика

3. Построение интервала для среднего (нормальное распределение)

3.1. Код на Python:

import numpy as np
from scipy import stats
data = np.random.normal(loc=50, scale=10, size=100)
confidence = 0.95
mean = np.mean(data)
sem = stats.sem(data)
ci = stats.norm.interval(confidence, loc=mean, scale=sem)
print(f"Доверительный интервал: {ci}")

4. Доверительный интервал для среднего (t-распределение)

СлучайКогда использовать
Неизвестно σМалые выборки (n < 30)
Ненормальное распределениеКогда нельзя применить Z-критерий

4.1. Пример кода:

n = len(data)
dof = n - 1
t_crit = np.abs(stats.t.ppf((1-confidence)/2, dof))
margin = t_crit * sem
ci = (mean - margin, mean + margin)

5. Доверительный интервал для пропорции

  1. Вычислите выборочную пропорцию p̂
  2. Определите стандартную ошибку SE = √(p̂(1-p̂)/n)
  3. Найдите z-критическое значение
  4. Рассчитайте границы интервала: p̂ ± z*SE

5.1. Реализация:

p_hat = 0.65 # Пример пропорции
n = 100
z = stats.norm.ppf(1 - (1-confidence)/2)
se = np.sqrt(p_hat*(1-p_hat)/n)
ci = (p_hat - z*se, p_hat + z*se)

6. Визуализация доверительных интервалов

  • Используйте matplotlib.pyplot.errorbar
  • Примените seaborn.barplot с параметром ci
  • Для нескольких интервалов используйте plt.vlines

6.1. Пример визуализации:

import matplotlib.pyplot as plt
plt.errorbar(x=0, y=mean, yerr=margin, fmt='o')
plt.title('Доверительный интервал среднего')
plt.show()

7. Проверка работы функции

ТестКритерий
ПокрытиеДолжен содержать истинное значение параметра
ШиринаДолжна уменьшаться с ростом n

8. Практические рекомендации

  • Для малых выборок всегда используйте t-распределение
  • Проверяйте нормальность распределения данных
  • При работе с пропорциями учитывайте условия np ≥ 10 и n(1-p) ≥ 10
  • Для непараметрических данных используйте бутстреп

Построение доверительных интервалов в Python требует понимания статистических основ и правильного выбора методов в зависимости от типа данных и объема выборки. Представленные методы покрывают основные сценарии анализа.

Другие статьи

Как подключить активную антенну к приставке и прочее