Meta-analysis

Uit Methodologiewinkel
Ga naar: navigatie, zoeken

Waar deze test voor wordt gebruikt

Een meta analyse wordt gebruikt om de gevonden resultaten van een verzameling artikelen, die ongeveer hetzelfde onderzoek doen, statistisch samen te vatten. Door een grote hoeveelheid individuele onderzoeksresultaten samen te nemen, kan een geïnformeerde schatting gemaakt worden van het populatie effect.

Het populatie effect wordt geschat door de gemiddelde effectgrootte van de artikelen te berekenen. De artikelen worden gewogen aan de hand van de standaardfout van de effectgrootte. Deze is een functie van de steekproefgrootte van het artikel. Ook de variabiliteit in effectgrootte tussen de onderzoeken wordt meegenomen.

Een meta analyse wordt bijvoorbeeld gebruikt om na te gaan of een interventie werkt, en onder welke omstandigheden. Wanneer er vermoedelijk systematisch verschil zit tussen de effect groottes van de onderzoeken, kunnen er moderatoren in de analyse meegenomen worden.

Assumpties

Er zijn geen vaste assumpties voor de regressie, maar wel een aantal voorwaarden voor een correcte uitvoering. Hieronder staan vijf onderdelen waar aandacht aan besteed moet worden om de meta analyse tot een succes te brengen.

1 Selectie artikelen
● Bij een analyse van 15 of meer artikelen, voorkom je dat de kans op een type I fout te hoog is (Field & Gillett, 2010).
● Voor deze toets geldt “garbage in, garbage out”; voor een correcte schatting van de populatie effect grootte is het noodzakelijk dat de onderzoeken correct zijn uitgevoerd.
● Het is belangrijk dat de zoek- en inclusiecriteria voor de artikelen worden bijgehouden. Bijvoorbeeld het type steekproef, interventie en uitkomstmaat dat in de artikelen wordt onderzocht, de zoektermen en de databases.

2 Type meta analyse
Afhankelijk van de heterogeniteit van de onderzoeken, wordt gekozen voor een fixed-effect model of een random-effect model. Een fixed-effect model gaat er van uit dat er geen variatie tussen de effectgroottes van de artikelen is. Een random-effect model staat onverklaarde variantie toe. Bij verschillen in methodes en steekproeven tussen de studies in de steekproef is het aannemelijk dat er wel variatie tussen de effectgroottes is. Dan kan het best a priori besloten worden om een random-effect model toe te passen (Field & Gilett, 2010).
Bij een meta analyse wordt getest voor heterogeniteit aan de hand van de Q-statistiek. Dit is de som van de gewogen variantie op de gemiddelde effectgrootte. Mocht bij het uitvoeren van een fixed-effect model blijken dat er sprake is van heterogeniteit, dan is het aan te raden om vervolgens een random-effect model uit te voeren. Deze Q-test heeft een lage power, in het bijzonder bij een kleine N (Hedges & Pigott, 2010). Mocht bij een random-effect model de Q-test geen heterogeniteit indiceren, dan kan dit te wijten zijn aan een lage power.

3 Type effectgrootte
Een effectgrootte zegt iets over de sterkte van de relatie of het verschil tussen twee variabelen. Zie Kraemer et al. (2003) voor meer informatie over de verschillende effect groottes en welke waarden worden beschouwd als zwak, gemiddeld of sterk.
● Onafhankelijke en afhankelijke variabelen zijn continu/ordinaal
r-effect groottes geven de sterkte van een associatie aan. Deze varieert tussen -1 en 1, waarbij 0 geen effect betekent. Voorbeelden van zulke effectgroottes zijn Pearson’s, Spearman en Kendall’s rangordecorrelatiecoëfficient.
● Afhankelijke variabele is continu/ordinaal en onafhankelijke variabelen is dichotoom:
d-effect groottes worden gebruikt wanneer er twee groepen worden vergeleken. Het is het gemiddelde verschil tussen twee groepen uitgedrukt in standaard deviaties. Deze kan varieren van nul tot oneindig, waarbij 0 geen effect betekent. Het wordt over het algemeen berekend door de gemiddeldes van de twee groepen van elkaar af te trekken en deze te delen door de gemeenschappelijke standaarddeviatie (pooled standard deviation). Voorbeelden van zulke effectgroottes zijn Cohen’s d en Hedges’ g.
● Afhankelijke variabele is discreet.
In de gevallen dat de afhankelijke variabele discreet is kunnen de Odds ratio, risk ratio, Number needed to treat of de Area under Curve bijvoorbeeld gebruikt worden.

