Hoe een brown-forsythe-test uit te voeren in python
Een one-way ANOVA wordt gebruikt om te bepalen of er al dan niet een significant verschil is tussen de gemiddelden van drie of meer onafhankelijke groepen.
Een van de aannames van een eenrichtings-ANOVA is dat de varianties van de populaties waaruit de steekproeven worden getrokken gelijk zijn.
Een van de meest gebruikelijke manieren om dit te testen is het gebruik van een Brown-Forsythe-test , een statistische test die gebruik maakt van de volgende aannames :
- H 0 : De varianties tussen populaties zijn gelijk.
- H A : De verschillen tussen populaties zijn niet gelijk.
Als de p-waarde van de test onder een bepaald significantieniveau ligt (bijvoorbeeld α = 0,05), dan verwerpen we de nulhypothese en concluderen we dat de varianties niet gelijk zijn tussen verschillende populaties.
Deze tutorial biedt een stapsgewijs voorbeeld van hoe u een Brown-Forsythe-test in Python uitvoert.
Stap 1: Voer de gegevens in
Stel dat onderzoekers willen weten of drie verschillende meststoffen tot verschillende niveaus van plantengroei leiden.
Ze selecteren willekeurig 30 verschillende planten en verdelen ze in drie groepen van 10, waarbij elke groep een andere meststof wordt toegediend. Na een maand meten ze de hoogte van elke plant.
De volgende tabellen tonen de hoogte van planten in elk van de drie groepen:
group1 = [7, 14, 14, 13, 12, 9, 6, 14, 12, 8] group2 = [15, 17, 13, 15, 15, 13, 9, 12, 10, 8] group3 = [6, 8, 8, 9, 5, 14, 13, 8, 10, 9]
Stap 2: Vat de gegevens samen
Voordat we een Brown-Forsythe-test uitvoeren, kunnen we de variantie van de plantmetingen in elke groep berekenen:
#import numpy import numpy as np #calculate variance of plant measurements in each group print (np. var (group1), np. var (group2), np. var (group3)) 8.69 7.81 7.0
We kunnen zien dat de varianties tussen groepen verschillen, maar om te bepalen of deze verschillen statistisch significant zijn, kunnen we de Brown-Forsythe-test uitvoeren.
Stap 3: Voer de Brown-Forsythe-test uit
Om een Brown-Forsythe-test in Python uit te voeren, kunnen we de functie scipy.stats.levene() gebruiken en specificeren dat het centrum mediaan is:
import scipy.stats as stats
stats. levene (group1, group2, group3, center=' median ')
LeveneResult(statistic=0.17981072555205047, pvalue=0.8364205218185946)
Uit het resultaat kunnen we het volgende opmaken:
- Teststatistiek: 0,1798
- p-waarde: 0,8364
De p-waarde van de test blijkt groter dan 0,05 te zijn, dus we slagen er niet in de nulhypothese van de test te verwerpen.
De verschillen in varianties tussen groepen zijn niet statistisch significant.
Volgende stappen
Als we er niet in slagen de nulhypothese van de Brown-Forsythe-test te verwerpen, kunnen we een eenrichtings-ANOVA op de gegevens uitvoeren.
Als we echter de nulhypothese verwerpen, geeft dit aan dat niet aan de aanname van gelijkheid van varianties is voldaan. In dit geval hebben we twee opties:
1. Voer toch een one-way ANOVA uit.
Het blijkt dat een eenrichtings-ANOVA feitelijk robuust is tegen ongelijke varianties, zolang de grootste variantie niet groter is dan vier keer de kleinste variantie.
In stap 2 van het bovenstaande voorbeeld hebben we vastgesteld dat de kleinste variantie 7,0 was en de grootste variantie 8,69. De verhouding tussen de grootste en de kleinste variantie is dus 8,69 / 7,0 = 1,24 .
Omdat deze waarde kleiner is dan 4, kunnen we eenvoudigweg doorgaan met de eenrichtings-ANOVA, zelfs als de Brown-Forsythe-test aangeeft dat de varianties niet gelijk zijn.
2. Voer een Kruskal-Wallis-test uit
Als de verhouding tussen de grootste variantie en de kleinste variantie groter is dan 4, kan men ervoor kiezen om in plaats daarvan een Kruskal-Wallis-test uit te voeren. Dit wordt beschouwd als het niet-parametrische equivalent van eenrichtings-ANOVA.
Een stapsgewijs voorbeeld van een Kruskal-Wallis-test in Python vindt u hier .