Hoe grubbs 'tester in python uit te voeren
De Grubbs-test wordt gebruikt om de aanwezigheid van uitbijters in een dataset te identificeren. Om deze test te kunnen gebruiken, moet een dataset ongeveer normaal verdeeld zijn en minimaal zeven waarnemingen bevatten.
In deze tutorial wordt uitgelegd hoe u de Grubbs-test in Python uitvoert.
Grubbs-test in Python
Om de Grubbs-test in Python uit te voeren, kunnen we de functie smirnov_grubbs() uit het pakket outlier_utils gebruiken, die de volgende syntaxis gebruikt:
smirnov_grubbs.test (gegevens, alfa = 0,05)
Goud:
- data: een numerieke vector van datawaarden
- alpha: Het significantieniveau dat voor de test moet worden gebruikt. De standaardwaarde is 0,05
Om deze functie te gebruiken, moet u eerst het outlier_utils- pakket installeren:
pip install outlier_utils
Zodra dit pakket is geïnstalleerd, kunt u de Grubbs-test uitvoeren. De volgende voorbeelden illustreren hoe u dit kunt doen.
Voorbeeld 1: Tweestaartige Grubbs-test
De volgende code illustreert hoe u een tweezijdige Grubbs-test uitvoert, waarmee uitschieters aan beide uiteinden van de gegevensset worden gedetecteerd.
import numpy as np from outliers import smirnov_grubbs as grubbs #define data data = np.array([5, 14, 15, 15, 14, 19, 17, 16, 20, 22, 8, 21, 28, 11, 9, 29, 40]) #perform Grubbs' test grubbs. test (data, alpha=.05) array([5, 14, 15, 15, 14, 19, 17, 16, 20, 22, 8, 21, 28, 11, 9, 29])
Deze functie retourneert eenvoudigweg een array zonder de uitbijters. In dit geval was de maximale waarde van 40 een uitschieter en daarom verwijderd.
Voorbeeld 2: Eenzijdige Grubbs-test
De volgende code laat zien hoe u een eenzijdige Grubbs-test uitvoert voor de minimumwaarde en maximumwaarde in een gegevensset:
import numpy as np from outliers import smirnov_grubbs as grubbs #define data data = np.array([5, 14, 15, 15, 14, 19, 17, 16, 20, 22, 8, 21, 28, 11, 9, 29, 40]) #perform Grubbs' test to see if minimum value is an outlier grubbs. min_test (data, alpha=.05) array([5, 14, 15, 15, 14, 19, 17, 16, 20, 22, 8, 21, 28, 11, 9, 29, 40]) #perform Grubbs' test to see if minimum value is an outlier grubbs. max_test (data, alpha=.05) array([5, 14, 15, 15, 14, 19, 17, 16, 20, 22, 8, 21, 28, 11, 9, 29])
De minimale uitbijtertest heeft de minimumwaarde niet als uitbijter gedetecteerd. De maximale uitschietertest stelde echter vast dat de maximale waarde van 40 een uitschieter was en werd daarom verwijderd.
Voorbeeld 3: Extraheer de index van de uitbijter
De volgende code laat zien hoe u de index van de uitbijter kunt extraheren:
import numpy as np from outliers import smirnov_grubbs as grubbs #define data data = np.array([5, 14, 15, 15, 14, 19, 17, 16, 20, 22, 8, 21, 28, 11, 9, 29, 40]) #perform Grubbs' test and identify index (if any) of the outlier grubbs. max_test_indices (data, alpha=.05) [16]
Dit vertelt ons dat er een uitbijter is op indexpositie 16 van de tabel.
Voorbeeld 4: Haal de waarde uit de uitbijter
De volgende code laat zien hoe u de waarde uit de uitbijter kunt extraheren:
import numpy as np from outliers import smirnov_grubbs as grubbs #define data data = np.array([5, 14, 15, 15, 14, 19, 17, 16, 20, 22, 8, 21, 28, 11, 9, 29, 40]) #perform Grubbs' test and identify the actual value (if any) of the outlier grubbs. max_test_outliers (data, alpha=.05) [40]
Dit vertelt ons dat er een uitbijter is met een waarde van 40.
Hoe om te gaan met uitschieters
Als de Grubbs-test een uitbijter in uw dataset identificeert, heeft u verschillende opties:
1. Controleer nogmaals of de waarde geen typefout of gegevensinvoerfout is. Soms zijn waarden die als uitschieters in datasets verschijnen eenvoudigweg typefouten die door een individu zijn gemaakt tijdens het invoeren van gegevens. Controleer eerst of de waarde correct is ingevoerd voordat u verdere beslissingen neemt.
2. Wijs een nieuwe waarde toe aan de uitbijter . Als de uitbijter het gevolg blijkt te zijn van een typfout of een fout bij het invoeren van gegevens, kunt u besluiten er een nieuwe waarde aan toe te kennen, zoals het gemiddelde of de mediaan van de dataset.
3. Verwijder de uitbijter. Als de waarde echt een uitbijter is, kunt u ervoor kiezen deze te verwijderen als deze een aanzienlijke impact heeft op uw analyse.