17  Effect Size Berekening & Conversie

Soms kunnen “ruwe” effect size data niet direct gebruikt worden in een meta-analyse. In dat geval moeten ze eerst omgezet worden naar een andere effect size maat die wel aan deze eisen voldoet. Soms kunnen ze worden geconverteerd naar het juiste effect size formaat. In dit hoofdstuk staan daarvan voorbeelden waarbij veelal wordt gewerkt met het pakket esc (Lüdecke, 2018).

17.1 Gemiddelde en Standaard Fout (SE)

\[SD=SE \times \sqrt{n}\]

library(esc)

esc_mean_se(grp1m = 8.5,   # mean of group 1
            grp1se = 1.5,  # standard error of group 1
            grp1n = 50,    # sample in group 1
            grp2m = 11,    # mean of group 2
            grp2se = 1.8,  # standard error of group 2
            grp2n = 60,    # sample in group 2
            es.type = "d") # convert to SMD; use "g" for Hedges' g

Effect Size Calculation for Meta Analysis

     Conversion: mean and se to effect size d
    Effect Size:  -0.2012
 Standard Error:   0.1920
       Variance:   0.0369
       Lower CI:  -0.5774
       Upper CI:   0.1751
         Weight:  27.1366

17.2 Regressie Coëfficiënten

SMDs, Hedges \(g\) of een correlatie \(r\) kunnen worden berekend uit gestandariseerde en ongestandariseerde regressie coëfficiënten.

Voor ongestandariseerde coëfficiënten kunnen we de esc_B functie uit {esc} gebruiken:

library(esc)

esc_B(b = 3.3,       # ongestandardiseerde regressie coëfficient
      sdy = 5,       # standaard deviatie van voorspelde variabele y
      grp1n = 100,   # sampleomvang van de eerste groep
      grp2n = 150,   # sampleomvang van de tweede groep
      es.type = "d") # converteer naar SMD; gebruik "g" voor Hedges' g

Effect Size Calculation for Meta Analysis

     Conversion: unstandardized regression coefficient to effect size d
    Effect Size:   0.6962
 Standard Error:   0.1328
       Variance:   0.0176
       Lower CI:   0.4359
       Upper CI:   0.9565
         Weight:  56.7018

Voor gestandariseerde coëfficiënten kunnen we de esc_beta functie uit {esc} gebruiken:

esc_beta(beta = 0.32,   # gestandardiseerde regressie coëfficient
         sdy = 5,       # standaard deviatie van de voorspelde variabele y
         grp1n = 100,   # sampleomvang van de eerste groep
         grp2n = 150,   # sampleomvang van de tweede groep
         es.type = "d") # converteer naar SMD; gebruik "g" voor Hedges' g

Effect Size Calculation for Meta Analysis

     Conversion: standardized regression coefficient to effect size d
    Effect Size:   0.6867
 Standard Error:   0.1327
       Variance:   0.0176
       Lower CI:   0.4266
       Upper CI:   0.9468
         Weight:  56.7867

Hier naar correlatie:

esc_beta(beta = 0.37,   # gestandardiseerde regressie coëfficient
         sdy = 4,       # standaard deviatie van voorspelde variabele y
         grp1n = 50,    # sampleomvang van de eerste groep
         grp2n = 50,    # sampleomvang van de tweede groep
         es.type = "r") # converteer naar correlatie

Effect Size Calculation for Meta Analysis

     Conversion: standardized regression coefficient to effect size correlation
    Effect Size:   0.3668
 Standard Error:   0.1033
       Variance:   0.0107
       Lower CI:   0.1803
       Upper CI:   0.5278
         Weight:  93.7884
     Fisher's z:   0.3847
      Lower CIz:   0.1823
      Upper CIz:   0.5871

Opgelet: gebruik van regressiecoefficiënten kan ingewikkelde zijn in meta-analyse omdat niet altijd hetzelfde model is gebruikt in alle studies (bv. gecontroleerde voor verschillende covariaten). Dus \(\beta\) waarden zijn niet altijd vergelijkbaar.

