За межами статистичної значущості: розуміння розміру ефекту
Розмір ефекту вимірює величину різниці або зв’язку незалежно від обсягу вибірки. Тоді як p-значення повідомляють, чи є ефект статистично значущим, розмір ефекту показує, наскільки він практично значущий. Це розрізнення є критично важливим для прийняття рішень на основі доказів у дослідженнях, медицині, освіті та бізнесі.
Розглянемо фармацевтичне випробування, де новий препарат демонструє статистично значуще покращення (p < 0,001) порівняно з плацебо. Без розміру ефекту ви не знаєте, чи покращення становить 0,1% чи 50%. Розмір ефекту забезпечує цей критично важливий контекст, допомагаючи зацікавленим сторонам визначити, чи вартий ефект витрат, побічних дій або зусиль на впровадження.
Найпоширенішою мірою розміру ефекту для порівняння двох груп є d Коена, який виражає різницю між середніми в одиницях стандартного відхилення. Така стандартизація дозволяє порівнювати результати різних досліджень із різними шкалами вимірювання.
Чому розмір ефекту важливий
На статистичну значущість сильно впливає обсяг вибірки. За достатньо великої вибірки навіть тривіальні різниці стають “значущими”. І навпаки, важливі ефекти можуть не досягти значущості в малих вибірках. Розмір ефекту вирішує цю проблему, надаючи міру, незалежну від обсягу вибірки.
Пастка значущості
Основні причини використовувати розмір ефекту:
- Метааналіз: розміри ефектів можна об’єднувати між дослідженнями для оцінки загального ефекту
- Аналіз потужності: необхідний для розрахунку потрібного обсягу вибірки в майбутніх дослідженнях
- Практичні рішення: допомагає визначити, чи варто впроваджувати інтервенції
- Реплікація: забезпечує цільовий показник для відтворення в реплікаційних дослідженнях
d Коена: стандартна міра розміру ефекту
d Коена виражає різницю між середніми двох груп в одиницях об’єднаного стандартного відхилення:
Cohen's d
Де M₁ та M₂ — середні груп, а sp — об’єднане стандартне відхилення, що обчислюється як:
Pooled Standard Deviation
Знак d вказує напрямок: додатний, коли M₁ > M₂, від’ємний, коли M₁ < M₂. Часто повідомляється абсолютне значення |d|, коли напрямок очевидний із контексту.
Навіщо об’єднувати стандартне відхилення?
Альтернативні міри розміру ефекту
Хоча d Коена є найпоширенішим, для певних ситуацій існують альтернативи:
g Геджеса: розмір ефекту з корекцією зміщення
d Коена дещо завищує розмір ефекту генеральної сукупності при малих вибірках. g Геджеса застосовує коригувальний множник:
Hedges' g Correction
Для вибірок понад 20 осіб у групі різниця є незначною. Для малих вибірок (n < 20) рекомендується використовувати g Геджеса.
Дельта Гласса: коли дисперсії різняться
Коли одна група є контрольною з відомою варіабельністю, як знаменник використовується лише стандартне відхилення контрольної групи:
Glass's Delta
Це корисно, коли втручання може впливати на дисперсію (наприклад, інтервенція, яка допомагає слабким учням більше, ніж сильним).
Інтерпретація розмірів ефекту: рекомендації Коена
Якоб Коен запропонував такі конвенції для інтерпретації значень 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}")