giovedì 18 aprile 2019

Identificare i dati in un grafico xy con un click

Accade con un certa frequenza, nel corso dell'analisi esplorativa dei dati, osservando un grafico di dispersione (xy), di porsi la domanda: questo valore, che si discosta così tanto dagli altri, a quale dato corrisponde?

R fornisce con uno strumento molto efficace per identificare il numero del record/riga che corrisponde ad uno specifico punto riportato in un grafico, la funzione identify() [1], il cui utilizzo viene illustrato con questo script. Copiatelo e incollatelo nella Console di R e premete ↵ Invio:

# IDENTIFICA I DATI IN UN GRAFICO CON UN SEMPLICE CLICK
#
library(DAAG) # carica il pacchetto che include il set di dati ais
attach(ais) # consente di impiegare direttamente i nomi delle variabili
#
windows() # apre una nuova finestra
#
plot(rcc, hc, main="Identifica i punti in un grafico", xlab="Eritrociti (10^12/L)", ylab="Ematòcrito (%)", pch=1) # traccia il grafico di dispersione (xy)
#
# fare click accanto al punto da identificare, ripetere secondo necessità, premere <esc> per terminare
identify(rcc, hc, plot=TRUE, atpen=FALSE, offset=0.5, tolerance=0.25)
#

I dati impiegati sono contenuti nel set di dati ais. Dopo che con la funzione plot() [2] è stato tracciato il grafico di dispersione (xy), la funzione identify() consente di identificare nel grafico uno o più punti impiegando i seguenti argomenti:
rcc la variabile in ascisse;
hc la variabile in ordinate;
plot=TRUE che visualizza l'identificativo del dato sul quale si è fatto click con il mouse;
atpen=FALSE che posiziona l'identificativo del dato lievemente discosto dal punto al quale corrisponde (provare a cambiare l'argomento ponendo atpen=TRUE per vedere la differenza);
offset=0.5 che indica la distanza che l'identificativo del dato deve avere dal punto al quale corrisponde;
tolerance=0.25 che indica la tolleranza ammessa per la distanza definita con l'argomento offset.

Facendo click con il tasto sinistro del mouse accanto a un punto, vedrete comparire il suo identificativo. L'operazione può essere ripetuta per più punti. Di default viene emesso un suono ogniqualvolta si fa click e viene identificato un punto: per silenziare la funzione identify() è necessario aggiungere l'argomento locatorBell=FALSE.

Per uscire dal processo di identificazione e terminare lo script è sufficiente premere il tasto <esc>.

Questo è il grafico ottenuto dopo avere fatto click con il tasto sinistro del mouse sui valori che più si discostano dai rimanenti, valori identificati dalla funzione identify() come corrispondenti ai dati numero 68, 78, 161 e 166.

Come è facile intuire questa funzione grafica avanzata è molto interessante perché permette di individuare e identificare quelli che i test statistici possono avere indicato come possibili dati anomali (o dati aberranti o outliers).


Potete riutilizzare facilmente lo script sostituendo all'oggetto ais l'oggetto contenente i vostri dati, opportunamente strutturati, e modificando conseguentemente i nomi della variabili. Per una guida rapida all'importazione dei dati potete consultare i link:


----------

[1] Per la documentazione della funzione identify() digitare help(identify) nella Console di R.

[2] Per la documentazione della funzione plot() digitare help(plot) nella Console di R.