Capire il Boxplot: La Guida Definitiva per Non-Statistici
Nel 2007 un sociologo di nome Roland Fryer pubblico uno studio che avrebbe fatto discutere per anni: i candidati a colloqui di lavoro con nomi “afroamericani” (Lakisha, Jamal) ricevevano il 50% di richiami in meno rispetto a candidati identici con nomi “bianchi” (Emily, Greg). Lo studio era gia sconvolgente cosi.
Ma quello che la maggior parte degli articoli di giornale non menziono era il dettaglio statistico piu interessante: la distribuzione dei richiami era radicalmente diversa tra i due gruppi, non solo la media. Il grafico che Fryer usava per mostrare questa differenza era il boxplot. Mostrava che non solo i candidati con nomi “afroamericani” ricevevano meno richiami in media, ma che la loro distribuzione era anche piu compressa — mancavano quasi completamente i richiami da aziende di alta qualita.
Questa storia illustra perche il boxplot esiste. Non per sostituire la media — ma per mostrare quello che la media nasconde: la forma della distribuzione, dove si concentrano i valori, dove si trovano le anomalie. La media di due gruppi puo essere identica mentre le distribuzioni sono completamente diverse. Il boxplot lo rivela in un colpo d’occhio.
Anatomia di un Boxplot: Elemento per Elemento
Il boxplot fu inventato da John Tukey nel 1970, nel suo libro fondamentale “Exploratory Data Analysis”. Tukey era ossessionato dall’idea che l’analisi dei dati dovesse essere esplorativa prima di essere confermativa.
Immagina i tempi di consegna in giorni di 100 ordini di un e-commerce:
┌──────────────┐ ──┤──┤ ├──────┤── └──────┬───────┘ ↑ ↑ ↑ ↑ ↑ Min Q1 Mediana Q3 Max(Baffo (la scatola) (Baffo inf.) sup.)Ogni elemento ha un significato preciso:
| Elemento | Definizione statistica | Cosa ti dice in pratica |
|---|---|---|
| Mediana (linea centrale) | Il 50° percentile | Il 50% degli ordini arriva prima di questo tempo — il punto centrale reale |
| Q1 (bordo sinistro) | Il 25° percentile | Il 25% degli ordini piu veloci arriva entro questo tempo |
| Q3 (bordo destro) | Il 75° percentile | Il 75% degli ordini arriva entro questo tempo |
| IQR (la scatola intera) | Q3 meno Q1 | Quanto sono variabili i valori “tipici”, escludendo gli estremi |
| Baffo inferiore | Q1 meno 1.5 x IQR | Il confine inferiore del “normale” |
| Baffo superiore | Q3 piu 1.5 x IQR | Il confine superiore del “normale” |
| Pallini isolati | Valori oltre i baffi | Outlier: anomalie che meritano indagine |
La formula dei baffi (Q1 - 1.5 x IQR, Q3 + 1.5 x IQR) non e arbitraria: Tukey la scelse perche per una distribuzione normale, questa formula include esattamente il 99.3% dei valori.
Un Esempio Concreto: Tempi di Consegna E-Commerce
Questo e come appare in pratica per un e-commerce con consegne in 1-25 giorni:
1 2 3 4 5 6 7 8 9 10 11 12 ... 25 giorni │ ┌──────────────┐ ● ├────────┤ ██████ ├──────────┤ │ └──────┬───────┘ ● Q1=3 Med=5 Q3=8La lettura di questo boxplot:
- La meta degli ordini arriva tra il giorno 3 e il giorno 8 (la scatola). Questo e il comportamento tipico.
- Il tempo mediano e 5 giorni. Non la media — il valore che il 50% degli ordini supera.
- I baffi vanno da 1 a circa 11 giorni. Questo e il range “normale”.
- Quei pallini a 25 giorni sono outlier: ordini anomali. Non sono rumore da ignorare — sono storie da investigare. Forse verso zone remote, forse problemi logistici, forse errori negli indirizzi.
Se la media fosse 6 giorni, il report direbbe “il tempo medio di consegna e 6 giorni”. Il boxplot mostra che la realta e molto piu complessa: c’e una distribuzione asimmetrica con outlier significativi che una media non puo catturare.
Leggere ogni Elemento: Approfondimento Dettagliato
I Quartili: La Base di Tutto
Quando suddividiamo i dati in quattro parti uguali — ordinandoli dal piu piccolo al piu grande — creiamo i quartili:
- Q1 (25° percentile): Se organizzi 100 ordini dal piu veloce al piu lento, il 25° ordine rappresenta Q1. Il 25% dei tuoi ordini arriva prima di questo tempo.
- Q2 (50° percentile o Mediana): La divisione esatta a meta. Non e la media — e il valore dove meta dei dati sta sotto e meta sta sopra.
- Q3 (75° percentile): Il 75° ordine se organizzi 100 dal piu veloce al piu lento. Il 75% arriva prima di questo tempo.
Perche non usare la media? Perche la media e influenzata dagli outlier. Se hai 10 ordini: 2, 3, 3, 4, 4, 5, 5, 6, 7, 1000 (spedito per errore in una zona estremamente remota), la media e circa 104 giorni — completamente non rappresentativa di quello che accade al 90% degli ordini. La mediana invece e 4.5 giorni — molto piu accurata.
L’Intervallo Interquartile (IQR): Misurare la Variabilita Vera
L’IQR (Interquartile Range) e semplicemente Q3 meno Q1. Rappresenta lo spread dei dati “normali” — escludendo per definizione il 25% piu veloce e il 25% piu lento.
Se IQR = 5 giorni, significa che il 50% centrale dei tuoi ordini ha una variabilita di 5 giorni. Un IQR piccolo e buono: indica coerenza. Un IQR grande indica alta variabilita: i clienti non sanno se riceveranno il pacco in 3 giorni o in 12.
I Baffi (Whiskers): Dove Finisce il “Normale”
I baffi seguono una formula precisa: 1.5 × IQR oltre Q1 e Q3. Questa costante 1.5 non e casuale. Tukey la scelse perche per una distribuzione normale gaussiana, essa cattura esattamente il 99.3% dei dati.
Baffo inferiore = Q1 - 1.5 × IQRBaffo superiore = Q3 + 1.5 × IQRSe un valore cade oltre i baffi, non e necessariamente un errore — e semplicemente piu raro del solito e merita attenzione.
Gli Outlier: Storie da Investigare
Ogni pallino isolato oltre i baffi e una storia. Nel contesto e-commerce:
- Ordine consegnato in 25 giorni quando il massimo normale e 11: perche? Cliente in zona remota? Indirizzo incompleto che ha richiesto follow-up? Ordine spedito per errore tramite il corriere piu lento?
- Customer service risponde in 45 minuti quando il normale e 10 minuti: perche? Ticket molto complesso? Agente assente?
- AOV di 2000 euro quando il normale e 80-150 euro: qual e il prodotto acquistato? Grossista che compra in quantita?
Gli outlier non sono sporcizia da filtrare. Sono i casi limite che il tuo business deve gestire. Amazon, per esempio, studia sistematicamente gli outlier negativi nel customer service per capire quali scenari non sono ancora stati affrontati.
Perche il Boxplot Batte la Media: Il Quartetto di Anscombe
Nel 1973 il statistico Francis Anscombe costrui quattro dataset che avevano esattamente le stesse statistiche descrittive: stessa media, stessa varianza, stesso coefficiente di correlazione. Ma quando li plottavi, erano completamente diversi. Uno era lineare, uno era una curva, uno aveva outlier che dominavano la regressione.
Anscombe costrui questo esempio — il “Quartetto di Anscombe” — per dimostrare che le statistiche riassuntive mentono sistematicamente se non le accompagni con la visualizzazione della distribuzione reale.
L’Esempio dei Due Reparti
Considera due reparti commerciali che riportano la stessa media di vendite giornaliere:
| Reparto | Media vendite giornaliere |
|---|---|
| Reparto A | 100 euro |
| Reparto B | 100 euro |
Stessa media, stessa performance? Il boxplot dice no.
Reparto A: ┌──────────────────┐ ────┤ ████ ├──── └──────────────────┘ 80 90 100 110 120
Reparto B: ┌──┐ ──┤─────┤██├─────┤── ● ● └──┘ 20 60 90 100 140 250Il Reparto A ha vendite stabili, prevedibili: ogni giorno tra 80 e 120 euro. Si puo pianificare il personale, le scorte, i turni.
Il Reparto B e un’altra storia: la maggior parte dei giorni vende 80-120 euro, ma ci sono giorni da 20 euro e giorni da 250 euro. La media e identica, ma la realta operativa e completamente diversa. Per il responsabile che deve pianificare, questa differenza e fondamentale.
La media nasconde questa storia. Il boxplot la racconta.
Boxplot vs Istogramma vs Violin Plot: Quando Usare Quale
| Visualizzazione | Miglior Uso | Pro | Contro |
|---|---|---|---|
| Boxplot | Confrontare 5-20 distribuzioni | Compatto, facile comparazione, mostra outlier chiaramente | Nasconde la forma della distribuzione |
| Istogramma | Capire la forma di 1-2 distribuzioni | Mostra chiaramente la forma (bimodale, skewed) | Difficile confrontare molti gruppi contemporaneamente |
| Violin Plot | Combinare pro del boxplot e istogramma | Mostra la forma completa + quartili | Piu complesso visivamente, meno familiare |
| Density Plot | Distribuzioni continue molto lisce | Elegante, naturale per dati continui | Meno preciso nel mostrare outlier |
Regola pratica: se devi confrontare piu di tre distribuzioni, usa il boxplot. Se vuoi capire la forma di una singola distribuzione, usa l’istogramma. Se vuoi il meglio dei due mondi, usa il violin plot.
Come Creare Boxplot in Python: Guida Completa
Boxplot Base con Matplotlib
import matplotlib.pyplot as pltimport numpy as np
# Simulazione di vendite giornaliere di tre canali marketingnp.random.seed(42)
# Google Ads: performance stabile, variabilita moderatagoogle_ads = np.random.normal(500, 80, 90)
# Meta Ads: performance media piu bassa, variabilita altameta_ads = np.random.normal(450, 150, 90)
# Email marketing: due regimi distintiemail = np.concatenate([ np.random.normal(200, 30, 80), # Giorni senza invio np.random.normal(800, 50, 10) # Giorni con promozione])
fig, ax = plt.subplots(figsize=(10, 6))
bp = ax.boxplot( [google_ads, meta_ads, email], labels=['Google Ads', 'Meta Ads', 'Email'], patch_artist=True, boxprops=dict(facecolor='lightblue', alpha=0.7), medianprops=dict(color='red', linewidth=2), whiskerprops=dict(linestyle='--', linewidth=1.5), flierprops=dict(marker='o', markerfacecolor='orange', markersize=8))
ax.set_ylabel('Revenue Giornaliero (Euro)')ax.set_title('Distribuzione Revenue per Canale — Ultimo Trimestre')ax.grid(axis='y', alpha=0.3)
# Aggiungi le medie come punti separati per confronto esplicitomeans = [np.mean(google_ads), np.mean(meta_ads), np.mean(email)]ax.scatter(range(1, 4), means, marker='D', color='green', zorder=5, label='Media', s=50)ax.legend()
plt.tight_layout()plt.show()Il dettaglio piu interessante di questo grafico sara l’email marketing: la mediana sara intorno a 200 euro (il regime normale), ma i baffi superiori o gli outlier mostreranno i giorni da 800 euro. La media di tutti i 90 giorni potrebbe essere intorno a 280 euro — un numero che non rappresenta bene nessuno dei due regimi. Il boxplot mostra la bimodalita che la media nasconde.
Boxplot Avanzato con Seaborn
import pandas as pdimport seaborn as snsimport matplotlib.pyplot as pltimport numpy as np
# Creiamo un dataset piu realisticonp.random.seed(42)data = []
for channel in ['Google Ads', 'Meta Ads', 'Email', 'Organic']: for _ in range(90): if channel == 'Google Ads': revenue = np.random.normal(500, 80) elif channel == 'Meta Ads': revenue = np.random.normal(450, 150) elif channel == 'Email': # Bimodale: giorni senza invio e giorni con invio regime = np.random.choice([0, 1], p=[0.85, 0.15]) if regime == 0: revenue = np.random.normal(200, 30) else: revenue = np.random.normal(800, 50) else: # Organic revenue = np.random.normal(300, 100)
data.append({'Channel': channel, 'Daily_Revenue': revenue})
df = pd.DataFrame(data)
fig, ax = plt.subplots(figsize=(12, 6))
# Seaborn boxplot con colori diversi per canalesns.boxplot(data=df, x='Channel', y='Daily_Revenue', palette='Set2', ax=ax)
# Sovrapposizione dei punti (swarmplot) con trasparenza per vedere la distribuzionesns.stripplot(data=df, x='Channel', y='Daily_Revenue', color='black', alpha=0.2, size=3, ax=ax)
ax.set_title('Boxplot con Punti Sottostanti: Vedi la Forma della Distribuzione')ax.set_ylabel('Daily Revenue (Euro)')ax.set_xlabel('Marketing Channel')
# Aggiungi il valore della mediana sopra ogni boxfor i, channel in enumerate(df['Channel'].unique()): median = df[df['Channel'] == channel]['Daily_Revenue'].median() ax.text(i, median, f'{median:.0f}€', ha='center', va='bottom', fontsize=9)
plt.tight_layout()plt.show()Seaborn e molto piu pulito per boxplot professionali. La sovrapposizione dei punti (swarmplot) ti permette di vedere la vera distribuzione sottostante — molto utile per capire se il boxplot nasconde structure importanti.
Boxplot in SQL: Calcolare Quartili con Window Functions
Se i tuoi dati vivono in un database, puoi calcolare i boxplot nativamente:
-- BigQuery / Snowflake / PostgreSQL (con piccole variazioni)WITH revenue_data AS ( SELECT date, channel, daily_revenue, -- Calcola i quartili usando PERCENTILE_CONT PERCENTILE_CONT(daily_revenue, 0.25) OVER (PARTITION BY channel) AS q1, PERCENTILE_CONT(daily_revenue, 0.50) OVER (PARTITION BY channel) AS median, PERCENTILE_CONT(daily_revenue, 0.75) OVER (PARTITION BY channel) AS q3 FROM marketing_data WHERE date >= CURRENT_DATE - INTERVAL 90 DAY),
iqr_calculation AS ( SELECT channel, q1, median, q3, (q3 - q1) AS iqr, (q1 - 1.5 * (q3 - q1)) AS whisker_lower, (q3 + 1.5 * (q3 - q1)) AS whisker_upper FROM revenue_data GROUP BY channel, q1, median, q3)
SELECT channel, q1, median, q3, iqr, whisker_lower, whisker_upper, COUNT(CASE WHEN daily_revenue < whisker_lower THEN 1 END) AS outliers_below, COUNT(CASE WHEN daily_revenue > whisker_upper THEN 1 END) AS outliers_aboveFROM iqr_calculationGROUP BY channel, q1, median, q3, iqr, whisker_lower, whisker_upper;Questo query calcola tutti gli elementi del boxplot direttamente dal database, permettendoti di costruire dashboard che aggiornano i boxplot automaticamente ogni volta che nuovi dati arrivano.
5 Pattern da Riconoscere Subito
1. Scatola Stretta: Risultati Prevedibili
┌──┐ ───┤██├─── └──┘I dati sono concentrati intorno alla mediana. Il processo e stabile e prevedibile. Ottimo segnale per la pianificazione operativa.
Nel business: se il tuo customer service risponde sempre tra 5 e 15 minuti, puoi prometere ai clienti “risposta entro 20 minuti” con alta confidenza. Se il boxplot e stretto, puoi fidarti di questa promessa.
2. Scatola Larga: Alta Variabilita
┌──────────────────────┐┤ ██ ├└──────────────────────┘I dati sono molto dispersi. Il processo e imprevedibile. Prima di ottimizzare la media, devi capire le cause della variabilita — e quasi sempre e piu impactante ridurre la varianza che spostare la media.
Nel business: un time-to-hire di media 35 giorni con IQR di 50 giorni e un disastro. Significa che alcuni candidati ricevono un’offerta in una settimana e altri attendono 60 giorni. Questo crea frustrazione e fa perdere candidati. Ridurre la varianza a 20 giorni (IQR da 25 a 45) ha piu valore che ridurre la media da 35 a 32.
3. Mediana Non Centrata: Distribuzione Asimmetrica
┌──────────────┐ ───┤█ ├───────── └──────────────┘La mediana e spostata verso uno dei bordi della scatola. La distribuzione e asimmetrica. Se e spostata verso Q1, ci sono pochi valori molto alti che “tirano su” la media. In questo caso la media sopravvaluta il valore tipico — e meglio comunicare la mediana.
Questo pattern e classico nei dati di reddito, di valutazione immobiliari, e in molte metriche di e-commerce dove pochi grandi ordini coesistono con molti ordini piccoli.
Nel business: nel tuo e-commerce, l’AOV medio e 150 euro, ma il mediano e 85 euro. La mediana spostata a sinistra significa che il 50% dei clienti spende sotto 85 euro, ma pochi clienti fanno ordini enormi (500+, 1000+) che “tirano su” la media. Questo ha implicazioni strategiche: la majority experience non rispecchia la media.
4. Molti Outlier: Casi da Investigare
● ● ┌──┐ ● ● ● ────┤██├──── └──┘Gli outlier non sono rumore da filtrare. Ogni pallino e una storia: un ordine eccezionale, un errore di sistema, un caso limite, un’opportunita. Amazon ha costruito gran parte del suo vantaggio competitivo studiando sistematicamente i propri outlier negativi.
Nel business: tre clienti hanno un LTV di 10.000 euro (outlier sopra il resto). Chi sono? Che cosa hanno in comune? Possiamo replicare il percorso che li ha portati a essere super-buyer?
5. Boxplot Comparativi: Il Vero Potere
Il boxplot splende quando confronta piu gruppi affiancati:
Prima ottimizzazione: ┌─────────────────────┐ ─────┤ ████ ├────── ● ● └─────────────────────┘
Dopo ottimizzazione: ┌──────────┐ ─────┤ ██ ├───── └──────────┘La mediana e scesa e la variabilita si e ridotta. L’ottimizzazione ha funzionato su entrambe le dimensioni.
Quando Usare il Boxplot (e Quando No)
| Usa il boxplot quando… | Non usare il boxplot quando… |
|---|---|
| Confronti distribuzioni tra gruppi diversi | Hai meno di 20 osservazioni per gruppo |
| Cerchi outlier in modo sistematico | Devi mostrare un trend nel tempo (usa line chart) |
| Vuoi capire la forma della distribuzione | Presenti a chi non conosce statistica (usa bar chart) |
| Hai dati continui con potenziale asimmetria | I dati sono categorici |
| Sospetti che due distribuzioni simili in media siano diverse | Il tuo pubblico non ha mai visto un boxplot |
Regola d’oro: se vuoi raccontare una storia ai C-level che non ha familiarita con i grafici statistici, inizia con un istogramma o un bar chart. Se vuoi parlare a un team analitico e sei interessato alla profondita della distribuzione, usa il boxplot.
Tre Applicazioni Immediate nel Business
Tempo di Risposta del Customer Service
Confronta i tempi di risposta per agente, per canale (email vs chat vs telefono), o per giorno della settimana. Il boxplot mostra immediatamente se c’e un agente con mediana eccellente ma variabilita altissima (prestazioni inconsistenti), o se il giovedi e strutturalmente piu lento del lunedi.
Gli outlier in questo contesto sono ticket rimasti aperti molto piu a lungo del normale — spesso corrispondono a problemi complessi che hanno richiesto escalation. Ogni outlier e un cliente che ha aspettato troppo e merita indagine.
Una dashboard dove ogni giorno vedi il boxplot dei response time del giorno vs la scorsa settimana della stessa giorno ti permette di identificare trends subito.
Distribuzione dell’AOV (Average Order Value)
La media dell’AOV e spesso il numero piu citato nei report e-commerce — ed e spesso il piu fuorviante. Un boxplot dell’AOV segmentato per canale di acquisizione rivela quasi sempre che i clienti acquisiti da Google Shopping hanno una distribuzione molto diversa da quelli acquisiti da email marketing.
Se il boxplot mostra che Google Shopping ha mediana 120 euro ma Email ha mediana 85 euro, questo altera come valuti il successo di ogni canale. Un canale puo avere volume piu alto ma AOV piu basso — il boxplot rende questa differenza visibile.
Distribuzione delle Performance dei Venditori
Un team di dieci venditori con la stessa media di vendite mensili puo nascondere realta molto diverse: un venditore consistente vs un venditore con picchi altissimi e valli profonde. Il boxplot li rende immediatamente distinguibili — e le implicazioni per il coaching sono completamente diverse.
Un venditore con performance stabile ma bassa ha bisogno di training e supporto. Un venditore con performance volatile ha bisogno di gestione del rischio e stabilizzazione. Il boxplot diagnostica il problema vero.
La Lezione Fondamentale
Nel 2016 Justin Matejka e George Fitzmaurice dell’Autodesk pubblicarono “Same Stats, Different Graphs”: una serie di distribuzioni con statistiche identiche che, visualizzate, includevano un dinosauro, una stella, e un cerchio.
Il punto era serio sotto la forma ironica: le statistiche riassuntive — media, deviazione standard — sono indispensabili ma insufficienti. La visualizzazione non e un’aggiunta estetica all’analisi — e una parte costitutiva dell’analisi stessa.
Il boxplot e lo strumento piu semplice e piu potente per visualizzare la struttura di una distribuzione. La prossima volta che qualcuno ti presenta una media, chiedi di vedere il boxplot. Non per complicare la conversazione — ma per capire veramente cosa sta succedendo nei tuoi dati.
Se vedrai un boxplot con mediana a sinistra e baffi asimmetrici, saprai che la distribuzione non e simmetrica. Se vedrai outlier, saprai che ci sono eccezioni da investigare. Se vedrai una scatola stretta, saprai che puoi fare previsioni affidabili. Queste cose la media non te le dirà mai.
Relazione con il Corso GinnyTech
Per approfondire l’analisi distribuzionale e la statistica descrittiva, visita il modulo Matematica Analisi Dati che spiega in dettaglio i quantili, i percentili, e come interpretare distribuzioni complesse. Il modulo Analisi Marketing applica questi concetti al contesto specifico del marketing analytics, mostrando come usare boxplot per segmentare clienti e analizzare performance.
Conclusione
Il boxplot non e una visualizzazione da “libretto di istruzioni statistiche”. E uno strumento operativo che rivela la vera struttura dei tuoi dati — la struttura che la media nasconde sistematicamente. Usalo, e capirai il tuo business molto meglio di quanto farebbe qualsiasi media aggregata.
La prossima metrica che leggerai, prima di accettare la media come rappresentativa, chiediti: come appare il boxplot di questa distribuzione? Potrebbe cambiarti il modo in cui prendi decisioni.