4 Moderatoren
Een meta analyse gooit alle artikelen op één hoop, ondanks verschillen in de opzet van de studies. Wanneer het vermoeden bestaat dat er een systematisch verschil is tussen de effectgroottes van de studies, kunnen er moderatoren toegevoegd worden aan de analyse. Voorbeelden van moderatoren zijn het aantal dagen dat de therapie duurt of de leeftijd van de proefpersonen, en zelfs de kwaliteit van de studie of het type uitkomstmaat.

5 Publicatie bias
Publicatie bias ontstaat omdat significante resultaten eerder gepubliceerd worden dan niet-significante resultaten. Dit heeft tot gevolg dat bij een meta analyse van gepubliceerde literatuur de kans op een type I fout verhoogd is. Daarom is het van belang om te controleren of er sprake is van publicatie bias en eventueel te corrigeren.
Testen om publicatie bias te detecteren zijn:
● Begg’s correlation (Begg & Mazumdar, 1994)
● Egger regressie: test de symmetrie van de funnel plot (Egger, Smith, Schneider & Minder, 1997)
● Een funnel plot

Een funnel plot maakt publicatie bias visueel detecteerbaar. De variatie van de effectgroottes rondom de gemiddelde effect grootte, zou kleiner moeten worden naarmate de standarderror kleiner wordt, oftewel naarmate N groter wordt. Hieronder zijn twee funnel plots zichtbaar. De rechter grafiek wijst niet op publicatie bias. Hier is minder variatie rondom het gemiddelde naarmate de standarderror groter is. Bij de linker is mogelijk sprake van publicatie bias. Er is weinig variatie rondom het gemiddelde bij een grotere standarderror en de plot is niet symmetrisch. Een alternatieve verklaring hiervoor is het “small study effect”, kleinere studies hebben minder variatie omdat ze zich richten op specifieke populaties en zorgvuldig worden uitgevoerd. Ook kunnen systematische verschillen in de steekproeven een rol spelen. Het is dus belangrijk om een funnel plot voorzichtig te interpreteren.
Funnel plot met biasFunnel plot zonder bias

Hoe uit te voeren in R

Er zijn meerdere packages beschikbaar om de analyse mee uit te voeren. Hier wordt de ‘metafor’ package uitgelegd.

rma(yi, vi, method) is de belangrijkste functie van metafor, hiermee voer je de meta regressie uit.
Deze functie heeft de effect groottes (yi), de bijbehorende varianties (vi) en methode (method) nodig. Qua methodes kun je bijvoorbeeld kiezen uit “FE” fixed effect of “REML” random effect (maximum likelihood). Er zijn nog meer mogelijkheden om uit te kiezen, deze kun je vinden in de handleiding van ‘metafor’ via onderstaande link.

https://cran.r-project.org/web/packages/metafor/metafor.pdf

● escalc() is een handige functie om de effect groottes te geven waarmee de berekeningen in rma() worden gedaan.
● funnel() creëert een funnel plot
● fsn() berekent de fail-safe N. De default van deze functie berekent het aantal studies dat toegevoegd zou moeten worden om de p-waarde boven alpha = 0.05 te brengen. In de handleiding van de ‘metafor’ package staat beschreven hoe de alpha en berekening aangepast kunnen worden.
● forest() creëert een forest plot van de effect groottes en hun varianties. Daarmee wordt de heterogeniteit van de effect groottes van je studies overzichtelijk. Hieronder staan twee figuren, bij de linker is sprake van homogeniteit en bij rechts van heterogeniteit.
Homogeniteit.jpgHeterogeniteit.jpg

Interpreteren R-output

De rma() functie geeft een hoop resultaten, hieronder de codes waarmee je de belangrijkste kunt opvragen.
b: omnibus effect
ci.lb: linkerpunt van 95% confidence interval
ci.ub: rechterpunt van 95% confidence interval
vb: variantie van het omnibus effect
fit.stats: de testresultaten
yi: de effect groottes
vi: de bijbehorende varianties

Interpreteren Fixed-Effect analyse Hieronder staan de resultaten van een fixed-effect analyse in R. De hiervoor gebruikte data wordt in het laaste hoofdstuk weergegeven.

>rma(y1,v1,method="FE")

 Fixed-Effects Model (k = 50)

