Доверительный интервал позволяет оценить диапазон значений, в котором с определенной вероятностью находится истинный параметр генеральной совокупности. Рассмотрим методы построения доверительных интервалов с использованием Python.
Содержание
- 1. Необходимые библиотеки
- 2. Основные параметры доверительного интервала
- 3. Построение интервала для среднего (нормальное распределение)
- 4. Доверительный интервал для среднего (t-распределение)
- 5. Доверительный интервал для пропорции
- 6. Визуализация доверительных интервалов
- 7. Проверка работы функции
- 8. Практические рекомендации
Доверительный интервал позволяет оценить диапазон значений, в котором с определенной вероятностью находится истинный параметр генеральной совокупности. Рассмотрим методы построения доверительных интервалов с использованием 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. Доверительный интервал для пропорции
- Вычислите выборочную пропорцию p̂
- Определите стандартную ошибку SE = √(p̂(1-p̂)/n)
- Найдите z-критическое значение
- Рассчитайте границы интервала: 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 требует понимания статистических основ и правильного выбора методов в зависимости от типа данных и объема выборки. Представленные методы покрывают основные сценарии анализа.