Za hranice statistické významnosti: Pochopení velikosti účinku
Velikost účinku měří rozsah rozdílu nebo vztahu nezávisle na velikosti výběru. Zatímco p-hodnoty říkají, zda je účinek statisticky významný, velikost účinku říká, jak je tento účinek prakticky smysluplný. Toto rozlišení je klíčové pro rozhodování založené na důkazech ve výzkumu, medicíně, vzdělávání i podnikání.
Uvažte farmaceutickou studii, kde nový lék vykazuje statisticky významné zlepšení (p < 0,001) oproti placebu. Bez velikosti účinku nevíte, zda je zlepšení 0,1 % nebo 50 %. Velikost účinku poskytuje tento zásadní kontext a pomáhá zainteresovaným stranám rozhodnout, zda účinek stojí za náklady, vedlejší účinky nebo implementační úsilí.
Nejběžnější mírou velikosti účinku pro porovnání dvou skupin je Cohenovo d, které vyjadřuje rozdíl mezi průměry v jednotkách směrodatné odchylky. Tato standardizace umožňuje srovnání napříč různými studiemi a měřicími škálami.
Proč je velikost účinku důležitá
Statistická významnost je silně ovlivněna velikostí výběru. Při dostatečně velkém výběru se i triviální rozdíly stanou „významnými“. Naopak důležité účinky nemusí dosáhnout významnosti u malých výběrů. Velikost účinku tento problém řeší tím, že poskytuje míru nezávislou na velikosti výběru.
Past statistické významnosti
Hlavní důvody pro používání velikosti účinku:
- Metaanalýza: Velikosti účinku lze kombinovat napříč studiemi pro odhad celkového efektu
- Výkonová analýza: Nezbytná pro výpočet potřebné velikosti výběru v budoucích studiích
- Praktická rozhodnutí: Pomáhá určit, zda stojí za to intervence implementovat
- Replikace: Poskytuje cílovou hodnotu, kterou by měly replikační studie potvrdit
Cohenovo d: Standardní míra velikosti účinku
Cohenovo d vyjadřuje rozdíl mezi průměry dvou skupin v jednotkách sloučené směrodatné odchylky:
Cohen's d
Kde M₁ a M₂ jsou skupinové průměry a sp je sloučená směrodatná odchylka vypočtená jako:
Pooled Standard Deviation
Znaménko d udává směr: kladné, když M₁ > M₂, záporné, když M₁ < M₂. Často se uvádí absolutní hodnota |d|, když je směr zřejmý z kontextu.
Proč slučovat směrodatnou odchylku?
Alternativní míry velikosti účinku
I když je Cohenovo d nejběžnější, existují alternativy pro specifické situace:
Hedgesovo g: Velikost účinku s korekcí vychýlení
Cohenovo d mírně nadhodnocuje populační velikost účinku u malých výběrů. Hedgesovo g aplikuje korekční faktor:
Hedges' g Correction
U výběrů nad 20 na skupinu je rozdíl zanedbatelný. Pro malé výběry (n < 20) je upřednostněno Hedgesovo g.
Glassovo Δ: Při nestejných rozptylech
Pokud je jedna skupina kontrolní se známou variabilitou, použijte jako jmenovatel pouze směrodatnou odchylku kontrolní skupiny:
Glass's Delta
To je užitečné, když intervence může ovlivnit rozptyl (např. intervence, která pomáhá slabším studentům více než těm nejlepším).
Interpretace velikosti účinku: Cohenovy pokyny
Jacob Cohen navrhl tyto konvence pro interpretaci hodnot d:
| Velikost účinku (d) | Interpretace | Překryv |
|---|---|---|
| 0,2 | Malý | 85% překryv mezi skupinami |
| 0,5 | Střední | 67% překryv mezi skupinami |
| 0,8 | Velký | 53% překryv mezi skupinami |
| 1,2 | Velmi velký | 40% překryv mezi skupinami |
| 2,0 | Obrovský | 19% překryv mezi skupinami |
Záleží na kontextu
Řešený příklad: Vzdělávací intervence
Škola testuje nový čtenářský program. Kontrolní skupina (n=25): průměr=72, SO=12. Experimentální skupina (n=30): průměr=79, SO=14. Vypočítejte Cohenovo d:
Výpočet sloučeného rozptylu
Výpočet sloučené SO
Výpočet Cohenova d
Interpretace
To znamená, že pokud byste náhodně vybrali jednoho studenta z experimentální skupiny a jednoho z kontrolní skupiny, student z experimentální skupiny by dosáhl vyššího skóre přibližně v 64 % případů (vypočteno z překryvu).
Implementace v Pythonu
Výpočet velikosti účinku programově s intervaly spolehlivosti:
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}")