Test for Heterogeneity:
Q(df = 49) = 47.5242, p-val = 0.5331

Model Results:

estimate se zval pval ci.lb ci.ub
1.9161 0.0930 20.6022 <.0001 1.7338 2.0984 ***

---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

De Q-test is niet significant, dus de hypothese van homogeniteit kan worden aangenomen. Dit komt dus overeen met de keuze voor een fixed-effect model.

Bij model results is zichtbaar dat de schatting van de effectgrootte 1.9 is, en dat deze een significante p-waarde heeft.

Interpreteren Random-Effect analyse Hieronder staan de resultaten van een random-effect analyse in R. De hiervoor gebruikte data wordt in het laaste hoofdstuk weergegeven.

> rma(y1, v1, method = "REML")

 Random-Effects Model (k = 80; tau^2 estimator: REML)

tau^2 (estimated amount of total heterogeneity): 0.2424 (SE = 0.1081)
tau (square root of estimated tau^2 value): 0.4923
I^2 (total heterogeneity / total variability): 35.88%
H^2 (total variability / sampling variability): 1.56

Test for Heterogeneity:
Q(df = 79) = 120.6421, p-val = 0.0018

Model Results:

estimate se zval pval ci.lb ci.ub
1.1650 0.0933 12.4870 <.0001 0.9822 1.3479 ***

---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1


De Q-test is significant, dus de hypothese van homogeniteit kan worden afgewezen. Dit komt dus overeen met de keuze voor een random-effect model. Wanneer de Q-test niet significant is, maar er theoretisch gezien vermoedelijk sprake is van heterogeniteit, kan dit te wijten zijn aan de lage power van de Q-test (Hedges & Pigott, 2001).

Specifiekere informatie over de heterogeniteit wordt weergegeven:
tau^2 is de between study variance (τ²)
I^2 staat voor Higgins I², dit is het percentage onverklaarde variantie. Higgins heeft de volgende voorzichtige richtlijnen gesteld voor de interpretatie:
0 - 30% low
30 - 60% moderate
50 - 90% substantial
75- 100% considerable
H^2 is de hoeveelheid variantie per vrijheidsgraad, wanneer deze groter dan 1 is, is er sprake van onverklaarde variantie in het model, en is een random effect analyse de juiste keuze.

Bij model results is zichtbaar dat de schatting van de effectgrootte 1.16 is, en dat deze een significante p-waarde heeft.

Hoe uit te voeren in SPSS

SPSS heeft geen ingebouwde functie voor een meta analyse, maar het is mogelijk om de syntax op het internet te verkrijgen. Dr. Field (bekend van “Discovering Statistics using SPSS”) biedt SPSS syntax aan op zijn webpagina, inclusief uitleg.

http://www.statisticshell.com/meta_analysis/how_to_do_a_meta_analysis.html

Over het algemeen geldt dat als je de effectgroottes van de artikelen en de groottes van de steekproeven van de artikelen beschikbaar hebt, je daar de syntax op kunt runnen.

Interpreteren SPSS-output

Hieronder wat uitleg over de interpretatie van de SPSS output die je krijgt, wanneer je de syntax van dr. Field gebruikt. Algemeen gesteld geeft de output een schatting van het populatie effect met een betrouwbaarheidsinterval en de resultaten van een homogeniteitstest. Er zijn twee methodes om het populatie effect te berekenen, de Hedges-Vevea methode en de Hunter-Schmidt methode. Welke het meeste geschikt is voor jou specifieke verzameling artikelen, kun je terugvinden in de tabellen in Field (2005).

De Hedges-Vevea het gewogen gemiddelde aan de hand van gestandaardiseerde z-waarden. De variantie binnen en tussen de artikelen wordt meegenomen om het gemiddelde te berekenen. Hierbij wordt een confidence interval gegeven van de geschatte effectgrootte. Een z-waarde van de effectgrootte met bijbehorende p-waarde zal aangeven of de effectgrootte significant is.

De Hunter-Schmidt methode geeft een schatting van de populatie effect grootte. Daarnaast geeft het een credibility interval, waarbij de kans 95% is dat de effectgrootte in het interval ligt. Dit geeft informatie over de mate waarin de schatting van de populatie effect grootte precies is. Hoe groter dit interval hoe meer variatie van de effect groottes binnen de populatie. Wanneer de variantie van de geschatte populatie effectgrootte hoog is, door variatie in de steekproeven van de gebruikte artikelen, is de geschatte populatie effectgrootte niet generaliseerbaar meer.

