Σ
SDCalc
GemiddeldToepassingen·12 min

Cohens d en effectgrootteberekeningen

Beheers effectgrootteberekeningen inclusief Cohens d, Hedges' g en Glass's delta. Leer praktische significantie te meten voorbij p-waarden met standaardafwijking.

Voorbij statistische significantie: effectgrootte begrijpen

Effectgrootte meet de omvang van een verschil of verband, onafhankelijk van de steekproefomvang. Terwijl p-waarden u vertellen of een effect statistisch significant is, vertellen effectgroottes u hoe praktisch betekenisvol dat effect is. Dit onderscheid is cruciaal voor evidence-based besluitvorming in onderzoek, geneeskunde, onderwijs en bedrijfsleven.

Stel: een farmaceutisch onderzoek toont een statistisch significante verbetering (p < 0,001) ten opzichte van een placebo. Zonder effectgrootte weet u niet of de verbetering 0,1% of 50% is. Effectgrootte biedt deze cruciale context en helpt belanghebbenden te bepalen of het effect de kosten, bijwerkingen of implementatie-inspanning waard is.

De meest voorkomende effectgroottemaat voor het vergelijken van twee groepen is Cohens d, die het verschil tussen gemiddelden uitdrukt in standaardafwijkingseenheden. Deze standaardisatie maakt vergelijking mogelijk over verschillende onderzoeken en meetschalen.

Waarom effectgrootte belangrijk is

Statistische significantie wordt sterk beïnvloed door steekproefomvang. Met een groot genoeg steekproef worden zelfs triviale verschillen “significant.” Omgekeerd bereiken belangrijke effecten mogelijk geen significantie in kleine steekproeven. Effectgrootte lost dit probleem op door een steekproefomvang-onafhankelijke maat te bieden.

De significantieval

Een onderzoek met n=10.000 kan p < 0,001 tonen voor een verschil van 0,5 punt op een 100-puntsschaal. Dit is statistisch significant maar praktisch zinloos (d ≈ 0,05). Rapporteer altijd effectgroottes naast p-waarden.

Belangrijke redenen om effectgrootte te gebruiken:

  • Meta-analyse: Effectgroottes kunnen over onderzoeken worden gecombineerd om algehele effecten te schatten
  • Poweranalyse: Nodig om benodigde steekproefomvangen te berekenen voor toekomstige onderzoeken
  • Praktische beslissingen: Helpt bepalen of interventies de moeite waard zijn om te implementeren
  • Replicatie: Biedt een doel voor replicatieonderzoeken om na te streven

Cohens d: de standaard effectgroottemaat

Cohens d drukt het verschil tussen twee groepsgemiddelden uit in eenheden van de gepoolde standaardafwijking:

Cohens d

d = (M₁ - M₂) / sp

Waarbij M₁ en M₂ de groepsgemiddelden zijn en sp de gepoolde standaardafwijking, berekend als:

Gepoolde standaardafwijking

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

Het teken van d geeft de richting aan: positief wanneer M₁ > M₂, negatief wanneer M₁ < M₂. Vaak wordt de absolute waarde |d| gerapporteerd wanneer de richting duidelijk is uit de context.

Waarom de standaardafwijking poolen?

Poolen veronderstelt dat beide groepen gelijke populatievarianties hebben. Dit geeft een stabielere schatting dan het gebruik van de SD van slechts één groep en komt overeen met de aannames van de onafhankelijke steekproeven t-toets.

Alternatieve effectgroottematen

Hoewel Cohens d het meest voorkomt, bestaan er alternatieven voor specifieke situaties:

Hedges' g: bias-gecorrigeerde effectgrootte

Cohens d overschat de populatie-effectgrootte enigszins bij kleine steekproeven. Hedges' g past een correctiefactor toe:

Hedges' g-correctie

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

Bij steekproeven groter dan 20 per groep is het verschil verwaarloosbaar. Bij kleine steekproeven (n < 20) verdient Hedges' g de voorkeur.

Glass's Δ: wanneer varianties verschillen

Wanneer één groep een controlegroep is met bekende variabiliteit, gebruik dan alleen de standaardafwijking van de controlegroep als noemer:

Glass's delta

Δ = (M₁ - M₂) / s_controle

Dit is nuttig wanneer de behandeling de variantie kan beïnvloeden (bijv. een interventie die laagpresteerders meer helpt dan hoogpresteerders).

Effectgroottes interpreteren: richtlijnen van Cohen

Jacob Cohen stelde deze conventies voor om d-waarden te interpreteren:

Effectgrootte (d)InterpretatieOverlap
0,2Klein85% overlap tussen groepen
0,5Middel67% overlap tussen groepen
0,8Groot53% overlap tussen groepen
1,2Zeer groot40% overlap tussen groepen
2,0Enorm19% overlap tussen groepen

Context is belangrijk

Dit zijn ruwe richtlijnen, geen absolute regels. In sommige vakgebieden kan d = 0,2 zeer betekenisvol zijn (bijv. vermindering van hartaanvalrisico), terwijl in andere d = 0,8 te verwachten is (bijv. bijles vs. geen instructie).

Uitgewerkt voorbeeld: onderwijsinterventie

Een school test een nieuw leesprogramma. Controlegroep (n=25): gemiddelde=72, SD=12. Behandelingsgroep (n=30): gemiddelde=79, SD=14. Bereken Cohens d:

1

Bereken de gepoolde variantie

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

Bereken de gepoolde SD

sp = √172,45 = 13,13
3

Bereken Cohens d

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

Interpreteer

Een middelgroot effect (d = 0,53). De behandelingsgroep scoort ongeveer een halve standaardafwijking hoger dan de controlegroep.

Dit betekent dat als u een willekeurige leerling uit de behandelingsgroep en een willekeurige leerling uit de controlegroep neemt, de leerling uit de behandelingsgroep in ongeveer 64% van de gevallen hoger zou scoren (berekend uit de overlap).

Python-implementatie

Bereken effectgroottes programmatisch met betrouwbaarheidsintervallen:

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