Corso
Gli outlier possono spesso sviare le tue analisi, trasformando ciò che dovrebbe essere un’analisi significativa in una conclusione fuorviante. Nella realtà i dati imperfetti e rumorosi sono la norma, e la winsorizzazione è una soluzione pratica per ridurre l’impatto degli outlier senza scartare alcun dato.
In questo articolo vedremo come funziona la media winsorizzata, le sue applicazioni pratiche e i passaggi per calcolarla in Python. Capiremo anche pro e contro, la confronteremo con altre misure utili come la trimmed mean (media troncata) ed esploreremo altre misure statistiche winsorizzate.
Che cos’è una media winsorizzata?
La media winsorizzata è una misura statistica che riduce l’impatto degli outlier sostituendo i valori estremi con percentili meno estremi invece di rimuoverli del tutto. A differenza della media aritmetica, che considera tutti i punti dati in modo uguale, la media winsorizzata limita l’influenza dei valori estremi che possono distorcere il risultato complessivo.
La winsorizzazione funziona ponendo un tetto o sostituendo i valori oltre una certa soglia di percentile. Per esempio, con una winsorizzazione al 5%, il 5% più basso dei punti dati viene sostituito con il valore al 5° percentile e il 5% più alto con il valore al 95° percentile. Questo metodo aiuta a mantenere la struttura complessiva del dataset riducendo l’effetto degli outlier, rendendolo un’alternativa robusta alla media standard in dataset che contengono valori estremi.
Applicazioni pratiche della media winsorizzata
La rilevanza della media winsorizzata nell’analisi statistica è particolarmente evidente in ambiti in cui i dati tendono a distribuzioni asimmetriche. Ecco alcune aree chiave in cui la media winsorizzata è utile:
- Finanza e analisi degli investimenti: I dataset finanziari spesso includono valori estremi, come crolli di mercato o guadagni eccezionali, che possono distorcere le medie e offuscare i trend. Winsorizzando i rendimenti o i prezzi degli asset, gli analisti possono produrre metriche di performance più stabili che riflettono meglio il comportamento tipico del mercato.
- Dati economici: Negli studi macroeconomici, indicatori come reddito o ricchezza sono spesso alterati da pochi valori estremamente alti o bassi. Le medie winsorizzate possono offrire una visione più equilibrata delle condizioni economiche limitando l’influenza di queste osservazioni estreme.
- Sondaggi e ricerca nelle scienze sociali: I sondaggi possono produrre dati con risposte estreme, come valutazioni eccessivamente alte o basse. In questi casi, la media winsorizzata fornisce una misura della tendenza centrale più accurata, assicurando che le risposte estreme non influenzino in modo sproporzionato l’analisi complessiva.
- Ricerca medica e biologica: I dati medici, come esiti dei pazienti o risultati di test, possono talvolta presentare valori estremi dovuti a condizioni rare o casi anomali. Winsorizzare questi dati può aiutare i ricercatori a ottenere un quadro più accurato dei risultati medi senza eliminare completamente punti dati potenzialmente preziosi.
In ognuna di queste applicazioni, la media winsorizzata è un’alternativa robusta alla media standard, consentendo di ricavare insight meno influenzati dagli outlier pur preservando pattern di dati importanti.
Come calcolare la media winsorizzata in Python
Calcolare la media winsorizzata in Python implica la sostituzione dei valori estremi (outlier) con valori a percentili specifici. Prima di iniziare, un rapido riepilogo dei passaggi che seguiremo:
-
Importa le librerie e il dataset necessari.
-
Winsorizza il dataset usando
scipy.winsorize(). -
Calcola la media usando
numpy.mean().
Vediamo i dettagli con un esempio.
Importa le librerie e il dataset necessari
Per prima cosa importiamo le librerie necessarie per calcolare la media.
import numpy as np
from scipy.stats.mstats import winsorize
Poi carichiamo il dataset, che può provenire da un file CSV o da un’altra fonte. Per semplicità, creiamo un dataset di esempio usando 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])
Il 200 potrebbe essere considerato un outlier in questo dataset sulla base di un’analisi iniziale.
Winsorizza il dataset
La funzione winsorize() della libreria scipy ti permette di specificare la percentuale di dati da winsorizzare sia in coda inferiore sia in coda superiore. Il codice è il seguente:
# Winsorize 5% from both the lower and upper tails
winsorized_data = winsorize(data, limits=[0.05, 0.05])
Nel codice sopra, il parametro limits=[0.05, 0.05] passato a winsorize() sostituisce il 5% più piccolo e il 5% più grande dei valori con i valori al 5° e 95° percentile, rispettivamente. Ora possiamo ispezionare i dati winsorizzati che abbiamo creato.
print("Original data: ", data)
print("Winsorized data: ", winsorized_data)
L’output mostrerà che gli outlier sono stati sostituiti:
Original data: [ 10 12 14 15 16 18 20 22 24 25 30 35 40 45 50 60 70 80 82 90 200]
Winsorized data: [ 12 12 14 15 16 18 20 22 24 25 30 35 40 45 50 60 70 80 82 90 90]
Qui, il valore massimo 200 è stato sostituito con 90; allo stesso modo, i valori estremi del lato inferiore, 10, sono stati sostituiti da 12.
Calcola la media
Infine, calcoliamo la media dei dati winsorizzati:
winsorized_mean = np.mean(winsorized_data)
print("Winsorized mean: ", winsorized_mean)
L’output è il seguente:
Winsorized mean: 42.5
La media winsorizzata ha ridotto l’influenza dei valori estremamente alti rispetto a una media normale. Per confronto, possiamo calcolare la media originale come segue:
original_mean = np.mean(data)
print("Original mean: ", original_mean)
L’output è il seguente:
Original mean: 47.40909090909091
La media originale, pari a 47.40, è fortemente influenzata dagli outlier, risultando significativamente più alta. Dopo aver winsorizzato i valori estremi, la media winsorizzata è molto più bassa, 42.5, con minore influenza dei valori estremi.
Media winsorizzata vs. media troncata: differenze chiave
La media winsorizzata e la media troncata sono metodi statistici per ridurre l’effetto degli outlier sulla media, ma differiscono nel modo in cui gestiscono i valori estremi:
- Media winsorizzata sostituisce i valori estremi (outlier) a entrambe le estremità dei dati con i valori più vicini all’interno del dataset. Non scarta i dati ma regola i valori più estremi per ridurne l’impatto.
- Media troncata rimuove (tronca) la percentuale più bassa e più alta dei punti dati. Questo metodo scarta una parte dei dati a entrambe le estremità. In una media troncata al 5%, il 5% più piccolo e il 5% più grande dei punti dati vengono esclusi dal calcolo della media.
La media winsorizzata è preferibile quando vuoi preservare la struttura dei dati (cioè mantenere invariata la dimensione del campione) ma ridurre comunque l’effetto dei valori estremi. La media troncata è preferibile quando il dataset contiene outlier evidenti che vuoi rimuovere del tutto e quando è accettabile una dimensione del campione più piccola dopo il taglio.
Confronto tra media troncata e media winsorizzata in Python
Vediamo come entrambi i metodi influenzano il dataset e confrontiamo i risultati.
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 results
print("Original mean: ", np.mean(data))
print("Winsorized mean (5%): ", winsorized_mean)
print("Trimmed mean (5%): ", trimmed_mean)
L’output è il seguente:
Original mean: 47.40909090909091
Winsorized mean (5%): 42.5
Trimmed mean (5%): 41.65
La media originale era 47.4, fortemente influenzata dagli outlier. La media winsorizzata, 42.5, è stata calcolata sostituendo gli outlier con valori meno estremi. La media troncata, in cui gli outlier sono stati rimossi completamente, è 41.65.
Quando usare ciascun metodo
Usa la media winsorizzata quando vuoi mantenere tutti i punti dati ma ridurre l’impatto dei valori estremi. È una buona euristica quando ritieni che gli outlier siano genuini ma vuoi minimizzarne l’influenza.
Usa la media troncata quando vuoi rimuovere del tutto gli outlier dal dataset. La media troncata è più utile quando sospetti che gli outlier siano erronei o non rappresentativi della distribuzione dei dati.
Riepilogo delle differenze chiave
Le differenze riassunte possono essere tabulate come segue:
Differenze chiave tra media winsorizzata e media troncata. Immagine dell’autore.
Le medie winsorizzata e troncata aiutano a gestire gli outlier, ma la scelta dipende dal fatto che tu voglia mantenere o scartare i valori estremi dal dataset.
Vantaggi e svantaggi della media winsorizzata
Sebbene la winsorizzazione sia un approccio robusto alla gestione degli outlier, la modifica dei valori estremi può sollevare dubbi di manipolazione dei dati. Ecco alcuni vantaggi e svantaggi della tecnica:
Vantaggi
- Più robusta della media standard in presenza di outlier: La media winsorizzata riduce l’impatto dei valori estremi (outlier), offrendo una tendenza centrale più stabile e affidabile in dataset in cui gli outlier possono distorcere il risultato.
- Preserva la struttura complessiva del dataset mantenendo tutti i punti dati: A differenza della media troncata, che scarta i valori estremi, la media winsorizzata li sostituisce con valori meno estremi, mantenendo la dimensione del campione e la struttura complessiva del dataset.
- Più adatta a dataset piccoli: Per dataset in cui la rimozione di punti dati (come nel trimming) comporterebbe un campione non rappresentativo o incompleto, la winsorizzazione preserva tutti i valori, assicurando che il dataset resti utilizzabile.
Svantaggi
- Può introdurre bias se la distribuzione sottostante è asimmetrica: Winsorizzare i dati in base a percentuali fisse (ad es. 5% a entrambe le estremità) può introdurre bias se il dataset non è distribuito simmetricamente. Se i dati sono asimmetrici, la winsorizzazione potrebbe distorcere la tendenza centrale invece di rappresentarla accuratamente.
- Richiede un’attenta scelta della percentuale di winsorizzazione: La percentuale di dati da winsorizzare (cioè la quota di valori estremi da modificare) è spesso scelta in modo arbitrario. Una percentuale inadeguata può non mitigare sufficientemente l’impatto degli outlier oppure alterare troppi valori, riducendo la rappresentatività del dataset.
- Una winsorizzazione eccessiva può oscurare pattern significativi: Winsorizzare troppo, o modificare un numero eccessivo di punti dati, può nascondere pattern o trend significativi nei dati. In alcuni casi, i valori estremi rappresentano informazioni valide e importanti (ad es. nei dati finanziari, dove gli outlier possono indicare eventi rari ma di forte impatto) e sostituirli può portare a conclusioni fuorvianti.
Perciò è importante valutare pro e contro della tecnica prima di integrarla nei nostri progetti di analisi dei dati.
Altri concetti statistici winsorizzati
Poiché la winsorizzazione è una tecnica statistica applicata a una misura, può essere estesa ad altre misure abituali. Esploriamo alcune altre misure a cui si può applicare la winsorizzazione:
- Deviazione campionaria winsorizzata: La versione winsorizzata della deviazione standard misura la dispersione di un dataset winsorizzato sostituendo i valori estremi. Si calcola come radice quadrata della varianza winsorizzata.
- Varianza winsorizzata: L’equivalente winsorizzato della varianza misura di quanto i punti dati si discostano dalla media winsorizzata, tenendo conto della minore influenza degli outlier. Si calcola come media degli scarti quadrati dalla media winsorizzata in un dataset winsorizzato.
- Range winsorizzato: La differenza tra il valore massimo e minimo nel dataset winsorizzato, che è più piccola rispetto al range originale a causa della sostituzione degli outlier.
- Asimmetria winsorizzata (skewness): Misura l’asimmetria della distribuzione di un dataset winsorizzato, indicando se la distribuzione è inclinata a sinistra o a destra dopo la winsorizzazione. Aiuta a identificare l’asimmetria in dataset in cui i valori estremi possono distorcere il calcolo standard della skewness.
- Correlazione winsorizzata: Una versione winsorizzata della correlazione di Pearson che valuta la relazione lineare tra due variabili riducendo l’impatto degli outlier in entrambi i dataset.
Ciascuna di queste misure winsorizzate aiuta a ridurre l’influenza degli outlier sull’analisi quando si lavora con dati non normali o con dataset che presentano valori estremi.
Conclusione
Questo tutorial ha introdotto una misura statistica per gestire gli outlier: la media winsorizzata. Abbiamo visto il concetto di winsorizzazione, le sue applicazioni pratiche e un’implementazione hands-on su un dataset di esempio. Inoltre, il tutorial ha trattato la media troncata, la sua implementazione e in cosa differisce dalla media winsorizzata. Ha anche esplorato pro, contro e altri concetti statistici basati sulla winsorizzazione.
Come abbiamo visto, la media winsorizzata trova un equilibrio tra scartare e mantenere gli outlier, consentendo risultati più affidabili in dataset asimmetrici. Ti invitiamo a usare la tecnica nei tuoi progetti di analisi dei dati, sperimentando diversi livelli di winsorizzazione per trovare ciò che funziona meglio per i singoli dataset.
Dai un’occhiata al nostro corso Intermediate Predictive Analytics in Python per saperne di più sulla gestione degli outlier nei dataset con Python, inclusa la winsorizzazione. Puoi anche esplorare il nostro career track Machine Learning Scientist with Python, un ottimo modo per fare pratica costruendo modelli reali.
Come senior data scientist, progetto, sviluppo e distribuisco soluzioni di machine learning su larga scala per aiutare le aziende a prendere decisioni migliori basate sui dati. Come autore nell'ambito della data science, condivido ciò che ho imparato, consigli di carriera e tutorial pratici approfonditi.
Domande frequenti
Che cos’è una media winsorizzata?
La media winsorizzata è una misura statistica robusta che riduce l’impatto degli outlier sostituendo i valori estremi con percentili meno estremi.
Quando dovrei usare la media winsorizzata invece della media standard?
La media winsorizzata è ideale quando il tuo dataset contiene outlier che potrebbero distorcere la media.
In cosa la media winsorizzata differisce dalla media troncata?
La media winsorizzata sostituisce gli outlier con i valori a percentili specifici, mentre la media troncata li scarta del tutto.
Quali sono i vantaggi dell’uso della media winsorizzata?
La media winsorizzata è più robusta della media standard in presenza di outlier, preserva la struttura del dataset mantenendo tutti i punti dati ed è più adatta a dataset piccoli. Offre un approccio equilibrato per ridurre l’influenza dei valori estremi senza scartare dati importanti.
Quali altre misure statistiche winsorizzate esistono oltre alla media?
La winsorizzazione può essere applicata a diverse misure statistiche, tra cui deviazione campionaria winsorizzata, varianza winsorizzata, range winsorizzato, skewness winsorizzata e correlazione winsorizzata. Queste misure aiutano a ridurre l’influenza degli outlier in diversi aspetti dell’analisi dei dati.


