Una volta mi sono imbattuto in un tipo di trama per dati categorici (ad esempio, tabelle di contingenza) su Internet, che mi è davvero piaciuto, ma non l'ho mai trovato di nuovo, e non so nemmeno come si chiama. Era essenzialmente come una trama del setaccio, in quanto le altezze delle righe e le larghezze delle colonne erano ridimensionate rispetto alle probabilità marginali. Pertanto, ogni riquadro è stato ridimensionato in base alla frequenza relativa prevista in indipendenza. Tuttavia, differiva da una trama del setaccio in quanto, piuttosto che tracciare il tratteggio incrociato all'interno di ogni scatola, tracciava un punto (come in un diagramma a dispersione) in una posizione scelta casualmente da un'uniforme bivariata per ogni osservazione. In questo modo, la densità dei punti riflette quanto i conteggi osservati corrispondono ai conteggi previsti. Cioè, se la densità fosse simile in ogni riquadro, il modello null sarebbe ragionevole, ) potrebbe non essere molto probabile con il modello null. Poiché i punti vengono tracciati anziché tratteggio incrociato, esiste una corrispondenza semplice e intuitiva tra l'elemento tracciato e il conteggio osservato, il che non è necessariamente vero per i grafici a setaccio (vedere di seguito). Inoltre, il posizionamento casuale dei punti conferisce alla trama un aspetto "organico". Inoltre, il colore potrebbe essere utilizzato per evidenziare le caselle / celle che differiscono fortemente dal modello nullo e una matrice del diagramma potrebbe essere utilizzata per esaminare le relazioni a coppie tra molte variabili diverse, in modo da incorporare i vantaggi di grafici simili.
- Qualcuno sa come si chiama questa trama?
- Esiste un pacchetto / funzione che lo farà facilmente in R, o altro software (diciamo, Mondrian)? Non riesco a trovare nulla di simile in VCD . Certo, potrebbe essere un codice difficile da zero, ma sarebbe un dolore.
Ecco un semplice esempio di una trama setaccio, si noti che è facile vedere come i conteggi attesi per le diverse categorie dovrebbero essere riprodotti con il modello null, ma è difficile conciliare il tratteggio incrociato con i numeri reali, producendo una trama che non è abbastanza facile da leggere ed esteticamente orribile:
B ~B
A 38 4
~A 3 19
Per quello che vale, una trama a mosaico ha una sorta di problema opposto: sebbene sia più facile vedere quali celle hanno conteggi 'troppi' o 'troppo pochi' (rispetto al modello nullo), è più difficile riconoscere quali siano le relazioni tra i conteggi previsti sarebbero stati. In particolare, le larghezze delle colonne sono ridimensionate rispetto alla probabilità marginale, ma le altezze delle righe non lo sono, rendendo quasi impossibile estrarre quell'informazione.
E ora qualcosa di completamente diverso...
- Qualcuno sa da dove viene la convenzione di usare il blu per "troppi" e il rosso per "troppo pochi"? Questo è sempre stato controintuitivo per me. Mi sembra che la densità eccezionalmente alta (o troppe osservazioni) si accompagni al caldo , e la bassa densità si accompagni al freddo , e che (almeno nell'illuminazione del palcoscenico) i rossi siano caldi e i blu siano freddi .
Aggiornamento: se ricordo bene, la trama che ho visto era in un pdf di un capitolo (introduzione o ch1) da un libro che è stato reso disponibile gratuitamente online come teaser di marketing. Ecco una versione approssimativa dell'idea che ho codificato da zero:
anche con questa versione grezza, penso che sia più facile da leggere rispetto alla trama del setaccio e in qualche modo più facile della trama del mosaico (ad esempio, è più facile riconoscere quali sono le relazioni tra le frequenze cellulari sarebbe sotto indipendenza). Sarebbe bello avere una funzione che: a. lo farebbe automaticamente con qualsiasi tabella di contingenza, b. potrebbe essere usato come elemento costitutivo di una matrice di trama e c. avrebbe le belle caratteristiche che derivano dalle trame sopra (come la leggenda dei residui standardizzata sulla trama del mosaico).
shading.points()
per fare quello che vuoi, all'interno del framework strucplot che è stato citato sopra ed è disponibile come vignetta nel vcd
pacchetto.
R
funzioneassocplot
si avvicina a ciò che intendi? In caso contrario, scommetto che unR
programmatore potrebbe modificarlo omosaicplot
fare quello che vuoi.