За пределами статистической значимости: размер эффекта
Размер эффекта измеряет величину различия или связи независимо от объёма выборки. Если p-значение показывает, является ли эффект статистически значимым, то размер эффекта показывает, насколько он практически значим. Это различие критически важно для принятия обоснованных решений в науке, медицине, образовании и бизнесе.
Представьте клиническое испытание, где новый препарат демонстрирует статистически значимое улучшение (p < 0,001) по сравнению с плацебо. Без размера эффекта неизвестно, составляет ли улучшение 0,1% или 50%. Размер эффекта даёт этот важнейший контекст, помогая заинтересованным сторонам определить, стоит ли эффект затрат, побочных действий или усилий по внедрению.
Наиболее распространённая мера размера эффекта для сравнения двух групп — d Коэна, которая выражает разницу между средними в единицах стандартного отклонения. Такая стандартизация позволяет сравнивать результаты разных исследований и шкал измерения.
Почему размер эффекта важен
Статистическая значимость сильно зависит от объёма выборки. При достаточно большой выборке даже ничтожные различия становятся «значимыми». И наоборот, важные эффекты могут не достичь значимости в малых выборках. Размер эффекта решает эту проблему, предоставляя меру, не зависящую от объёма выборки.
Ловушка значимости
Основные причины использовать размер эффекта:
- Мета-анализ: размеры эффектов можно объединять по исследованиям для общей оценки
- Анализ мощности: необходим для расчёта требуемого объёма выборки будущих исследований
- Практические решения: помогает определить, стоит ли внедрять вмешательство
- Репликация: обеспечивает цель для воспроизведения результатов
d Коэна: стандартная мера размера эффекта
d Коэна выражает разницу между средними двух групп в единицах объединённого стандартного отклонения:
d Коэна
Где M₁ и M₂ — средние групп, а sp — объединённое стандартное отклонение:
Объединённое стандартное отклонение
Знак d указывает направление: положительный, когда M₁ > M₂, отрицательный, когда M₁ < M₂. Часто указывается абсолютное значение |d|, когда направление очевидно из контекста.
Зачем объединять стандартное отклонение?
Альтернативные меры размера эффекта
Хотя d Коэна наиболее распространена, существуют альтернативы для специфических ситуаций:
g Хеджеса: размер эффекта с поправкой на смещение
d Коэна немного завышает размер эффекта в генеральной совокупности при малых выборках. g Хеджеса применяет поправочный коэффициент:
Поправка g Хеджеса
Для выборок более 20 человек в группе разница пренебрежимо мала. Для малых выборок (n < 20) предпочтительнее g Хеджеса.
Δ Гласса: при неравных дисперсиях
Когда одна из групп является контрольной с известной вариабельностью, в знаменатель подставляется только СО контрольной группы:
Δ Гласса
Это полезно, когда воздействие может влиять на дисперсию (например, вмешательство, которое помогает слабым больше, чем сильным).
Интерпретация размера эффекта: ориентиры Коэна
Джейкоб Коэн предложил следующие условные границы для интерпретации значений d:
| Размер эффекта (d) | Интерпретация | Перекрытие |
|---|---|---|
| 0,2 | Малый | 85% перекрытие между группами |
| 0,5 | Средний | 67% перекрытие между группами |
| 0,8 | Большой | 53% перекрытие между группами |
| 1,2 | Очень большой | 40% перекрытие между группами |
| 2,0 | Огромный | 19% перекрытие между группами |
Контекст важен
Решённый пример: Образовательное вмешательство
Школа тестирует новую программу по чтению. Контрольная группа (n=25): среднее=72, СО=12. Экспериментальная группа (n=30): среднее=79, СО=14. Рассчитаем d Коэна:
Рассчитайте объединённую дисперсию
Рассчитайте объединённое СО
Рассчитайте d Коэна
Интерпретируйте
Это означает: если взять случайного ученика из экспериментальной группы и случайного из контрольной, ученик экспериментальной группы наберёт больше баллов примерно в 64% случаев (рассчитано из перекрытия распределений).
Реализация на Python
Программный расчёт размеров эффекта с доверительными интервалами:
import numpy as np
from scipy import stats
def cohens_d(group1, group2):
"""Calculate Cohen's d for two independent groups."""
n1, n2 = len(group1), len(group2)
var1, var2 = np.var(group1, ddof=1), np.var(group2, ddof=1)
# Pooled standard deviation
pooled_std = np.sqrt(((n1-1)*var1 + (n2-1)*var2) / (n1+n2-2))
# Cohen's d
d = (np.mean(group1) - np.mean(group2)) / pooled_std
return d
def hedges_g(group1, group2):
"""Calculate Hedges' g (bias-corrected effect size)."""
n1, n2 = len(group1), len(group2)
d = cohens_d(group1, group2)
# Correction factor for small sample bias
correction = 1 - 3 / (4*(n1+n2) - 9)
return d * correction
# Example usage
control = [68, 72, 75, 70, 69, 74, 71, 73, 76, 72]
treatment = [75, 79, 82, 78, 80, 77, 81, 76, 83, 79]
d = cohens_d(treatment, control)
g = hedges_g(treatment, control)
print(f"Cohen's d: {d:.3f}")
print(f"Hedges' g: {g:.3f}")