Dit is een site voor studenten van de Open Universiteit. Voordat je een vraag kunt stellen moet je even een account aanmaken (dit systeem is niet gekoppeld aan je OU studentnummer en wachtwoord).

Welkom bij het vraag- en antwoord systeem van de onderzoeks-practica van de studie psychologie bij de Open Universiteit.

Houd er, als je een vraag stelt, rekening mee dat je de richtlijnen volgt!

Kan de Holm-Bonferroni correctie niet geautomatiseerd worden uitgevoerd?

0 leuk 0 niet-leuks
Als in een studie meerdere toetsen worden uitgevoerd, is de kans op een Type 1 fout gelijk aan:
$$P_\text{minimaal 1 Type 1 fout}=1-(1-\alpha)^\text{aantal toetsen}$$
Om die kans per studie op $\alpha$ te houden kunnen correcties voor Multiple Testing worden gebruiken, zoals de Bonferroni correctie, de iets verbeterde Šidák correctie, de Holm-Bonferroni procedure, of de False Discovery Rate procedure van Benjamini en Hochberg. Die laatste twee hebben meer power dan de Bonferroni procedure of de Šidák procedure, maar die zijn ook meer werk, en moeten met de hand. Is er geen manier om dit te automatiseren?
gevraagd 10 januari 2013 in Bivariate statistiek door gjp (69,620 punten)
bewerkt 10 januari 2013 door gjp

1 Antwoord

0 leuk 0 niet-leuks

In R (zie evt http://oupsy.nl/help/24/wat-is-r-en-hoe-installeer-ik-het) zit een functie om een aantal correcties voor Multiple Testing uit te voeren: zie http://stat.ethz.ch/R-manual/R-patched/library/stats/html/p.adjust.html.

Deze functie heet p.adjust, en die geef je twee parameters mee: een vector met de p-waarden, en het soort correctie dat je wilt uitvoeren. Stel je voor dat je acht toetsen hebt uitgevoerd, met als p-waarden .002, .009, .023, .044, .098, .236, .463 en .872. In R voer je die dan in in een vector:

p <- c(.002, .009, .023, .044, .098, .236, .463, .872);

Dan gebruik je deze code om te kijken wat die p-waarden zouden zijn als je ze corrigeert voor multiple testing met de gewone Bonferroni procedure:

p.adjust(p, method="bonferroni");

En deze code om te kijken wat de p-waarden zouden zijn als je ze corrigeert met de Holm-Bonferroni correctie:

p.adjust(p, method="holm");

En deze om de False Discovery Rate te beperken:

p.adjust(p, method="fdr");

Van deze methoden heeft de laatste de meeste power (ik rond de getallen even af om het duidelijker te laten zien):

> round(p.adjust(p, method="bonferroni"), 3);
[1] 0.016 0.072 0.184 0.352 0.784 1.000 1.000 1.000
> round(p.adjust(p, method="holm"), 3);
[1] 0.016 0.063 0.138 0.220 0.392 0.708 0.926 0.926
> round(p.adjust(p, method="fdr"), 3);
[1] 0.016 0.036 0.061 0.088 0.157 0.315 0.529 0.872
beantwoord 10 januari 2013 door gjp (69,620 punten)
bewerkt 10 januari 2013 door gjp
...