t-test vs z-test — в чём разница и когда какой использовать
Коротко
z-тест используется, когда известна дисперсия генеральной совокупности или выборка большая (n > 30). t-тест — когда дисперсия неизвестна и оценивается по выборке. На практике аналитики почти всегда используют t-тест, потому что истинная дисперсия редко известна.
Когда использовать z-тест
Z-тест подходит, когда:
- Известна дисперсия генеральной совокупности (σ²)
- Выборка большая (n > 30) — по ЦПТ распределение среднего приближается к нормальному
z = (x̄ - μ₀) / (σ / √n)Где x̄ — выборочное среднее, μ₀ — гипотетическое среднее, σ — известное стандартное отклонение, n — размер выборки.
Результат сравнивается со стандартным нормальным распределением N(0,1).
Когда использовать t-тест
T-тест подходит, когда:
- Дисперсия неизвестна (оценивается по выборке через s²)
- Выборка малая (n < 30), но данные примерно нормальны
t = (x̄ - μ₀) / (s / √n)Отличие: вместо σ используется s (выборочное стандартное отклонение). Результат сравнивается с распределением Стьюдента с df = n - 1 степенями свободы.
Ключевые отличия
| z-тест | t-тест | |
|---|---|---|
| Дисперсия | Известна (σ²) | Неизвестна (оценивается s²) |
| Распределение | Нормальное N(0,1) | Стьюдента с df степенями свободы |
| Размер выборки | Обычно n > 30 | Любой, но особенно важен при n < 30 |
| На практике | Редко (σ² почти никогда не известна) | Почти всегда |
| Хвосты распределения | Тоньше | Толще (больше неопределённости) |
Почему t-распределение шире нормального
Когда мы оцениваем дисперсию по выборке, добавляется дополнительная неопределённость. T-распределение учитывает это через более толстые хвосты — крайние значения более вероятны.
При малых выборках (n = 5–10) разница между t и z существенная: доверительные интервалы шире, p-value выше. При больших выборках (n > 30) t-распределение сходится к нормальному, и разница исчезает.
Виды t-теста
Одновыборочный — сравнение среднего с известным значением:
- «Средний чек отличается от 500 рублей?»
Двухвыборочный — сравнение средних двух групп:
- «Средний чек в контроле vs тесте в A/B-тесте»
Парный — сравнение связанных измерений:
- «Время на сайте до и после редизайна у тех же пользователей»
В A/B-тестах чаще всего используется двухвыборочный t-тест (или его модификацию Уэлча, не предполагающую равенство дисперсий).
На практике в A/B-тестах
В реальных A/B-тестах выборки обычно большие (тысячи пользователей), поэтому разница между z и t минимальна. Но аналитики всё равно используют t-тест — он корректен при любом размере выборки.
from scipy import stats
# Двухвыборочный t-тест (Уэлча)
control = [120, 130, 115, 140, 125]
treatment = [135, 145, 150, 130, 155]
stat, p_value = stats.ttest_ind(control, treatment, equal_var=False)
print(f't-statistic: {stat:.3f}, p-value: {p_value:.3f}')Вопросы с собеседований
- «Когда можно использовать z-тест вместо t-теста?» — Когда известна дисперсия популяции, что на практике почти не бывает. При больших выборках результаты совпадают.
- «Что такое тест Уэлча?» — Модификация t-теста, не требующая равенства дисперсий в двух группах. В scipy это ttest_ind(equal_var=False).
- «При каком размере выборки t и z дают одинаковый результат?» — При n > 30–50 разница пренебрежимо мала.
FAQ
Нужно ли проверять нормальность перед t-тестом?
При больших выборках (n > 30) — нет, ЦПТ обеспечивает нормальность среднего. При малых выборках — да, стоит проверить (тест Шапиро-Уилка или QQ-plot).
Какой тест использовать для пропорций?
Для сравнения пропорций (конверсий) используется z-тест для пропорций, а не t-тест. Это связано с тем, что дисперсия биномиального распределения вычисляется из самой пропорции.
Что если данные не нормальные и выборка маленькая?
Используйте непараметрические тесты: критерий Манна-Уитни (аналог двухвыборочного t-теста) или критерий Уилкоксона (аналог парного t-теста).