Er wordt een homogeniteit test uitgevoerd om na te gaan of de effectgroottes van de artikelen homogeen zijn. Hierbij wordt rekening gehouden met de grootte van de steekproeven die de artikelen gebruiken.


Rapporteren conclusie

Let er op bij het rapporteren dat causale conclusies strikt genomen niet toegestaan zijn, want het is geen experiment.

Een aantal dingen kunnen worden aangeraden om te rapporteren:
● de zoektermen en databases die zijn gebruikt om de artikelen te vinden
● de inclusie criteria die zijn gehanteerd om de artikelen te selecteren
● de keuze met argumentatie voor het type meta analyse (random vs. fixed effects)
● moderatie analyses kunnen worden verduidelijkt met frequentie tabellen of figuren per subgroep
● De variabiliteit van effect groottes rapporteren
● De populatie effect size met confidence of credibility interval
● Informatie over publication bias en correctie analyses rapporteren
● De resultaten van de fixed en/of random analysis, in het geval van een post hoc analyse beiden geven.
● Maak een forest plot om de heterogeniteit van effect groottes overzichtelijk te krijgen

Lees Brewin et al. (2007) voor meer informatie over de rapportage van de resultaten.


Aangeraden literatuur

Selectieproces Meline, T. (2006). Selecting studies for systematic review: Inclusion and exclusion criteria. Contemporary Issues in Communication Science and Disorders, 33, 21-27.
Fixed- / Random-effects
Hedges, L.V., & Vevea, J. L. (1998). Fixed- and random-effects models in meta-analysis. Psychological Methods, 3, 486-504.
De uitvoering
Borenstein et al. (2009). Introduction to Meta-Analysis. Zie http://onlinelibrary.wiley.com/book/10.1002/9780470743386 (gratis beschikbaar met uvanetID)
Field, A. P., & Gillett, R. (2010). How to do a meta‐analysis. British Journal of Mathematical and Statistical Psychology, 63(3), 665-694.
Hedges, L. V., & Pigott, T. D. (2001). The power of statistical tests in meta-analysis. Psychological Methods, 6(3), 203–217. doi:10.1037/1082-989X.6.3.203
De effectgroottes
Kraemer, H. C., Morgan, G. A., Leech, N. L., Gliner, J. A., Vaske, J. J., & Harmon, R. J. (2003). Measures of clinical significance. Journal of the American Academy of Child & Adolescent Psychiatry, 42(12), 1524-1529.
De methode
Field, A. P. (2005). Is the meta-analysis of correlation coefficients accurate when population correlations vary?. Psychological methods, 10(4), 444.
Rapportage
Brewin, C. R., Kleiner, J. S., Vasterling, J. J., & Field, A. P. (2007). Memory for emotionally neutral information in posttraumatic stress disorder: A meta-analytic investigation. Journal of abnormal psychology, 116(3), 448.
Publicatie bias
Begg, C. B., & Mazumdar, M. (1994). Operating characteristics of a rank correlation test for publication bias. Biometrics, 50(4), 1088-1101.
Egger, M., Smith, G. D., Schneider, M., & Minder, C. (1997). Bias in meta-analysis detected by a simple, graphical test. British Medical Journal, 315(7109), 629-634.
Vevea, J. L., & Woods, C. M. (2005). Publication bias in research synthesis: sensitivity analysis using a priori weight functions. Psychological methods, 10(4), 428.

Gebruikte data en R-code


Fixed-effect analyse
> FE.data[1:25,1] <- rnorm(25, 2, 0.25)
> FE.data[26:50,1] <- rnorm(25, 2, 1)
> FE.data[1:25,2] <- rnorm(25, 0.35, 0.1)
> FE.data[26:50,2] <- rnorm(25, 0.6, 0.1)

