Come calcolare la correlazione tra due colonne in pandas
È possibile utilizzare la seguente sintassi per calcolare la correlazione tra due colonne in un DataFrame panda:
df[' column1 ']. corr (df[' column2 '])
Gli esempi seguenti mostrano come utilizzare questa sintassi nella pratica.
Esempio 1: calcolare la correlazione tra due colonne
Il codice seguente mostra come calcolare la correlazione tra le colonne in un DataFrame panda:
import pandas as pd #createDataFrame df = pd. DataFrame ({' points ': [25, 12, 15, 14, 19, 23, 25, 29], ' assists ': [5, 7, 7, 9, 12, 9, 9, 4], ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]}) #view first five rows of DataFrame df. head () points assists rebounds 0 25 5 11 1 12 7 8 2 15 7 10 3 14 9 6 4 19 12 6 #calculate correlation between points and assists df[' points ']. corr (df[' assists ']) -0.359384
Il coefficiente di correlazione è -0,359 . Poiché questa correlazione è negativa, ciò ci dice che i punti e gli assist sono correlati negativamente.
In altre parole, all’aumentare dei valori nella colonna dei punti, i valori nella colonna degli assist tendono a diminuire.
Esempio 2: calcolare la significatività della correlazione
Per determinare se un coefficiente di correlazione è statisticamente significativo o meno, è possibile utilizzare la funzione peppersonr(x, y) dalla libreria SciPy .
Il codice seguente mostra come utilizzare in pratica questa funzione:
import pandas as pd from scipy. stats import pearsonr #createDataFrame df = pd. DataFrame ({' points ': [25, 12, 15, 14, 19, 23, 25, 29], ' assists ': [5, 7, 7, 9, 12, 9, 9, 4], ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]}) #calculate p-value of correlation coefficient between points and assists pearsonr(df[' points '], df[' assists ']) (-0.359384, 0.38192)
Il primo valore dell’output visualizza il coefficiente di correlazione (-0,359384) e il secondo valore visualizza il valore p (0,38192) associato a tale coefficiente di correlazione.
Poiché il valore p non è inferiore a α = 0,05, concluderemmo che la correlazione tra punti e assist non è statisticamente significativa.
Risorse addizionali
Come calcolare la correlazione del rango di Spearman in Python
Come calcolare la correlazione parziale in Python
Come calcolare la correlazione incrociata in Python