Ricerca Sociale con R

Una wiki per l'analisi dei dati con R

Strumenti Utente

Strumenti Sito


Il Laboratorio di Analisi dei Dati con R, dell'Università di Teramo su piattaforma Meet, inizia il 9 aprile 2021 - Iscrizione - email
r:analisi_bivariata:correlazione

La correlazione lineare

Il coefficiente di correlazione lineare di Pearson misura l’associazione fra due variabili numeriche, sulla base del confronto fra le varianze. È il rapporto fra la Covarianza di due variabili, e il prodotto dei loro scarti quadratici medi1).

$$\frac{S_{XY}}{S_X S_Y}$$

Il coefficiente di correlazione varia da −1 a +1, indicando la direzione (diretta o inversa) della relazione stessa. È però simmetrico, nel senso che non tiene conto della differenza fra variabile indipendente e variabile dipendente.

L'uso di questa misura presuppone che le variabili siano estratte da campione casuale ed abbiano un’andamento normale, e che la loro relazione si approssimi alla linearità, e cioè che, al variare di X, Y vari corrispondentemente in maniera costante e regolare.

&nolink |

Nel terzo grafico, ad esempio, il coefficiente di correlazione sottostima la relazione fra le due variabili (i punti sono perfettamente allineati, ma non formano una retta).

La funzione ''cor()''

Per calcolare il coefficiente di correlazione, usiamo la funzione cor():

data(cars)
cor(cars$speed, cars$dist)
##  [1] 0.8068949

Le due variabili condividono l’80,7% della varianza.

Sempre con la funzione cor(), possiamo visualizzare la matrice di correlazione delle variabili di un dataset (sempre che, naturalmente, questo sia composto da sole variabili numeriche):

cor(cars)
##            speed      dist
##  speed 1.0000000 0.8068949
##  dist  0.8068949 1.0000000

A seconda del metodo selezionato, verrà calcolato l'indice di correlazione di Pearson, il tau di Kendall o l'il rho di Spearman

Di default, non esclude i casi mancanti. Per escluderli, usare il parametro na.rm = TRUE

Non calcola la significatività statistica dell'indice. A questo scopo, bisogna usare cor.test.

La funzione ''cor.test()''

Per valutare la significatività statistica del coefficiente di correlazione, e il relativo intervallo di confidenza, possiamo utilizzare la funzione cor.test(), che effettua un test t.

L'ipotesi nulla è che il valore di r sia uguale a 0, quella alternativa è che il coefficiente sia significativamente diverso da 0 (test a due code).

cor.test(cars$speed, cars$dist)
 
##   	 Pearson's product-moment correlation
##
##  data:  cars$speed and cars$dist
##  t = 9.464, df = 48, p-value = 1.49e-12
##  alternative hypothesis: true correlation is not equal to 0
##  95 percent confidence interval:
##   0.6816422 0.8862036
##  sample estimates:
##        cor 
##  0.8068949

Il numero dei gradi di libertà è n − 2 (si sottraggono le due medie al numero dei casi); l’ipotesi nulla può essere respinta (p = 0). L'intervallo di confidenza del 95% ha come estremi 0,68 e 0,89, ad indicare la “forbice” del valore nella popolazione da cui è stato estratto il campione.

Parametri e uso

x,y vettori numerici di uguale lunghezza
alternative ipotesi alternativa all'ipotesi nulla
method “pearson”, “kendall”, “spearman”
exact usato solo per i test d Kendall e Spearman: calcolo del p esatto. Le opzioni sono TRUE / FALSE. Il default è NULL
conf.level livello di confidenza
continuity usato nei test d Kendall e Spearman: correzione di continuità. Le opzioni sono TRUE / FALSE. Il default è FALSE

Script di esempio

E' possibile scaricare ed eseguire lo script dell'esempio:

coeff_corr.R
data("cars")
 
cor(cars$speed, cars$dist)
 
cor(cars)
 
cor.test(cars$speed, cars$dist)
r/analisi_bivariata/correlazione.txt · Ultima modifica: 26/10/2018 08:46 da admin