> FE.data
Cohen's D sv
1 2.0915834 0.4990891
2 2.1610285 0.4344626
3 2.0803777 0.3693195
4 1.5860010 0.3095310
5 2.1161014 0.3899950
6 2.0430143 0.2637287
7 2.5745984 0.3355220
8 2.1417021 0.4463682
9 1.9757903 0.1909617
10 1.9189375 0.4315969
11 1.7978018 0.3312140
12 1.8191461 0.3208302
13 1.9279890 0.3509620
14 1.9587648 0.4861749
15 2.0473373 0.3286937
16 1.8504123 0.3383980
17 2.0255620 0.4192991
18 2.3394325 0.4303995
19 2.0370566 0.1218845
20 2.0129903 0.3407209
21 1.9423016 0.5854039
22 1.8663980 0.3406967
23 1.9616655 0.3407602
24 1.8778819 0.3173733
25 1.9250562 0.3197390
26 3.8797222 0.8565572
27 0.6513787 0.6799816
28 2.6417371 0.5479737
29 0.8799031 0.8691271
30 2.7010000 0.7490709
31 1.0484462 0.4578772
32 1.6218405 0.5073225
33 1.6600229 0.6890283
34 1.9419888 0.6770282
35 2.1653058 0.7331811
36 2.9074868 0.5924575
37 3.6198930 0.8135478
38 0.1315480 0.5793183
39 2.7858186 0.5858834
40 1.2476475 0.5977366
41 0.6569541 0.5890681
42 0.9265164 0.5575935
43 2.7710767 0.6991161
44 2.6661170 0.6146169
45 0.5885885 0.6044162
46 1.8449764 0.5695455
47 0.4895238 0.6108533
48 1.7704951 0.7285956
49 0.5056541 0.5887264
50 3.5746983 0.7138292

> FE.res <- rma(FE.data[,1], FE.data[,2], method = "FE")
> funnel(FE.res)
> FE.res125 <- rma(FE.data[1:25,1], FE.data[1:25,2], method = "FE")
> funnel(FE.res125)
> forest(FE.res125)

Random-effect analyse
REML.data[1:20,1] <- rnorm(20, 0.5, 0.25)
REML.data[21:40,1] <- rnorm(20, 0.5, 0.5)
REML.data[41:60,1] <- rnorm(20, 2, 0.25)
REML.data[61:80,1] <- rnorm(20, 2, 0.5)
REML.data[1:20,2] <- rnorm(20, 0.35, 0.1)
REML.data[21:40,2] <- rnorm(20, 0.6, 0.1)
REML.data[41:60,2] <- rnorm(20, 0.35, 0.1)
REML.data[61:80,2] <- rnorm(20, 0.6, 0.1)

Cohen's D sv
1 0.37 0.40
2 0.54 0.38
3 0.36 0.28
4 0.63 0.42
5 0.19 0.56
6 0.80 0.36
7 0.52 0.42
8 0.15 0.21
9 0.40 0.37
10 -0.04 0.38
11 0.08 0.35
12 0.32 0.32
13 0.46 0.42
14 0.61 0.16
15 0.15 0.34
16 0.31 0.45
17 0.19 0.30
18 0.50 0.23
19 0.66 0.38
20 0.56 0.32
21 0.64 0.65
22 0.82 0.48
23 0.73 0.83
24 -0.18 0.68
25 0.37 0.54
26 0.28 0.47
27 0.41 0.67
28 0.87 0.66
29 0.08 0.66
30 0.71 0.69
31 0.92 0.72
32 0.17 0.48
33 0.74 0.62
34 0.83 0.68
35 0.54 0.54
36 0.81 0.71
37 0.19 0.35
38 0.44 0.60
39 0.02 0.73
40 0.38 0.73
41 2.27 0.46
42 1.87 0.26
43 1.97 0.46
44 2.15 0.40
45 2.13 0.56
46 1.84 0.22
47 2.05 0.41
48 1.96 0.58
49 1.82 0.49
50 1.89 0.41
51 1.65 0.41
52 2.03 0.25
53 1.86 0.41
54 2.17 0.34
55 1.83 0.35
56 1.96 0.20
57 1.87 0.40
58 1.76 0.49
59 1.60 0.29
60 2.09 0.40
61 3.31 0.49
62 1.61 0.69
63 1.78 0.57
64 1.51 0.46
65 1.69 0.56
66 2.00 0.64
67 2.12 0.52
68 2.30 0.60
69 2.18 0.49
70 0.93 0.53
71 2.35 0.66
72 1.52 0.69
73 1.94 0.52
74 2.22 0.47
75 1.70 0.55
76 2.30 0.68
77 1.18 0.65
78 2.00 0.62
79 1.31 0.55
80 1.83 0.69

> REML.res <- rma(REML.data[,1], REML.data[,2], method = "REML")
> REML.res3150 <- rma(REML.data[31:50,1], REML.data[31:50,2], method="REML")
> forest(REML.res3150)