Visualizzazione di più "istogrammi" (grafici a barre)


9

Ho difficoltà a selezionare il modo giusto di visualizzare i dati. Diciamo che abbiamo librerie che vendono libri e ogni libro ha almeno una categoria .

Per una libreria, se contiamo tutte le categorie di libri, acquisiamo un istogramma che mostra il numero di libri che rientrano in una categoria specifica per quella libreria.

Voglio visualizzare il comportamento della libreria, voglio vedere se favoriscono una categoria rispetto ad altre categorie. Non voglio vedere se stanno favorendo la fantascienza tutti insieme, ma voglio vedere se stanno trattando ogni categoria allo stesso modo o no.

Ho ~ 1 milione di librerie.

Ho pensato a 4 metodi:

  1. Campiona i dati, mostra solo 500 istogrammi della libreria. Mostrali in 5 pagine separate usando la griglia 10x10. Esempio di una griglia 4x4:

    istogrammi multipli 1

  2. Come il numero 1. Ma questa volta ordina i valori dell'asse x in base alla loro descrizione del conteggio, quindi se c'è un favorito sarà facilmente visibile.

  3. Immagina di mettere gli istogrammi nel n. 2 insieme come un mazzo e mostrarli in 3D. Qualcosa come questo:
    Istogramma 3D

  4. Invece di usare il colore di causa del terzo asse per rappresentare i colori, quindi usando una mappa di calore (istogramma 2D): Istogramma 2D
    se generalmente le librerie preferiscono alcune categorie ad altre, verranno visualizzate come gradiente da sinistra a destra.

Hai altre idee / strumenti di visualizzazione per rappresentare più istogrammi?


4
Penso che intendi i grafici a barre anziché gli istogrammi
Rob Hyndman,

@Rob: l'istogramma non è un tipo speciale di grafico a barre che rappresenta una distribuzione di frequenza? Sto cercando di visualizzare le frequenze di categoria per molte librerie.
nimcap,

1
@nimcap No, perché l'istogramma è su una variabile continua e la categoria del libro è una variabile categoriale.

@mbq Supponiamo che un negozio di libri abbia 3 libri e le loro categorie sono: B1: [c1, c2, c3] B2: [c1, c3] B3: [c1, c4]. Quando aggreghiamo i conteggi delle categorie otteniamo [c1 x 3, c2 x 1, c3 x 2, c4 x 1]. Non è abbastanza per generare un istogramma?
nimcap

2
@nimcap No, è sufficiente generare un grafico a barre. L'istogramma può essere fatto ad esempio per un prezzo di un libro.

Risposte:


12

Come hai scoperto, non ci sono risposte facili alla tua domanda!

Presumo che ti interessi trovare negozi di libri strani o diversi? In questo caso, potresti provare cose come PCA (vedi la pagina di analisi del cluster di Wikipedia per maggiori dettagli).

Per darti un'idea, considera questo esempio. Hai 26 librerie (con i nomi A, B, .. Z). Tutte le librerie sono simili, tranne:

  1. Shop Z vende solo pochi libri di storia.
  2. I negozi OY vendono più libri romantici della media.

Un diagramma dei componenti principali evidenzia questi negozi per ulteriori indagini.

Ecco alcuni esempi di codice R:

> d = data.frame(Romance = rpois(26, 50), Horror = rpois(26, 100), 
               Science = rpois(26, 75), History = rpois(26, 125))
> rownames(d) = LETTERS
#Alter a few shops
> d[15:25,][1] = rpois(11,150)
> d[26,][4] = rpois(1, 10)
#look at the data
> head(d, 2)
       Romance Horror Science History
 A      36    107      62     139
 B      47     93      64     118
> books.PC.cov = prcomp(d)
> books.scores.cov = predict(books.PC.cov)
# Plot of PC1 vs PC2
> plot(books.scores.cov[,1],books.scores.cov[,2],
       xlab="PC 1",ylab="PC 2", pch=NA)
> text(books.scores.cov[,1],books.scores.cov[,2],labels=LETTERS)

Questo dà la seguente trama:

Trama PCA http://img265.imageshack.us/img265/7263/tmplx.jpg

Notare che:

  1. Shop z è un punto periferico.
  2. Gli altri negozi formano due gruppi distinti.

Altre possibilità

Potresti anche guardare GGobi , non l'ho mai usato, ma sembra interessante.


Grazie per la tua preziosa risposta. La situazione è difficile da descrivere anche nella mia lingua madre :) Fammi provare. Non mi interessa se le librerie favoriscono determinate categorie, ma voglio vedere se favoriscono le categorie. In realtà questo è quello che mi aspetto. Diciamo che ho 3 librerie (B1, B2, B3) e 4 categorie (C1, C2, C3, C4). Questi sono i loro dati di vendita: B1 (1, 1, 20, 20) B2 (90, 1, 1, 1), B3 (1, 1, 1, 30). Guardando questi dati posso dire che favoriscono alcune categorie rispetto ad altre. Ma se i dati fossero come B1 (20, 30, 20, 20) B2 (90, 100, 100, 100), B3 (30, 30, 40, 40) non posso dirlo.
nimcap,

Nel mio esempio, i negozi OY preferiscono i libri romantici. Questo è il motivo per cui questi negozi fanno parte di un gruppo distinto nella trama del PC.
csgillespie,

2
Ho votato questa come una buona risposta generale ma come una risposta pratica, affrontare molti punti dati sarà brutale.
Giovanni,

1
+1 Questo non è certamente ciò che vuole OP, tuttavia è certamente ciò che dovrebbe desiderare.

1
+1 Un bell'esempio di un'applicazione "terra-terra" di PCA.
nico,

3

Suggerirei qualcosa che non ha un nome definito (probabilmente "trama parallela") e si presenta così:

testo alternativo

Fondamentalmente si tracciano tutti i conteggi per tutte le librerie come punti sulle categorie elencate sull'asse x e si collegano i risultati di ciascuna libreria con una linea. Tuttavia, questo potrebbe essere troppo ingarbugliato per le linee 1M. Il concetto viene da GGobi, che è già stato citato da csgillespie.


1
I grafici paralleli dipendono fortemente dall'ordinamento "giusto" delle variabili, quindi per troppe categorie questo diventa noioso. E la fonte corretta sembra essere A.Inselberg, 1981.
Benjamin Bannier,

3
Si chiamano diagrammi di coordinate parallele: en.wikipedia.org/wiki/Parallel_coordinates
Simon Byrne,

@Simon grazie; @honk Sono d'accordo, questo è uno dei motivi per cui non li uso.
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.