Собесов

Karpov Stepik: 95% доверительный интервал для среднего

Статистика и теорверДоверительные интервалыЛёгкаяJunior

Условие

В выборке из 25 пользователей среднее время сессии — 8.4 минуты, выборочное стандартное отклонение — 3.6 минуты. Постройте 95% доверительный интервал для среднего времени сессии в популяции. Объясните, как изменится интервал, если n = 100 или 1000 (при тех же x̄, s).

Решение

Формула

При неизвестной σ:

CI = x̄ ± t_(α/2, n−1) · s / √n

Где t — квантиль распределения Стьюдента с n − 1 степенью свободы. При α = 0.05 и n = 25: t_(0.025, 24) ≈ 2.064.

Расчёт для n=25

SE = s / √n = 3.6 / 5 = 0.72
ME = 2.064 · 0.72 ≈ 1.486
CI = (8.4 − 1.49 ; 8.4 + 1.49) = (6.91 ; 9.89)

С 95% «уверенностью» средний в популяции — между 6.9 и 9.9 минут.

import scipy.stats as st
import numpy as np
 
x_bar, s, n, alpha = 8.4, 3.6, 25, 0.05
t_crit = st.t.ppf(1 - alpha/2, df=n-1)
me = t_crit * s / np.sqrt(n)
print(f"CI: ({x_bar - me:.2f} ; {x_bar + me:.2f})")

Что значит «с 95% уверенностью»

Не: «вероятность, что μ в этом интервале — 95%». μ — фиксированная константа, не случайная.

Корректно: «если повторить эксперимент много раз с разными случайными выборками и каждый раз строить интервал по этой формуле — 95% таких интервалов накроют истинное μ».

Влияние n

При тех же x̄ = 8.4, s = 3.6:

n SE = s/√n t_crit ME CI
25 0.720 2.064 1.49 (6.91 ; 9.89)
100 0.360 1.984 0.71 (7.69 ; 9.11)
1000 0.114 1.962 0.22 (8.18 ; 8.62)

При n → ∞:

  • t_crit → 1.96 (квантиль нормального);
  • ME → 0 пропорционально 1/√n.

Чтобы сократить интервал в 2 раза, нужно увеличить n в 4 раза.

Когда использовать z вместо t

  • σ известна (редко в практике) → z.
  • σ неизвестна, n маленькая → t.
  • σ неизвестна, n большая (>30-50) → t ≈ z.

Bootstrap CI для несимметричных данных

import numpy as np
rng = np.random.default_rng(0)
data = ...                                                # реальные значения
boots = np.array([rng.choice(data, len(data), replace=True).mean()
                  for _ in range(10000)])
ci = np.percentile(boots, [2.5, 97.5])

Не требует нормальности; работает с любыми распределениями.

Подводные камни

  1. «C 95% вероятностью μ внутри» — типичная ошибка интерпретации. μ — константа, вероятностно не μ, а интервал.
  2. s vs σ: s — выборочное (np.std(ddof=1)), σ — популяционное. Не путать; default ddof в np.std = 0 (популяционное), что чаще не то, что нужно.
  3. n=25 c сильно скошенным X: t-test предполагает нормальность X — лучше bootstrap или log-преобразование.
  4. Доверие к CI на маленьких n: t-распределение «компенсирует» через широкие хвосты, но для n<10 разумнее непараметрика.
  5. «CI пересекается с нулём → нет эффекта» — для разности средних да, но не путать с p-value > 0.05 (одно эквивалентно другому, но не «эффект = 0»).
  6. Несимметричный CI: для логнормальных метрик логичнее CI на медиану / на лог-среднее.
  7. Множественные CI: 10 CI с 95% покрытием → один из них с большой вероятностью промахнётся. Применяйте Бонферрони / FDR.

Эталонный ответ

CI = x̄ ± t_(α/2, n−1) · s/√n = 8.4 ± 2.064 · 3.6/5 = 8.4 ± 1.49 = (6.91; 9.89)

При n = 100CI ≈ (7.69; 9.11), при n = 1000(8.18; 8.62). Ширина падает как 1/√n — чтобы вдвое сократить, нужно учетверить выборку.

Корректная интерпретация: «процедура построения CI накроет истинное μ в 95% случаев», не «μ ∈ CI с вероятностью 0.95».

Хочешь увидеть разбор?

Зарегистрируйся бесплатно — откроется развёрнутое решение этой задачи и ещё 4 на выбор.

Зарегистрироваться и увидеть разбор
Уже есть аккаунт? Войти