17.3 Correlaties

Voor ongelijke groepen

library(esc)

esc_rpb(r = 0.25,      # point-biserial correlation
        grp1n = 99,    # sample size of group 1
        grp2n = 120,   # sample size of group 2
        es.type = "d") # convert to SMD; use "g" for Hedges' g

Effect Size Calculation for Meta Analysis

     Conversion: point-biserial r to effect size d
    Effect Size:   0.5188
 Standard Error:   0.1380
       Variance:   0.0190
       Lower CI:   0.2483
       Upper CI:   0.7893
         Weight:  52.4967

17.4 One-way ANOVAs

Om SMD of Hedges’ \(g\) van \(F\)-waarden te berekenen gebruiken we de esc_f functie.

esc_f(f = 5.04,      # F waarde voor de 'one-way anova'
      grp1n = 519,   # sampleomvang voor groep 1 
      grp2n = 528,   # sampleomvang voor groep 2
      es.type = "g") # converteer naar Hedges' g; gebruik "d" voor SMD

Effect Size Calculation for Meta Analysis

     Conversion: F-value (one-way-Anova) to effect size Hedges' g
    Effect Size:   0.1387
 Standard Error:   0.0619
       Variance:   0.0038
       Lower CI:   0.0174
       Upper CI:   0.2600
         Weight: 261.1022

17.5 Twee groep \(t\)-tests

Hier gebruiken we de esc_t functie.

esc_t(t = 3.3,     # t-value 
      grp1n = 100, # sample size of group1
      grp2n = 150, # sample size of group 2
      es.type="d") # convert to SMD; use "g" for Hedges' g

Effect Size Calculation for Meta Analysis

     Conversion: t-value to effect size d
    Effect Size:   0.4260
 Standard Error:   0.1305
       Variance:   0.0170
       Lower CI:   0.1703
       Upper CI:   0.6818
         Weight:  58.7211

17.6 \(p\)-waarden

Soms rapporteren onderzoeken alleen de effectgrootte (bijvoorbeeld een waarde van Cohen’s \(d\)), de \(p\)-waarde van dat effect en niets meer. Om de resultaten in een meta-analyse samen te voegen, hebben we echter een maat nodig voor de precisie van de effectgrootte, bij voorkeur de standaardfout.

In dat geval moeten we de standaardfout schatten uit de \(p\)-waarde van de effectgrootte. Dit is mogelijk voor effectgroottes gebaseerd op verschillen (SMD’s) of ratio’s (risico- of oddsratio’s). Deze formules zijn geïmplementeerd in de functie se.from.p in R.

Uitgaande van een onderzoek met \(N= 71\) deelnemers, met een effectgrootte van \(d= 0,71\) waarvoor \(p= 0,013\), kunnen we de standaardfout als volgt berekenen:

library(dmetar)
Extensive documentation for the dmetar package can be found at: 
 www.bookdown.org/MathiasHarrer/Doing_Meta_Analysis_in_R/
se.from.p(0.71,
          p = 0.013,
          N = 71,
          effect.size.type = "difference")
  EffectSize StandardError StandardDeviation      LLCI     ULCI
1       0.71     0.2860464           2.41027 0.1493594 1.270641

Voor een onderzoek met \(N= 200\) deelnemers dat een effectgrootte rapporteert van \(OR = 0,91\) met \(p= 0,38\), wordt de standaardfout op deze manier berekend:

library(tidyverse) # voor pipe |>
── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ dplyr     1.1.4     ✔ readr     2.1.5
✔ forcats   1.0.0     ✔ stringr   1.5.1
✔ ggplot2   3.4.4     ✔ tibble    3.2.1
✔ lubridate 1.9.3     ✔ tidyr     1.3.0
✔ purrr     1.0.2     
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag()    masks stats::lag()
ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
se.from.p(0.91, p = 0.38, N = 200,
          effect.size.type = "ratio") |> 
          t()
                            [,1]
