Winsorized mean: een robuuste aanpak voor het omgaan met uitschieters
Een winsorized mean vermindert de invloed van uitschieters door extreme waarden af te kappen op specifieke percentielen, terwijl de algehele structuur van de dataset behouden blijft. Lees verder om te leren hoe je het winsorized mean in Python berekent met een hands-on oefening.
Uitschieters kunnen je inzichten vaak op het verkeerde been zetten, waardoor een zinvolle analyse uitmondt in een misleidende conclusie. Onvolmaakte en lawaaierige data horen bij de realiteit, en winsoriseren is een praktische manier om de impact van uitschieters te verkleinen zonder data weg te gooien.
In dit artikel leggen we uit hoe het winsorized mean werkt, waar je het in de praktijk voor gebruikt en hoe je het stap voor stap in Python berekent. We staan ook stil bij de voor- en nadelen, vergelijken het met andere nuttige maten zoals de trimmed mean en bekijken andere statistische maten op basis van winsoriseren.
Wat is een winsorized mean?
Een winsorized mean is een statistische maat die de impact van uitschieters vermindert door extreme waarden te vervangen door minder extreme percentielen in plaats van ze helemaal te verwijderen. In tegenstelling tot het rekenkundig gemiddelde, dat alle datapunten even zwaar meeweegt, beperkt het winsorized mean de invloed van extreme waarden die het totaalresultaat kunnen vertekenen.
Winsoriseren werkt door waarden boven een bepaalde percentielgrens af te kappen of te vervangen. Bij een winsoriseren van 5% bijvoorbeeld, worden de laagste 5% datapunten vervangen door de waarde op het 5e percentiel en de hoogste 5% door de waarde op het 95e percentiel. Deze methode helpt de algehele structuur van de dataset te behouden, terwijl de invloed van uitschieters afneemt. Daardoor is het een robuust alternatief voor het standaard gemiddelde in datasets met extreme waarden.
Praktische toepassingen van het winsorized mean
De relevantie van het winsorized mean in statistische analyses is vooral duidelijk in domeinen waar data vaak scheef verdeeld is. Enkele belangrijke gebieden waar het winsorized mean nuttig is:
Financiën en beleggingsanalyse: Financiële datasets bevatten vaak extreme waarden, zoals beurscrashes of uitzonderlijke winsten, die gemiddelden kunnen vertekenen en trends verhullen. Door rendementen of assetprijzen te winsoriseren, kunnen analisten stabielere prestatiemaatstaven produceren die het typische marktgedrag beter weerspiegelen.
Economische data: In macro-economische studies worden indicatoren zoals inkomens- of vermogensverdeling vaak scheefgetrokken door een klein aantal extreem hoge of lage waarden. Winsorized gemiddelden geven een evenwichtiger beeld van de economische situatie door de invloed van deze extreme observaties te beperken.
Enquête- en sociaalwetenschappelijk onderzoek: Enquêtes kunnen gegevens opleveren met extreme antwoorden, zoals extreem hoge of lage beoordelingen. In zulke gevallen biedt het winsorized mean een nauwkeurigere maat voor de centrale neiging, zodat extreme antwoorden de totale analyse niet onevenredig beïnvloeden.
Medisch en biologisch onderzoek: Medische data, zoals patiëntuitkomsten of testresultaten, kunnen soms extreme waarden vertonen door zeldzame aandoeningen of outlier-cases. Door deze data te winsoriseren krijgen onderzoekers een nauwkeuriger beeld van gemiddelde uitkomsten zonder potentieel waardevolle datapunten volledig te verwijderen.
In al deze toepassingen is het winsorized mean een robuust alternatief voor het standaard gemiddelde: je krijgt inzichten die minder worden beïnvloed door uitschieters, terwijl belangrijke patronen in de data behouden blijven.
Het winsorized mean berekenen in Python
Het berekenen van het winsorized mean in Python houdt in dat je extreme waarden (uitschieters) vervangt door waarden op specifieke percentielen. Voor we beginnen, een korte samenvatting van de stappen die we volgen:
Importeer de benodigde bibliotheken en de dataset.
Winsoriseer de dataset met scipy.winsorize().
Bereken het gemiddelde met numpy.mean().
Laten we de details induiken met een voorbeeld.
Importeer de benodigde bibliotheken en de dataset
Eerst importeren we de bibliotheken die we nodig hebben om het gemiddelde te berekenen.
Vervolgens laden we de dataset, bijvoorbeeld uit een CSV-bestand of een andere bron. Voor de eenvoud maken we in dit voorbeeld een steekproefdataset met numpy.
data = np.array([10,12,14,15,16,18,20,22,24,25,30,35,40,45,50,60,70,80,82,85,90,200])Mogelijk gemaakt door
De 200 kan op basis van een eerste analyse worden gezien als een uitschieter in deze dataset.
Winsoriseer de dataset
De functie winsorize() uit de scipy-bibliotheek laat je het percentage data opgeven dat je uit zowel de lage als de hoge staart wilt winsoriseren. De code daarvoor is als volgt:
# Winsorize 5% from both the lower and upper tails
winsorized_data = winsorize(data, limits=[0.05,0.05])Mogelijk gemaakt door
In de bovenstaande code vervangt de parameter limits=[0.05, 0.05] die aan de functie winsorize() wordt doorgegeven, de kleinste 5% en de grootste 5% van de waarden door de waarden op respectievelijk het 5e en 95e percentiel. We kunnen nu de gewinsoriseerde data bekijken die we hebben gemaakt.
print("Original data: ", data)print("Winsorized data: ", winsorized_data)Mogelijk gemaakt door
De uitvoer laat zien dat de uitschieters zijn vervangen:
Original data:[1012141516182022242530354045506070808290200]
Winsorized data:[121214151618202224253035404550607080829090]Mogelijk gemaakt door
Hier is de maximumwaarde 200 vervangen door 90; op dezelfde manier zijn extreme waarden aan de onderkant, 10, vervangen door 12.
Bereken het gemiddelde
Tot slot berekenen we het gemiddelde van de gewinsoriseerde data:
winsorized_mean = np.mean(winsorized_data)print("Winsorized mean: ", winsorized_mean)Mogelijk gemaakt door
Het winsorized mean heeft de invloed van de extreem hoge waarden verkleind ten opzichte van een gewoon gemiddelde. Ter vergelijking kunnen we het oorspronkelijke gemiddelde als volgt berekenen:
original_mean = np.mean(data)print("Original mean: ", original_mean)Mogelijk gemaakt door
Het oorspronkelijke gemiddelde van 47,40 wordt sterk beïnvloed door uitschieters en valt daardoor aanzienlijk hoger uit. Na het winsoriseren van de extreme waarden is het winsorized mean met 42,5 een stuk lager en minder gevoelig voor die extremen.
Winsorized mean vs. trimmed mean: de belangrijkste verschillen
Het winsorized mean en de trimmed mean zijn allebei manieren om de invloed van uitschieters op het gemiddelde te verminderen, maar ze gaan anders om met extreme waarden:
Winsorizedmean vervangt extreme waarden (uitschieters) aan beide uiteinden van de data door de dichtstbijzijnde waarden binnen de dataset. Er wordt niets weggegooid; de meest extreme waarden worden aangepast om hun impact te verkleinen.
Trimmedmean verwijdert (trimt) het laagste en hoogste percentage datapunten. Deze methode gooit aan beide uiteinden van de verdeling een deel van de data weg. Bij een 5% trimmed mean worden de kleinste 5% en de grootste 5% datapunten uitgesloten van de berekening.
Het winsorized mean heeft de voorkeur als je de datastructuur wilt behouden (dus dezelfde steekproefomvang aanhouden) maar wel de invloed van extreme waarden wilt verminderen. De trimmed mean is geschikter wanneer de dataset duidelijke uitschieters bevat die je volledig wilt verwijderen en een kleinere steekproefomvang acceptabel is.
Trimmed mean en winsorized mean vergelijken in Python
Laten we zien hoe beide methoden de dataset beïnvloeden en hun resultaten vergelijken.
from scipy.stats import trim_mean
# Calculate the Trimmed mean by removing 5% from both tails
trimmed_mean = trim_mean(data, proportiontocut=0.05)# Print the resultsprint("Original mean: ", np.mean(data))print("Winsorized mean (5%): ", winsorized_mean)print("Trimmed mean (5%): ", trimmed_mean)Mogelijk gemaakt door
De uitvoer is als volgt:
Original mean:47.40909090909091
Winsorized mean (5%):42.5
Trimmed mean (5%):41.65Mogelijk gemaakt door
Het oorspronkelijke gemiddelde was 47,4 en werd sterk beïnvloed door uitschieters. Het winsorized mean, 42,5, is berekend met uitschieters die zijn vervangen door minder extreme waarden. De trimmed mean, waarbij de uitschieters volledig zijn verwijderd, komt uit op 41,65.
Wanneer gebruik je welke methode?
Gebruik het winsorized mean als je alle datapunten wilt behouden maar de impact van extreme waarden wilt verminderen. Dit is een goede vuistregel wanneer je denkt dat de uitschieters echt zijn, maar hun invloed wilt minimaliseren.
Gebruik de trimmed mean als je uitschieters helemaal uit de dataset wilt verwijderen. De trimmed mean is vooral nuttig wanneer je vermoedt dat uitschieters fouten zijn of niet representatief voor de verdeling.
Samenvatting van de belangrijkste verschillen
De belangrijkste verschillen zijn in de onderstaande tabel samengevat:
Belangrijkste verschillen tussen winsorized mean en trimmed mean. Afbeelding door de auteur.
Winsorized en trimmed means helpen bij het omgaan met uitschieters, maar de keuze hangt ervan af of je extreme waarden in de dataset wilt behouden of verwijderen.
Voordelen en nadelen van het winsorized mean
Hoewel winsoriseren een robuuste manier is om met uitschieters om te gaan, kan het aanpassen van extreme waarden vragen oproepen over datamanipulatie. Dit zijn de voordelen en nadelen van de techniek:
Voordelen
Robuuster dan het standaard gemiddelde in aanwezigheid van uitschieters: Het winsorized mean verkleint de impact van extreme waarden (uitschieters) en biedt zo een stabielere en betrouwbaardere maat voor de centrale neiging in datasets waarin uitschieters het resultaat kunnen vertekenen.
Behoudt de algehele structuur van de dataset doordat alle datapunten blijven bestaan: In tegenstelling tot de trimmed mean, die extreme waarden weggooit, vervangt het winsorized mean ze door minder extreme waarden, zodat de steekproefomvang en de algehele structuur van de dataset behouden blijven.
Beter geschikt voor kleine datasets: Bij datasets waarbij het verwijderen van datapunten (zoals bij trimmen) leidt tot een onrepresentatieve of onvolledige steekproef, behoudt winsoriseren alle waarden en blijft de dataset bruikbaar.
Nadelen
Kan bias introduceren als de onderliggende verdeling asymmetrisch is: Winsoriseren op vaste percentielen (bijv. 5% aan beide uiteinden) kan bias introduceren als de dataset niet symmetrisch verdeeld is. Als de data scheef is, kan winsoriseren de centrale neiging juist vertekenen in plaats van die correct weer te geven.
Vraagt om een zorgvuldige keuze van het winsoriseringspercentage: Het percentage data dat je winsoriseert (dus de fractie extreme waarden die je aanpast) wordt vaak arbitrair gekozen. Een ongeschikt percentage kan ofwel de invloed van uitschieters onvoldoende beperken, of juist te veel waarden aanpassen, waardoor de representativiteit van de dataset afneemt.
Te veel winsoriseren kan belangrijke patronen maskeren: Overmatig winsoriseren, ofwel te veel datapunten aanpassen, kan zinvolle patronen of trends in de data verdoezelen. In sommige gevallen vertegenwoordigen extreme waarden geldige en cruciale informatie (bijv. in financiële data, waar uitschieters kunnen wijzen op zeldzame maar impactvolle gebeurtenissen) en het vervangen daarvan kan tot misleidende conclusies leiden.
Het is dus belangrijk de voor- en nadelen te overwegen voordat je de techniek in je data-analyse toepast.
Andere winsorized statistische concepten
Omdat winsoriseren een statistische techniek is die je op een maat toepast, kun je het uitbreiden naar andere gebruikelijke statistische maten. Enkele andere maten waarop je winsoriseren kunt toepassen:
Winsorized steekproefstandaarddeviatie: De winsorized variant van de standaarddeviatie meet de spreiding van een gewinsoriseerde dataset door extreme waarden te vervangen. Wordt berekend als de wortel uit de winsorized variantie.
Winsorized variantie: De winsorized tegenhanger van de variantie meet hoeveel de datapunten afwijken van het winsorized mean, rekening houdend met de verminderde invloed van uitschieters. Het is de gemiddelde gekwadrateerde afwijking van het winsorized mean in een gewinsoriseerde dataset.
Winsorized range: Het verschil tussen de maximum- en minimumwaarde in de gewinsoriseerde dataset, dat kleiner is dan de oorspronkelijke range doordat uitschieters zijn vervangen.
Winsorized scheefheid (skewness): Meet de asymmetrie van de verdeling van een gewinsoriseerde dataset en geeft aan of de verdeling na winsoriseren links- of rechtscheef is. Het helpt scheefheid vast te stellen in datasets waarin extreme waarden de standaard skewness-berekening kunnen verstoren.
Winsorized correlatie: Een gewinsoriseerde versie van de Pearsoncorrelatie die de lineaire relatie tussen twee variabelen beoordeelt terwijl de impact van uitschieters in beide datasets wordt verminderd.
Elk van deze winsorized maten helpt de invloed van uitschieters op de analyse te verkleinen wanneer je werkt met niet-normale data of datasets met extreme waarden.
Conclusie
In deze tutorial introduceerden we een statistische maat om met uitschieters om te gaan: het winsorized mean. We bespraken het concept van winsoriseren, de praktische toepassingen en een hands-on implementatie op een voorbeelddataset. Verder behandelden we de trimmed mean, de implementatie ervan en hoe die verschilt van het winsorized mean. Ook kwamen de voor- en nadelen en andere statistische concepten op basis van winsoriseren aan bod.
Zoals we hebben gezien, vormt het winsorized mean een middenweg tussen uitschieters weggooien en behouden, en levert het betrouwbaardere resultaten op in scheef verdeelde datasets. We raden je aan de techniek in je data-analyse toe te passen en te experimenteren met verschillende niveaus van winsoriseren om te ontdekken wat het beste werkt voor specifieke datasets.
Als senior data scientist ontwerp, ontwikkel en implementeer ik grootschalige machinelearningsoplossingen om bedrijven te helpen betere, datagedreven beslissingen te nemen. Als schrijver over data science deel ik inzichten, carrièreadvies en diepgaande, praktijkgerichte tutorials.
Veelgestelde vragen
Wat is een winsorized mean?⌄
Een winsorized mean is een robuuste statistische maat die de impact van uitschieters vermindert door extreme waarden te vervangen door minder extreme percentielen.
Wanneer moet ik het winsorized mean gebruiken in plaats van het standaard gemiddelde?⌄
Het winsorized mean gebruik je het best wanneer je dataset uitschieters bevat die het gemiddelde kunnen vertekenen.
Hoe verschilt het winsorized mean van de trimmed mean?⌄
Het winsorized mean vervangt uitschieters door de waarden op specifieke percentielen, terwijl de trimmed mean uitschieters volledig weglaat.
Wat zijn de voordelen van het gebruik van het winsorized mean?⌄
Het winsorized mean is robuuster dan het standaard gemiddelde bij aanwezigheid van uitschieters, behoudt de structuur van de dataset doordat alle datapunten blijven bestaan, en is beter geschikt voor kleine datasets. Het biedt een evenwichtige aanpak om de invloed van extreme waarden te verkleinen zonder belangrijke data te verwijderen.
Welke andere winsorized statistische maten zijn er naast het gemiddelde?⌄
Winsoriseren kun je toepassen op meerdere statistische maten, waaronder de winsorized steekproefstandaarddeviatie, winsorized variantie, winsorized range, winsorized skewness en winsorized correlatie. Deze maten helpen de invloed van uitschieters te beperken over verschillende aspecten van data-analyse.
Uitschieters kunnen je inzichten vaak op het verkeerde been zetten, waardoor een zinvolle analyse uitmondt in een misleidende conclusie. Onvolmaakte en lawaaierige data horen bij de realiteit, en winsoriseren is een praktische manier om de impact van uitschieters te verkleinen zonder data weg te gooien.
In dit artikel leggen we uit hoe het winsorized mean werkt, waar je het in de praktijk voor gebruikt en hoe je het stap voor stap in Python berekent. We staan ook stil bij de voor- en nadelen, vergelijken het met andere nuttige maten zoals de trimmed mean en bekijken andere statistische maten op basis van winsoriseren.
Wat is een winsorized mean?
Een winsorized mean is een statistische maat die de impact van uitschieters vermindert door extreme waarden te vervangen door minder extreme percentielen in plaats van ze helemaal te verwijderen. In tegenstelling tot het rekenkundig gemiddelde, dat alle datapunten even zwaar meeweegt, beperkt het winsorized mean de invloed van extreme waarden die het totaalresultaat kunnen vertekenen.
Winsoriseren werkt door waarden boven een bepaalde percentielgrens af te kappen of te vervangen. Bij een winsoriseren van 5% bijvoorbeeld, worden de laagste 5% datapunten vervangen door de waarde op het 5e percentiel en de hoogste 5% door de waarde op het 95e percentiel. Deze methode helpt de algehele structuur van de dataset te behouden, terwijl de invloed van uitschieters afneemt. Daardoor is het een robuust alternatief voor het standaard gemiddelde in datasets met extreme waarden.
Praktische toepassingen van het winsorized mean
De relevantie van het winsorized mean in statistische analyses is vooral duidelijk in domeinen waar data vaak scheef verdeeld is. Enkele belangrijke gebieden waar het winsorized mean nuttig is:
In al deze toepassingen is het winsorized mean een robuust alternatief voor het standaard gemiddelde: je krijgt inzichten die minder worden beïnvloed door uitschieters, terwijl belangrijke patronen in de data behouden blijven.
Het winsorized mean berekenen in Python
Het berekenen van het winsorized mean in Python houdt in dat je extreme waarden (uitschieters) vervangt door waarden op specifieke percentielen. Voor we beginnen, een korte samenvatting van de stappen die we volgen:
Importeer de benodigde bibliotheken en de dataset.
Winsoriseer de dataset met
scipy.winsorize().Bereken het gemiddelde met
numpy.mean().Laten we de details induiken met een voorbeeld.
Importeer de benodigde bibliotheken en de dataset
Eerst importeren we de bibliotheken die we nodig hebben om het gemiddelde te berekenen.
Vervolgens laden we de dataset, bijvoorbeeld uit een CSV-bestand of een andere bron. Voor de eenvoud maken we in dit voorbeeld een steekproefdataset met
numpy.De
200kan op basis van een eerste analyse worden gezien als een uitschieter in deze dataset.Winsoriseer de dataset
De functie
winsorize()uit descipy-bibliotheek laat je het percentage data opgeven dat je uit zowel de lage als de hoge staart wilt winsoriseren. De code daarvoor is als volgt:In de bovenstaande code vervangt de parameter
limits=[0.05, 0.05]die aan de functiewinsorize()wordt doorgegeven, de kleinste 5% en de grootste 5% van de waarden door de waarden op respectievelijk het 5e en 95e percentiel. We kunnen nu de gewinsoriseerde data bekijken die we hebben gemaakt.De uitvoer laat zien dat de uitschieters zijn vervangen:
Hier is de maximumwaarde
200vervangen door90; op dezelfde manier zijn extreme waarden aan de onderkant,10, vervangen door12.Bereken het gemiddelde
Tot slot berekenen we het gemiddelde van de gewinsoriseerde data:
De uitvoer is als volgt:
Het winsorized mean heeft de invloed van de extreem hoge waarden verkleind ten opzichte van een gewoon gemiddelde. Ter vergelijking kunnen we het oorspronkelijke gemiddelde als volgt berekenen:
De uitvoer is als volgt:
Het oorspronkelijke gemiddelde van
47,40wordt sterk beïnvloed door uitschieters en valt daardoor aanzienlijk hoger uit. Na het winsoriseren van de extreme waarden is het winsorized mean met42,5een stuk lager en minder gevoelig voor die extremen.Winsorized mean vs. trimmed mean: de belangrijkste verschillen
Het winsorized mean en de trimmed mean zijn allebei manieren om de invloed van uitschieters op het gemiddelde te verminderen, maar ze gaan anders om met extreme waarden:
Het winsorized mean heeft de voorkeur als je de datastructuur wilt behouden (dus dezelfde steekproefomvang aanhouden) maar wel de invloed van extreme waarden wilt verminderen. De trimmed mean is geschikter wanneer de dataset duidelijke uitschieters bevat die je volledig wilt verwijderen en een kleinere steekproefomvang acceptabel is.
Trimmed mean en winsorized mean vergelijken in Python
Laten we zien hoe beide methoden de dataset beïnvloeden en hun resultaten vergelijken.
De uitvoer is als volgt:
Het oorspronkelijke gemiddelde was
47,4en werd sterk beïnvloed door uitschieters. Het winsorized mean,42,5, is berekend met uitschieters die zijn vervangen door minder extreme waarden. De trimmed mean, waarbij de uitschieters volledig zijn verwijderd, komt uit op41,65.Wanneer gebruik je welke methode?
Gebruik het winsorized mean als je alle datapunten wilt behouden maar de impact van extreme waarden wilt verminderen. Dit is een goede vuistregel wanneer je denkt dat de uitschieters echt zijn, maar hun invloed wilt minimaliseren.
Gebruik de trimmed mean als je uitschieters helemaal uit de dataset wilt verwijderen. De trimmed mean is vooral nuttig wanneer je vermoedt dat uitschieters fouten zijn of niet representatief voor de verdeling.
Samenvatting van de belangrijkste verschillen
De belangrijkste verschillen zijn in de onderstaande tabel samengevat:
Winsorized en trimmed means helpen bij het omgaan met uitschieters, maar de keuze hangt ervan af of je extreme waarden in de dataset wilt behouden of verwijderen.
Voordelen en nadelen van het winsorized mean
Hoewel winsoriseren een robuuste manier is om met uitschieters om te gaan, kan het aanpassen van extreme waarden vragen oproepen over datamanipulatie. Dit zijn de voordelen en nadelen van de techniek:
Voordelen
Nadelen
Het is dus belangrijk de voor- en nadelen te overwegen voordat je de techniek in je data-analyse toepast.
Andere winsorized statistische concepten
Omdat winsoriseren een statistische techniek is die je op een maat toepast, kun je het uitbreiden naar andere gebruikelijke statistische maten. Enkele andere maten waarop je winsoriseren kunt toepassen:
Elk van deze winsorized maten helpt de invloed van uitschieters op de analyse te verkleinen wanneer je werkt met niet-normale data of datasets met extreme waarden.
Conclusie
In deze tutorial introduceerden we een statistische maat om met uitschieters om te gaan: het winsorized mean. We bespraken het concept van winsoriseren, de praktische toepassingen en een hands-on implementatie op een voorbeelddataset. Verder behandelden we de trimmed mean, de implementatie ervan en hoe die verschilt van het winsorized mean. Ook kwamen de voor- en nadelen en andere statistische concepten op basis van winsoriseren aan bod.
Zoals we hebben gezien, vormt het winsorized mean een middenweg tussen uitschieters weggooien en behouden, en levert het betrouwbaardere resultaten op in scheef verdeelde datasets. We raden je aan de techniek in je data-analyse toe te passen en te experimenteren met verschillende niveaus van winsoriseren om te ontdekken wat het beste werkt voor specifieke datasets.
Bekijk onze cursus Intermediate Predictive Analytics in Python om meer te leren over het omgaan met uitschieters in datasets met Python, waaronder winsoriseren. Je kunt ook onze Machine Learning Scientist with Python-carrièreroute verkennen, een geweldige manier om te oefenen door echte modellen te bouwen.