Qual è un buon modo per rappresentare graficamente un numero molto elevato di punti dati associati?


9

Nel mio campo il solito modo per tracciare i dati accoppiati è come una serie di sottili segmenti di linea inclinati, sovrapponendoli con la mediana e CI della mediana per i due gruppi:

inserisci qui la descrizione dell'immagine

Tuttavia, questo tipo di trama diventa molto più difficile da leggere quando il numero di punti dati diventa molto grande (nel mio caso ho nell'ordine di 10000 coppie):

inserisci qui la descrizione dell'immagine

Ridurre l'alfa aiuta un po ', ma non è ancora eccezionale. Durante la ricerca di una soluzione mi sono imbattuto in questo documento e ho deciso di provare a implementare un "diagramma a linee parallele". Ancora una volta, funziona molto bene con un numero limitato di punti dati:

inserisci qui la descrizione dell'immagine

N

inserisci qui la descrizione dell'immagine

Suppongo che potrei mostrare separatamente le distribuzioni per i due gruppi, ad esempio con boxplot o violini, e tracciare una linea con errorbar in alto che mostra i due mediani / CI, ma non mi piace davvero quell'idea, dal momento che non trasmetterebbe la natura accoppiata dei dati.

Inoltre, non sono troppo appassionato dell'idea di un grafico a dispersione 2D: preferirei una rappresentazione più compatta, e idealmente una rappresentazione in cui i valori per i due gruppi sono tracciati lungo lo stesso asse. Per completezza, ecco come si presentano i dati come uno scatter 2D:

inserisci qui la descrizione dell'immagine

Qualcuno conosce un modo migliore per rappresentare i dati associati con una dimensione del campione molto grande? Potresti collegarmi ad alcuni esempi?

modificare

Mi dispiace, chiaramente non ho fatto un lavoro abbastanza buono per spiegare quello che sto cercando. Sì, il grafico a dispersione 2D funziona e ci sono molti modi in cui potrebbe essere migliorato per comunicare meglio la densità dei punti - Potrei codificare i punti in base a una stima della densità del kernel, potrei fare un istogramma 2D , Potrei tracciare contorni sopra i punti ecc., Ecc ...

Tuttavia, penso che questo sia eccessivo per il messaggio che sto cercando di trasmettere. Non mi interessa davvero mostrare la densità 2D dei punti di per sé - tutto quello che devo fare è mostrare che i valori per "barre" sono generalmente più grandi di quelli per "punti", nel modo più semplice e chiaro possibile e senza perdere la natura essenziale dei dati associati. Idealmente, vorrei tracciare i valori accoppiati per i due gruppi lungo gli stessi assi piuttosto che ortogonali, poiché ciò semplifica il confronto visivo.

Forse non esiste un'opzione migliore di un diagramma a dispersione, ma mi piacerebbe sapere se ci sono alternative che potrebbero funzionare.


1
Hai provato semplicemente a tracciare i valori corrispondenti barsull'asse orizzontale e dotverticale come un diagramma a dispersione?
Fino a Hoffmann il

@TillHoffmann Sì, l'ho detto alla fine della mia domanda. Probabilmente è l'opzione migliore che ho al momento, ma preferirei una rappresentazione più compatta, e idealmente una rappresentazione che rappresenti i valori di entrambi i gruppi lungo lo stesso asse (forse sono irragionevolmente esigente ...). Aggiungerò il grafico a dispersione alla mia domanda.
ali_m,

scusa, mi sono perso. Come stai generando i tuoi dati sintetici al momento?
Fino a Hoffmann il

2
Potresti spiegare cosa intendi con una rappresentazione "compatta"? Il diagramma a dispersione è chiaramente superiore a tutti gli altri in termini di visualizzazione delle relazioni e dati singolarmente insoliti in una piccola area; cresce solo all'aumentare della dimensione del set di dati. (10.000 non sono grandi per un diagramma a dispersione.) Citi così tanti grafici diversi che è impossibile dedurre ciò di cui hai veramente bisogno. Per favore, dicci lo scopo della tua visualizzazione: esattamente che tipo di informazioni speri di apprendere o comunicare agli altri? Con quale precisione e rapidità intendete che sia percepito e compreso?
whuber

1
@whuber Ci scusiamo per non essere chiaro. Quello che speravo era un modo per rappresentare i dati in modo tale che i valori per entrambi i gruppi fossero tracciati lungo gli stessi, anziché assi ortogonali (come sono nei grafici della "linea inclinata" e della "linea parallela"). Il messaggio è molto semplice: i valori per le "barre" sono generalmente più alti di quelli per i "punti". Oltre a ciò, non mi interessa molto rappresentare la densità della distribuzione, anche se mi piacerebbe comunicare che ci sono molte coppie nel campione.
ali_m

Risposte:


7

Dato come comprendo il tuo obiettivo, calcolerei solo le differenze accoppiate ( bars - dots), quindi tracciamo queste differenze in un istogramma o in un diagramma di stima della densità del kernel. Puoi anche aggiungere qualsiasi combinazione di (1) una linea verticale corrispondente alla differenza zero (2) qualsiasi scelta di percentili.

Ciò evidenzierebbe quale parte dei dati ha barssuperato dotse in generale quali sono le differenze osservate.

(Ho ipotizzato che non ti interessasse mostrare i valori reali, grezzi barse dotsnella stessa trama.)

Si potrebbe anche tracciare la fiducia o intervalli credibili posteriori per indicare se queste differenze sono significative. (H / T @MrMeritology!)


Aggiungendo a questa risposta: è anche possibile tracciare intervalli di confidenza per le differenze accoppiate che indicheranno visivamente se le differenze sono significative o meno.
MrMeritology il

yB=μ+offset(yA)+Δ(yAy¯A

2

yByAyA

yB=μ+offset(yA)+Δ(yAy¯A)+ϵ
+Δ2(yAy¯A)2

Graficamente potresti mostrare le linee come hai mostrato, con un fattore alfa ridotto (*), magari riducendo ulteriormente mostrando solo un campione casuale di linee. Quindi puoi colorare le linee in base alla pendenza ...

Per le trame di Bland-Altman, menzionate in un commento di Nick Cox, vedere ad esempio un Accordo di esempio tra metodi con più osservazioni per individuo o guardare attraverso il tag .

(*) Il fattore alfa qui è un parametro grafico che rende trasparenti i punti nella trama, quindi i primi punti tracciati non sono totalmente occulti dalla successiva sovrastampa.


1

1

Preferirei il diagramma a dispersione 2D. Disegnerei la linea di riferimento in grigio chiaro per un maggiore contrasto nella regione affollata. Per alleviare l'affollamento, disegnare i marker senza bordo, ridurre ulteriormente l'alfa, ridurre la dimensione dei marker.

Detto questo, se sei più interessato alle coppie tipiche che alle ali della distribuzione, prova a tracciare la linea della somma cumulativa della dotscontro la somma cumulativa della bars. La trama è ancora in 2D ma con molto meno inchiostro. Per salvare anche l'area di stampa, è possibile ruotare la traccia di 45 ° in modo che la cornice funga da direzione di riferimento.

Quella trama mostrerebbe anche qualsiasi tendenza nei dati. Se il processo si caratterizza per essere stazionario, ordinare le coppie di, ad esempio, la media geometrica, sqrt(bars*dots).


0

Consiglierei di tracciare le linee come le hai per la mediana e i quartili, o quanti percentili vuoi per quella faccenda. La mediana potrebbe rimanere più spessa / più distinguibile rispetto alle altre linee percentili. Ciò contribuirebbe a preservare la capacità di vedere come si comportano i dati nella distribuzione senza compromettere la semplicità e la familiarità della trama attualmente utilizzata nel proprio campo.

Inoltre, con una dimensione del campione così elevata, la tendenza media o mediana con barre di errore sarebbe probabilmente sufficiente poiché ti piacerebbe così tanto il teorema del limite centrale. Anche il campo biomedico si basa su quei diagrammi di linea accoppiati, ma questo è spesso il caso perché la dimensione del campione potrebbe essere dell'ordine di 10-20, quindi è importante visualizzare i potenziali punti di leva.


0

Il mio primo suggerimento è un diagramma a dispersione.

Se 10000 punti distribuiti in modo non uniforme nella trama sono ancora una nuvola vaga, considera una mappa di calore. Il colore del pixel in x = 10.5, y = 11.5 indicherebbe quante volte il valore tra 10.45 e 10.55 è mappato su un valore compreso tra 11.45 e 11.55: 0 = bianco = RGB (255.255.255), 1 = blu = RGB (0, 0,255), 2 = RGB (1.0.254), ... 256 e superiore = RGB (255,0,0) = rosso


Ciò mi dà essenzialmente lo stesso tipo di rappresentazione di uno scatter 2D, tranne con una risoluzione inferiore. Potrei finire per fare qualcosa del genere, ma speravo idealmente in una rappresentazione più compatta che traccia i valori per entrambi i gruppi lungo lo stesso asse, piuttosto che assi ortogonali.
ali_m

1
Osservando il tuo diagramma a dispersione, vedo che stai perdendo molte informazioni al centro del tuo "punto d'inchiostro". Devi fare qualcosa, applicando una trasformazione (logaritmo?) O con la mappa della brughiera che suggerisco.
Dirk Horsten,

Scusate! Il tuo suggerimento è del tutto ragionevole - non ho fatto abbastanza bene a spiegare cosa sto cercando. Sì, un grafico bidimensionale (scatter, heatmap, grafico di contorno ecc.) Farebbe un buon lavoro nel rappresentare la densità dei punti campione, ma penso che siano più informazioni di quelle che devo davvero visualizzare. Tutto quello che devo fare è mostrare che i valori per "barre" sono generalmente più alti di quelli per "punti". Sto cercando il modo più semplice possibile per mostrarlo preservando la natura accoppiata dei dati.
ali_m

La diagonale sulla trama del catter non indica la direzione abbastanza bene?
Dirk Horsten,

No, ma forse ho aspettative irragionevoli :-)
ali_m
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.