logEffectSize        -0.09431068
logStandardError      0.10598174
logStandardDeviation  1.49880810
logLLCI              -0.30203107
logULCI               0.11340971
EffectSize            0.91000000
LLCI                  0.73931510
ULCI                  1.12009075

Als effect.size.type = "ratio" berekent de functie automatisch ook de log-getransformeerde effectgrootte en standaardfout, die nodig zijn om de metagen-functie te gebruiken.

17.7

\(\chi^2\)-tests

Om een \(\chi^2\) statistiek om te zetten naar een odds-ratio kan de functie esc_chisq gebruikt worden, zoals bv hieronder:

esc_chisq(chisq = 7.9,        # chi-squared waarde
          totaln = 100,       # totale sampleompvang
          es.type = "cox.or") # converteer naar odds ratio

Effect Size Calculation for Meta Analysis

     Conversion: chi-squared-value to effect size Cox odds ratios
    Effect Size:   2.6287
 Standard Error:   0.3440
       Variance:   0.1183
       Lower CI:   1.3394
       Upper CI:   5.1589
         Weight:   8.4502

17.8 Number Needed to Treat (NNT)

Effectgroottes zoals Cohen’s \(d\) of Hedges’ \(g\) zijn vanuit praktisch oogpunt vaak moeilijk te interpreteren. Stel dat we in onze meta-analyse een interventie-effect vaststellen van \(g=0,35\). Hoe kunnen we communiceren wat een dergelijk effect betekent voor patiënten, overheidsfunctionarissen, medische professionals of andere belanghebbenden?

Om het voor anderen gemakkelijker te maken om de resultaten te begrijpen, wordt in meta-analyses ook vaak het aantal benodigde behandelingen (\(NNT\)) vermeld. Deze maat wordt het meest gebruikt in medisch onderzoek. Het geeft aan hoeveel extra patiënten de onderzochte behandeling moeten krijgen om één extra negatieve gebeurtenis (bijv. terugval) te voorkomen of één extra positieve gebeurtenis (bijv. symptoomremissie, respons) te bereiken. Als \(NNT = 3\), bijvoorbeeld, kunnen we zeggen dat drie personen de behandeling moeten krijgen om één extra terugval te voorkomen; of dat drie patiënten moeten worden behandeld om één extra geval van betrouwbare symptoomremissie te bereiken, afhankelijk van de onderzoeksvraag.

Als we risico- of oddsratio’s gebruiken als maatstaven voor de effectgrootte, kunnen NNT’s direct worden berekend uit {meta} objecten met behulp van de nnt-functie. Nadat we onze meta-analyse hebben uitgevoerd met metabin, hoeven we alleen de resultaten in de nnt-functie te stoppen. Hier is een voorbeeld:

library(meta)
Loading 'meta' package (version 6.5-0).
Type 'help(meta)' for a brief overview.
Readers of 'Meta-Analysis with R (Use R!)' should install
older version of 'meta' package: https://tinyurl.com/dt4y5drs
data(Olkin1995)

# Draai meta-analyse met binaire effect size data
m.b <- metabin(ev.exp, n.exp, ev.cont, n.cont, 
               data = Olkin1995,
               sm = "RR")
nnt(m.b)
Number needed to treat (common effect model): 

     RR    p.c    NNTB             95%-CI
 0.7728 0.1440 30.5677 [26.1222; 37.2386]
 0.7728 0.3750 11.7383 [10.0312; 14.3001]

Number needed to treat (random effects model): 

     RR    p.c    NNTB             95%-CI
 0.7694 0.1440 30.1139 [24.0662; 41.3519]
 0.7694 0.3750 11.5641 [ 9.2417; 15.8796]

Gestandaardiseerde gemiddelde verschillen of Hedges’ \(g\) kunnen worden omgezet naar de \(NNT\) met behulp van de NNT-functie in {dmetar}.

# library(dmetar)
NNT(d = 0.245)
Kraemer & Kupfer method used. 
[1] 7.270711

De Furukawa methode wordt gebruikt als er een CER is toegevoegd.

NNT(d = 0.245, CER = 0.35)
Furukawa & Leucht method used. 
[1] 10.61533