giovedì 24 gennaio 2019

Correlogrammi

Oltre al calcolo dei coefficienti di correlazione parametrici e non parametrici, in R sono disponibili i correlogrammi, che forniscono una sintesi grafica delle informazioni sulla correlazione tra due variabili.

I correlogrammi possono essere generati mediante la funzione corrgram() contenuta in uno dei tanti pacchetti aggiuntivi disponibili in R, denominato corrgram, che deve essere preventivamente scaricato dal CRAN. I dati sono contenuti nella tabella ais del pacchetto DAAG - accertatevi di avere installato il pacchetto o in alternativa procedete come indicato in [1]. In questo script vediamo come con la funzione corrgram() sia possibile realizzare tre diversi correlogrammi, che forniscono differenti informazioni sulla correlazione tra le diverse variabili contenute nel set di dati ais.

Copiate e incollate nella Console di R la prima parte dello script e premete ↵ Invio:

# CORRELOGRAMMI (1/3)
#
library(DAAG) # carica il pacchetto DAAG incluso il set di dati ais
str(ais) # mostra la struttura di ais
#
library(corrgram) # carica il pacchetto che genera i correlogrammi
#
windows() # apre una nuova finestra
corrgram(ais, cor.method = "pearson", order=FALSE, lower.panel=panel.shade, upper.panel=panel.pie, text.panel=panel.txt, main="Correlogramma semplice") # correlogramma semplice
#

I dati sono caricati con library(DAAG), viene mostrata la struttura del set di dati con str(ais), quindi viene caricata il pacchetto necessario per rappresentare i correlogrammi con library(corrgram) [2] e viene aperta una nuova finestra grafica con windows().

Nella funzione corrgram() compaiono come argomenti [2]:
→ il set di dati da analizzare (ais);
→ l'ordine nel quale presentare i risultati (order=FALSE), che lascia le variabili nello stesso ordine nel quale sono presenti nel set di dati originali. In alternativa l'ordine in cui presentare i risultati può essere espresso come order="PCA", order="OLO", order="GW", order="HC" [3];
→ il metodo di correlazione (cor.method = "pearson"), corrispondente a uno dei coefficienti di correlazione parametrici e non parametrici, che qui è il classico coefficiente di correlazione r di Pearson (test parametrico), ma  che può essere in alternativa, impiegando l'argomento cor.method = "spearman" o l'argomento cor.method = "kendall", rispettivamente il coefficiente di correlazione per ranghi ρ (rho) di Spearman o il coefficiente di correlazione τ (tau) di Kendall, entrambi test non parametrici;
→ gli argomenti lower.panel=panel.shade e upper.panel=panel.pie che consentono di rappresentare i valori r di Pearson sotto forma di quantità di colore nelle torte nella metà superiore destra del correlogramma, nelle quali una maggior quantità di colore corrisponde a un più elevato valore di r, e di intensità del colore dei quadrati nella metà inferiore sinistra. In blu sono riportate le correlazioni positive in colore rosato quelle negative.


Un diverso correlogramma viene realizzato con la seconda parte dello script ponendo nella funzione corrgram() gli argomenti lower.panel=panel.ellipse e upper.panel=panel.ptsCopiate e incollate nella Console di R la seconda parte dello script e premete ↵ Invio:

windows() # apre una nuova finestra (2/3)
corrgram(ais, cor.method = "pearson", order=FALSE, lower.panel=panel.ellipse, upper.panel=panel.pts, text.panel=panel.txt, diag.panel=panel.minmax, main="Correlogramma con tendenze") #
# correlogramma con evidenza delle tendenze
#

In alto a destra è riportato per ciascuna delle possibili coppie di variabili il grafico xy con la distribuzione dei valori osservati. In basso a sinistra sono mostrati gli elissoidi che indicano la tendenza delle variabili a variare congiuntamente con in rosso la stima della curva che ne approssima la tendenza, elissoidi sempre più stretti e più allungati e curva sempre meno curva man mano che la relazione tra le variabili si avvicina a una retta. Nella diagonale compaiono infine i nomi delle variabili con il valore minimo e il valore massimo osservati.


Infine il terzo correlogramma è realizzato con questa ultima parte dello script impiegando nella funzione corrgram() l'argomento lower.panel=panel.pts, l'argomento upper.panel=panel.conf e l'argomento diag.panel=panel.density.

Copiate e incollate nella Console di R la terza parte dello script e premete ↵ Invio:

windows() # apre una nuova finestra (3/3)
corrgram(ais, cor.method = "pearson", order=FALSE, lower.panel=panel.pts, upper.panel=panel.conf, diag.panel=panel.density, main="Correlogramma con i coefficienti di correlazione") # correlogramma con i coefficienti di correlazione r di Pearson e i loro limiti di confidenza
#

In alto a destra per ciascuna delle possibili coppie di variabili è riportato il coefficiente di correlazione r di Pearson con i relativi limiti di confidenza al 95%. In basso sinistra è riportato per ciascuna delle possibili coppie di variabili il grafico xy con la distribuzione dei valori osservati. Nella diagonale sono riportati infine i kernel density plot di ciascuna variabile. La funzione corrgram() consente ovviamente anche in questo caso di calcolare, in alternativa al coefficiente di correlazione r di Pearson, il coefficiente di correlazione per ranghi ρ (rho) di Spearman o il coefficiente di correlazione τ (tau) di Kendall, impiegando rispettivamente l'argomento cor.method = "spearman" o l'argomento cor.method = "kendall".


Da notare che in R di default le finestre grafiche si sovrappongono perfettamente l'una all'altra, iconizzatele o spostatele per rivedere quelle aperte in precedenza.

Potete riutilizzare facilmente lo script sostituendo all'oggetto ais l'oggetto contenente i vostri dati, opportunamente strutturati. Per una guida rapida all'importazione dei dati potete consultare i link:
 importare i dati di un file .csv
 importare i dati di un file .xls o .xlsx
 gestione dei dati mancanti


----------

[1] Vedere il post Il set di dati ais nel quale trovate anche come caricare i dati della tabella senza impiegare il pacchetto DAAG

[2] Per il pacchetto corrgram e la funzione corrgram() vedere il manuale di riferimento del pacchetto Package ‘corrgram’. URL consultato il 23/01/2019: https://goo.gl/F4o92D

[2] Getting Things in Order: An Introduction to the R Package seriation. URL consultato il 23/01/2019: https://goo.gl/2LC8Wk

Nessun commento:

Posta un commento