Introduzione alla Correlazione

Introduction to Correlation.

Impara le basi della correlazione e del suo utilizzo in data science e machine learning.

Dopo aver letto questo articolo, il lettore imparerà quanto segue:

  • Definizione di correlazione
  • Correlazione positiva
  • Correlazione negativa
  • Assenza di correlazione
  • Definizione matematica della correlazione
  • Implementazione in Python del coefficiente di correlazione
  • Matrice di covarianza
  • Implementazione in Python della matrice di covarianza

Correlazione

La correlazione misura il grado di co-movimento di due variabili.

Correlazione positiva

Se la variabile Y aumenta quando la variabile X aumenta, allora X e Y sono positivamente correlati come mostrato di seguito:

Correlazione negativa

Se la variabile Y diminuisce quando la variabile X aumenta, allora X e Y sono negativamente correlati come mostrato di seguito:

Assenza di correlazione

Quando non c’è una relazione evidente tra X e Y, diciamo che X e Y sono non correlati, come mostrato di seguito:

Definizione matematica della correlazione

Siano X e Y due caratteristiche date da

X = (X1 , X2 , . . ., Xn ) Y = (Y1 , Y2 , . . ., Yn )

Il coefficiente di correlazione tra X e Y è dato da

dove mu e sigma rappresentano la media e la deviazione standard, rispettivamente, e Xstd è la caratteristica standardizzata per la variabile X. Il coefficiente di correlazione è il prodotto scalare tra le caratteristiche standardizzate di X e Y. Il coefficiente di correlazione assume valori compresi tra -1 e 1. Un valore vicino a 1 significa una forte correlazione positiva, un valore vicino a -1 significa una forte correlazione negativa e un valore vicino a zero significa bassa correlazione o assenza di correlazione.

Implementazione in Python del coefficiente di correlazione

import numpy as np

import matplotlib.pyplot as plt

n = 100

X = np.random.uniform(1,10,n)

Y = np.random.uniform(1,10,n)

plt.scatter(X,Y)

plt.show()

X_std = (X - np.mean(X))/np.std(X)

Y_std = (Y - np.mean(Y))/np.std(Y)

np.dot(X_std, Y_std)/n

0.2756215872210571

# Usando numpy

np.corrcoef(X, Y)

array([[1.        , 0.27562159],
       [0.27562159, 1.        ]])

Matrice di covarianza

La matrice di covarianza è una matrice molto utile nell’ambito della scienza dei dati e dell’apprendimento automatico. Fornisce informazioni sulla co-movimentazione (correlazione) tra le caratteristiche di un dataset. La matrice di covarianza è data da:

dove mu e sigma rappresentano la media e la deviazione standard di una determinata caratteristica. Qui n è il numero di osservazioni nel dataset e i pedici j e k assumono valori 1, 2, 3, . . ., m, dove m è il numero di caratteristiche del dataset. Ad esempio, se un dataset ha 4 caratteristiche con 100 osservazioni, allora n = 100 e m = 4, quindi la matrice di covarianza sarà una matrice 4 x 4. Gli elementi diagonali saranno tutti 1, poiché rappresentano la correlazione tra una caratteristica e se stessa, che per definizione è pari a uno.

Implementazione in Python della matrice di covarianza

Supponiamo di voler calcolare il grado di correlazione tra 4 titoli tecnologici (AAPL, TSLA, GOOGL e AMZN) nel corso di un periodo di 1000 giorni. Il nostro dataset ha m = 4 caratteristiche e n = 1000 osservazioni. La matrice di covarianza sarà quindi una matrice 4 x 4, come mostrato nella figura qui sotto.

Matrice di covarianza tra i titoli tecnologici. Immagine di Author.

Il codice per produrre la figura sopra può essere trovato qui: Algebra Lineare Essenziale per Data Science e Machine Learning .

Sommario

In sintesi, abbiamo esaminato le basi della correlazione. La correlazione definisce il grado di co-movimento tra 2 variabili. Il coefficiente di correlazione assume valori compresi tra -1 e 1. Un valore vicino allo zero significa una bassa correlazione o non correlazione. Benjamin O. Tayo è un fisico, educatore di Data Science e scrittore, nonché proprietario di DataScienceHub. In precedenza, Benjamin insegnava ingegneria e fisica presso U. of Central Oklahoma, Grand Canyon U. e Pittsburgh State U.