Un buon modo per mostrare graficamente molti dati


15

Sto lavorando a un progetto che coinvolge 14 variabili e 345.000 osservazioni per i dati sulle abitazioni (cose come anno, metratura, prezzo venduto, contea di residenza, ecc.). Mi preoccupo di cercare buone tecniche grafiche e librerie R che contengano belle tecniche di disegno.

Sto già vedendo cosa funzionerà bene in ggplot e reticolo e sto pensando di fare trame di violino per alcune delle mie variabili numeriche.

Quali altri pacchetti raccomanderebbero le persone per visualizzare una grande quantità di variabili numeriche o tipizzate in modo chiaro, lucido e, soprattutto, succinto?


"modo chiaro, lucido e, soprattutto, succinto" Mi sembra ggplot2.
Brandon Bertelsen,

1
Sto cercando non solo le librerie R, ma anche eventuali tipi specifici di grafici. La mia conoscenza dei grafici è limitata a scatter, box, qq, istogrammi, violini, stime della densità del kernel, ecc. Qualsiasi grafico leggermente più oscuro in grado di rivelare di più sui dati di quelli sarebbe fantastico.
Christopher Aden,

2
le coordinate parallele sembrano un altro da menzionare. Anche i metodi di riduzione della dimensionalità potrebbero essere utili.
Tal Galili,

Risposte:


13

Il miglior "grafico" è così ovvio che nessuno lo ha ancora menzionato: creare mappe. I dati sugli alloggi dipendono fondamentalmente dalla posizione spaziale (secondo la vecchia visione del settore immobiliare), quindi la prima cosa da fare è creare una mappa dettagliata chiara di ogni variabile. Fare questo bene con un terzo di milione di punti richiede davvero un GIS di livello industriale, che può rendere breve il processo. Dopodiché ha senso andare avanti e creare diagrammi di probabilità e grafici a scatola per esplorare le distribuzioni univariate e tracciare matrici di grafici a dispersione e grafici a scatole vaganti, ecc., Per esplorare le dipendenze - ma le mappe suggeriranno immediatamente cosa esplorare, come modellare il relazioni tra i dati e come suddividere geograficamente i dati in sottoinsiemi significativi.


Grande idea! Ho già latitudini e lunghezze di tutti i punti dati, quindi un compito del genere sarebbe relativamente elementare. Pensavo che la biblioteca delle mappe sarebbe stata una buona strada da percorrere, a meno che non ci fosse qualcosa di meglio.
Christopher Aden

2
@Christopher Puoi anche farlo con ggplot2(specialmente se non hai bisogno di disegnare i confini del paese), had.co.nz/ggplot2/coord_map.html . In caso contrario, maps, gmapssono migliori. C'è anche GeoXpe un'interfaccia R per GRASS. A proposito, Mondrian ha un plugin per i dati geografici :)
chl

Assegnare una risposta migliore può essere difficile quando ci sono molti ottimi suggerimenti, ma ritengo che questa sia la direzione giusta, tenendo presente "succinta". Proverò ggplot2 e darò un'occhiata a mappe, GeoXp e Mondrian. Grazie per l'idea di rappresentare graficamente spazialmente!
Christopher Aden,


Ho avuto un buon successo con lattice's levelplote contourplot. Il pacchetto fieldsha alcune caratteristiche interessanti, inclusa quella quiltplotche è buona se i tuoi dati non sono strettamente su una griglia. Ha anche una bella funzione spline a piastra sottile Tpsper smussare i dati senza griglia su una griglia. Per quanto riguarda il software GIS dedicato, GRASS in qualche modo non ha mai senso per me, preferisco QGIS.
Wayne,

6

Consiglio di dare un'occhiata a GGobi , che ha anche un'interfaccia R, almeno per scopi esplorativi. Ha una serie di display grafici particolarmente utili per gestire un gran numero di osservazioni e variabili e per collegarle insieme. Potresti iniziare guardando alcuni dei video nella sezione "Guarda una demo" nella pagina Impara GGobi .

Aggiornare

Collegamenti agli strumenti di Hadley Wickham per GGobi, come suggerito da chl nei commenti:

  • DescribeDisplay "Pacchetto R che fornisce un modo per ricreare la grafica di ggobi in R"
  • clusterfly "Esplora i risultati del clustering in dimensioni elevate"
  • rggobi "Pacchetto R che fornisce un'interfaccia semplice con GGobi"

1
@ars Aggiungiamo gli strumenti R di Hadley per migliorare l'esperienza di GGobi, ad es DescribeDisplayclusterfly . e .
chl

Ciao, come ho scritto sulla mia risposta - la mia esperienza con ggobi è che non gestisce bene grandi set di dati. Hai un'altra esperienza con quello?
Tal Galili,

@Tal Il problema deriva dal non basarsi sul glifo per la visualizzazione / il rendering dello schermo, che è comune alla grafica di base R. Questo è stato discusso all'ultima conferenza DSC ( j.mp/bpOhBH ). In realtà, è in corso un progetto con Qt come backend e una nuova porta di GGobi, per migliorare la visualizzazione interattiva di grandi set di dati.
chl

1
@Tal: La mia esperienza è che è piuttosto lento quando si aggiorna / ridipinge le viste, ad esempio quando si aggiunge una variabile o si trascina per riorganizzare i display nel PCP. Tuttavia, è utilizzabile anche se non interattivo come pubblicizzato con dati di grandi dimensioni. @chl: è davvero bello saperlo, grazie!
ARS

