Σ
SDCalc
ØvetAnvendelser·12 min

Cohens d og effektstørrelsesberegninger

Mestr beregning af effektstørrelser, herunder Cohens d, Hedges’ g og Glass’s delta. Lær at måle praktisk signifikans ud over p-værdier ved hjælp af standardafvigelse.

Ud over statistisk signifikans: Forståelse af effektstørrelse

Effektstørrelse måler størrelsen af en forskel eller sammenhæng uafhængigt af stikprøvestørrelse. Mens p-værdier fortæller dig, om en effekt er statistisk signifikant, fortæller effektstørrelser dig, hvor praktisk meningsfuld effekten er. Denne skelnen er afgørende for evidensbaseret beslutningstagning inden for forskning, medicin, uddannelse og erhvervsliv.

Forestil dig et lægemiddelforsøg, hvor et nyt præparat viser en statistisk signifikant forbedring (p < 0,001) i forhold til placebo. Uden effektstørrelse ved du ikke, om forbedringen er 0,1% eller 50%. Effektstørrelse giver denne afgørende kontekst og hjælper interessenter med at afgøre, om effekten er værd at investere i med hensyn til omkostninger, bivirkninger eller implementeringsindsats.

Det mest anvendte effektstørrelsesmål til sammenligning af to grupper er Cohens d, som udtrykker forskellen mellem gennemsnit i standardafvigelsesenheder. Denne standardisering muliggør sammenligning på tværs af forskellige studier og måleskalaer.

Hvorfor effektstørrelse er vigtig

Statistisk signifikans er stærkt påvirket af stikprøvestørrelse. Med en tilstrækkeligt stor stikprøve bliver selv trivielle forskelle “signifikante”. Omvendt opnår vigtige effekter måske ikke signifikans i små stikprøver. Effektstørrelse løser dette problem ved at give et stikprøvestørrelseuafhængigt mål.

Signifikansfælden

Et studie med n=10.000 kan vise p < 0,001 for en forskel på 0,5 point på en 100-points skala. Dette er statistisk signifikant, men praktisk meningsløst (d ≈ 0,05). Rapportér altid effektstørrelser sammen med p-værdier.

Centrale grunde til at bruge effektstørrelse:

  • Metaanalyse: Effektstørrelser kan kombineres på tværs af studier for at estimere overordnede effekter
  • Styrkeanalyse: Nødvendig for at beregne den påkrævede stikprøvestørrelse til fremtidige studier
  • Praktiske beslutninger: Hjælper med at afgøre, om interventioner er værd at implementere
  • Replikation: Giver et mål for replikationsstudier at matche

Cohens d: Standardmålet for effektstørrelse

Cohens d udtrykker forskellen mellem to gruppegennemsnit i enheder af den poolede standardafvigelse:

Cohen's d

d = (M₁ - M₂) / sp

Hvor M₁ og M₂ er gruppegennemsnittene, og sp er den poolede standardafvigelse beregnet som:

Pooled Standard Deviation

sp = √[((n₁-1)s₁² + (n₂-1)s₂²) / (n₁+n₂-2)]

Fortegnet for d angiver retningen: positivt når M₁ > M₂, negativt når M₁ < M₂. Ofte rapporteres den absolutte værdi |d|, når retningen er indlysende fra konteksten.

Hvorfor poole standardafvigelsen?

Pooling forudsætter, at begge grupper har ens populationsvarianser. Det giver et mere stabilt estimat end at bruge en enkelt gruppes SA alene og matcher antagelserne bag den uafhængige t-test.

Alternative effektstørrelsesmål

Selvom Cohens d er mest udbredt, findes der alternativer til specifikke situationer:

Hedges’ g: Biaskorrigeret effektstørrelse

Cohens d overvurderer populationens effektstørrelse en smule i små stikprøver. Hedges’ g anvender en korrektionsfaktor:

Hedges' g Correction

g = d × (1 - 3/(4(n₁+n₂) - 9))

For stikprøver over 20 pr. gruppe er forskellen ubetydelig. For små stikprøver (n < 20) foretrækkes Hedges’ g.

Glass’s Δ: Når varianserne er forskellige

Når den ene gruppe er en kontrolgruppe med kendt variabilitet, bruges kun kontrolgruppens standardafvigelse som nævner:

Glass's Delta

Δ = (M₁ - M₂) / s_control

Dette er nyttigt, når behandlingen kan påvirke variansen (f.eks. en intervention, der hjælper svage elever mere end stærke).

Fortolkning af effektstørrelser: Cohens retningslinjer

Jacob Cohen foreslog disse konventioner til fortolkning af d-værdier:

Effektstørrelse (d)FortolkningOverlap
0.2Lille85% overlap mellem grupper
0.5Middel67% overlap mellem grupper
0.8Stor53% overlap mellem grupper
1.2Meget stor40% overlap mellem grupper
2.0Enorm19% overlap mellem grupper

Kontekst er afgørende

Disse er grove retningslinjer, ikke absolutte regler. Inden for visse fagområder kan d = 0,2 være yderst meningsfuld (f.eks. reduktion af hjertetilfælderisiko), mens d = 0,8 i andre kan være forventeligt (f.eks. undervisning vs. ingen undervisning).

Gennemregnet eksempel: Uddannelsesintervention

En skole tester et nyt læseprogram. Kontrolgruppe (n=25): gennemsnit=72, SA=12. Interventionsgruppe (n=30): gennemsnit=79, SA=14. Beregn Cohens d:

1

Beregn den poolede varians

sp² = [(25-1)(12)² + (30-1)(14)²] / (25+30-2) = [24×144 + 29×196] / 53 = [3456 + 5684] / 53 = 172,45
2

Beregn den poolede SA

sp = √172,45 = 13,13
3

Beregn Cohens d

d = (79 - 72) / 13,13 = 7 / 13,13 = 0,53
4

Fortolkning

En middel effektstørrelse (d = 0,53). Interventionsgruppen scorer ca. en halv standardafvigelse højere end kontrolgruppen.

Det betyder, at hvis man tager en tilfældig elev fra interventionsgruppen og en tilfældig elev fra kontrolgruppen, vil interventionseleven score højere ca. 64% af tiden (beregnet ud fra overlappet).

Python-implementering

Beregn effektstørrelser programmatisk med konfidensintervaller:

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}")