Come eseguire un test di correlazione in python (con esempio)
Un modo per quantificare la relazione tra due variabili è utilizzare il coefficiente di correlazione di Pearson , che misura l’associazione lineare tra due variabili .
Assume sempre un valore compreso tra -1 e 1 dove:
- -1 indica una correlazione lineare perfettamente negativa
- 0 indica alcuna correlazione lineare
- 1 indica una correlazione lineare perfettamente positiva
Per determinare se un coefficiente di correlazione è statisticamente significativo, è possibile calcolare il punteggio t e il valore p corrispondenti.
La formula per calcolare il t-score di un coefficiente di correlazione (r) è:
t = r * √ n-2 / √ 1-r 2
Il valore p viene quindi calcolato come il corrispondente valore p a due code per la distribuzione t con n-2 gradi di libertà.
Esempio: test di correlazione in Python
Per determinare se il coefficiente di correlazione tra due variabili è statisticamente significativo, puoi eseguire un test di correlazione in Python utilizzando la funzione Pearsonr della libreria SciPy .
Questa funzione restituisce il coefficiente di correlazione tra due variabili nonché il valore p a due code.
Ad esempio, supponiamo di avere le seguenti due tabelle in Python:
#create two arrays
x = [3, 4, 4, 5, 7, 8, 10, 12, 13, 15]
y = [2, 4, 4, 5, 4, 7, 8, 19, 14, 10]
Possiamo importare la funzione Pearsonr e calcolare il coefficiente di correlazione di Pearson tra le due tabelle:
from scipy. stats . stats import pearsonr #calculation correlation coefficient and p-value between x and y pearsonr(x, y) (0.8076177030748631, 0.004717255828132089)
Ecco come interpretare il risultato:
- Coefficiente di correlazione di Pearson (r): 0,8076
- Valore p bilaterale: 0,0047
Essendo il coefficiente di correlazione vicino a 1, questo ci dice che esiste una forte associazione positiva tra le due variabili.
E poiché il valore p corrispondente è inferiore a 0,05, concludiamo che esiste un’associazione statisticamente significativa tra le due variabili.
Si noti che possiamo anche estrarre il coefficiente di correlazione individuale e il valore p dalla funzione di Pearson :
#extract correlation coefficient (rounded to 4 decimal places) r = round(pearsonr(x, y)[ 0 ], 4) print (r) 0.8076 #extract p-value (rounded to 4 decimal places) p = round(pearsonr(x, y)[ 1 ], 4) print (p) 0.0047
Questi valori sono un po’ più facili da leggere rispetto all’output della funzione originale peppersonr .
Risorse addizionali
Le esercitazioni seguenti forniscono informazioni aggiuntive sui coefficienti di correlazione:
Un’introduzione al coefficiente di correlazione di Pearson
Cos’è considerata una correlazione “forte”?
Le cinque ipotesi della correlazione di Pearson