1
@ars @Tal Ecco i link sull'interfaccia Qt per R ( j.mp/d1AJp7 ) e GGobi ( j.mp/cUOvfp ). Vedi anche il repository Github di Hadley!
chl,

6

Sento che in realtà stai ponendo due domande: 1) quali tipi di visualizzazioni usare e 2) quale pacchetto R può produrle.

Nel caso del tipo di grafico da utilizzare, ce ne sono molti e dipende dalle tue esigenze (ad esempio: tipi di variabili - numerico, fattore, geografico ecc. E il tipo di connessioni che desideri visualizzare):

  • Se hai molte variabili numeriche, potresti voler usare una matrice del diagramma a dispersione (dai un'occhiata qui )
  • Se hai molte variabili fattoriali, potresti voler usare una matrice del diagramma a dispersione per i fattori (dai un'occhiata qui )
  • Potresti anche andare a fare un po ' coordinate parallele ci sono diversi modi per farlo in R.
  • Per una gamma più ampia di strutture grafiche in R, dai un'occhiata alla vista delle attività grafiche .

Ora riguardo a come farlo. Un problema con molti punti dati è il tempo fino alla creazione della trama. ggplot2, iplots, ggobi non sono molto utili per troppi punti dati (almeno per esperienza). Nel qual caso potresti voler concentrarti sulle strutture grafiche di base R, o campionare i tuoi dati e su quello per usare tutti gli altri strumenti. Oppure puoi sperare che le persone che sviluppano iplots extreme (o Acinonyx ) a una fase di rilascio anticipato.


Grazie per i collegamenti su rflowcyte Acinonyx.
chl

A proposito, rflowcytè stato deprecato con le recenti versioni di Bioconduttore, ora si consiglia di utilizzare flowViz. Ad ogni modo, entrambi fanno affidamento lattice.
chl

Risposta molto approfondita, Tal! Il tempo di generazione della trama non dovrebbe essere un grosso problema. Ho fatto la maggior parte dei miei grafici con il pacchetto di base, e il problema di avere un aspetto più bello dei grafici era quando ho deciso di usare un grafico per la carta. Avevo preso in considerazione l'uso di una matrice scatterplot per le variabili numeriche, ma poiché molte di esse sono di unità diverse (alcune sono in dollari, altre in sqft), le uniche informazioni preziose che otterrei sarebbero le tendenze generali, ma con ~ 8 numerici variabili, un SPM 8x8 è un po 'ingombra.
Christopher Aden,

3

Mondrian offre funzionalità interattive e gestisce set di dati abbastanza grandi (è in Java, però).

Paraview include viz 2D / 3D. Caratteristiche.


Grazie per le due nuove librerie. Il mio principale conflitto con questi due è che sto inviando il mio rapporto tramite copia cartacea, quindi la grafica interattiva potrebbe non essere utilizzata completamente. La grafica di Mondrian sembra piuttosto complessa. Lo darò un'occhiata.
Christopher Aden,

@Christopher Per Mondrian, hai la versione "equivalente" R iplotscitata da @Tal. Informazioni su Paraview, hai la possibilità di salvare uno screenshot del tuo Viz. DescribeDisplayè la strada da percorrere per esportare la visualizzazione dinamica da GGobi, cran.r-project.org/web/packages/DescribeDisplay/index.html .
chl,

-3

Vorrei portare alla vostra attenzione Parallel Coordinates: Visual Multidimensional Geometry and Its Applications , che contiene le ultime scoperte e applicazioni sul campo.

Il libro è stato elogiato da Stephen Hawking tra gli altri. Le superfici sono descritte (usando la dualità) dai loro normali vettori nei suoi punti. Contiene applicazioni per il controllo del traffico aereo (prevenzione automatica delle collisioni - 3 brevetti USA), data mining multivariato (su set di dati reali alcuni con centinaia di variabili), ottimizzazione multiobjective, controllo di processo, display intelligenti per terapia intensiva, sicurezza, visualizzazione della rete e recentemente grandi Dati.


5
Ciao Alfred, grazie per esserti unito al sito, questo sembra essere un po 'promozionale. Forse hai un esempio simile al set di dati del PO (14 variabili e 345.000 osservazioni) che puoi fornire un'immagine e descrivere / dimostrare come coordinate parallele potrebbero essere utili? Molti dei grafici delle coordinate parallele statiche che ho visto con così tante osservazioni tendono a sembrare degli spaghetti su un piatto, sospetto che tu abbia una visione migliore di come dare un senso a tali dati N così grandi.
Andy W.

Ciao Andy, non ho un esempio con tante osservazioni. In
Alfred Inselberg,

Ciao Andy, non ho un esempio con tante osservazioni. L'interattività è essenziale per l'esplorazione dei dati. Ho lavorato su un set di dati con circa 800 variabili e 10.000 osservazioni in una rete telefonica cellulare per scoprire guasti "misteriosi". Utilizzando i classificatori in modo graduale e interattivo sono state rilevate le 11 variabili responsabili e rintracciarle all'indietro nel tempo è stata rilevata 3-4 attività insolita nella rete prima di notare l'errore.
Alfred Inselberg
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.