L’Overplotting è il fenomeno in cui i data points o i labels si sovrappongono durante la loro visualizzazione in un grafico, generando confusione che potrebbe portare ad errori di interpretazione.
Imparare a distinguere e gestire questo fenomeno è cruciale per ogni Data Scientis.
Overplotting: cause
Parlando di data points, le due grandi cause di overplotting sono:
- eccessivo numero di data point visualizzati contemporanemente sullo stesso grafico
- variazione bassa di una delle variabili visualizzate (ergo, il numero di valori unici è limitato)
Troppi data points con valori simili

Il grafico, che fa riferimento al dataset diamonds della libreria ggplot2 di R, mostra il fenomeno di Overplotting che risulta particolarmente evidente quando il valore ‘Carat’ è inferiore a circa 1.2.
Ci sono troppi valori simili.
Ora ti chiedo: “Quanti diamanti hanno un valore ‘Carat’ inferiore a 1?”
Rispondere, anche in modo approsimativo, è impossibile.
Il problema è che non riusciamo a visualizzare il numero di diamanti con quei valori. Potrebbero anche essere milioni, sovrapposti l’uno sull’altro.
E’ un’evenienza che non possiamo trascurare.
Variazione eccessivamente ridotta

Il grafico a dispersione mette in relazione l’età in funzione del salario di alcuni campioni di un dataset.
Il problema è analogo a quello precedente.
Non possiamo stabilire quante persone di età pari a 60 anni guadagnino 50.000$. Potrebbe essere una o 150 milioni.
Il fenomeno dell’Overplotting è distinguibile dal fatto che i dati visualizzati sono organizzati in righe e colonne nette.
In questo caso la causa potrebbe essere legata al modo in cui i dati sono stati raccolti: è stato ridotto in modo eccessivo la variazione della variabile ‘Income’.
Ad esempio, l’età di persone comprese tra i 61 e i 70 anni è potrebbe essere stata fissata a 75.
Soluzioni all’Overplotting
Vediamo insieme alcune soluzioni.
Dimensioni

Il grafico è simile al precedente. L’unica differenza è la dimensione dei punti rappresentanti i data points.
Ti faccio notare che, sebbene la situazione sia leggermente migliorata, l’overplotting è ancora presente: limitarsi a modifcare l’estetica del grafio , cambiando la dimensione dei data points, non è una soluzione definitiva.
Trasparenza

Modifcare la trasparenza dei punti rappresentanti i data points è una strategia efficace, poiché è visivamente immediato verificarne l’esito: le regioni più dense, quindi scure, sono causate da sovrapposizioni multiple.
Resta comunque difficile cogliere la grandezza dell’overplotting.
Jittering

Risolvere l’overplotting creando ‘rumore‘ nel dataset.
Aggiungere dei numeri generati casualmente ai valori di un dataset è utile quando la variazione è bassa.
Potrebbe sembrare controintuitivo manipoalre in questo modo i dati, che di fatto sono falsati.; su piccola scala il grafico è meno accurato, ma in grande scala la rilevanza aumenta.
Tiles | Best Solution for small variation

La migliore soluzione, a mio avviso, per gestire il fenomeno di Overplotting quando la variazione è bassa è quella di creare dei grafici in cui l’area dei punti rappresentanti i dati è proporzionale al loro numero.
Spero di averti aiutato almeno un po’!
Io e te ci vediamo alla prossima!
Un caldo abbraccio, Andrea.
1 Comment
[…] questa guida, trovi una spiegazione più approfondita e alcuni consigli per risolvere il […]