0Pricing
Learn AI with Python · Lezione

Correlazione e covarianza

Correlazione di Pearson e Spearman, matrice di covarianza e interpretazione della correlazione nel contesto del machine learning.

Correlazione e covarianza è una lezione Learn AI with Python gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Learn AI with Python, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Learn AI with Python include 4 lezioni in totale.

Misurare le relazioni

La covarianza e la correlazione quantificano il modo in cui due variabili variano insieme. Sono alla base della selezione delle feature, della teoria dei portafogli e dell’analisi esplorativa.

Covarianza

La covarianza è positiva quando le variabili crescono insieme, negativa quando una cresce mentre l’altra diminuisce. La sua grandezza dipende dalle unità di misura, rendendo difficile interpretare la covarianza grezza.

import numpy as np
x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 4, 5, 4, 6])
print(np.cov(x, y, ddof=1))   # 2x2 covariance matrix

La matrice di covarianza

np.cov restituisce una matrice: sulla diagonale ci sono le varianze, mentre fuori dalla diagonale c’è la covarianza tra le coppie. Si generalizza a molte variabili ed è alla base della PCA.

data = np.array([[1, 2, 3], [2, 4, 5], [3, 6, 7]], dtype=float)
print(np.cov(data.T))   # 3x3 covariance matrix of the columns

Correlazione: covarianza scalata

La correlazione di Pearson ridimensiona la covarianza nell’intervallo da -1 a 1 dividendola per il prodotto delle deviazioni standard, quindi non dipende dalle unità di misura ed è confrontabile.

print(np.corrcoef(x, y))   # 2x2 correlation matrix, diagonal is 1

Interpretare la correlazione

+1 indica una relazione lineare positiva perfetta, -1 una relazione lineare negativa perfetta, 0 nessuna relazione LINEARE. Valori vicini a 0 possono comunque nascondere una forte relazione non lineare.

Correlazione in pandas

df.corr() calcola simultaneamente le correlazioni a coppie tra tutte le colonne numeriche: è il modo più rapido per esplorare le relazioni in un dataset.

import pandas as pd
df = pd.DataFrame({"a": [1,2,3,4,5], "b": [2,4,5,4,6], "c": [9,7,6,5,3]})
print(df.corr())   # Pearson by default

Pearson vs Spearman

Pearson misura l'associazione LINEARE sui valori grezzi. Spearman lavora sui RANGHI, quindi rileva qualsiasi relazione monotona ed è resistente agli outlier.

from scipy import stats
x = np.array([1, 2, 3, 4, 100])
y = np.array([1, 2, 3, 4, 5])
print(stats.pearsonr(x, y).statistic)    # distorted by outlier
print(stats.spearmanr(x, y).statistic)   # 1.0 (perfectly monotonic)

Scelta del metodo

df.corr(method="spearman") imposta pandas per calcolare la correlazione per ranghi. Preferisca Spearman in presenza di outlier o di relazioni non lineari ma monotone; usi Pearson con dati lineari e privi di anomalie.

print(df.corr(method="spearman"))

La correlazione NON è causalità

Una correlazione forte non significa che una variabile causi l'altra. Un confondente nascosto potrebbe influenzarle entrambe. Si chieda sempre cos'altro potrebbe spiegare il legame.

Correlazione spuria

Con un numero sufficiente di variabili, alcune saranno correlate per puro caso. Le vendite di gelati e gli annegamenti sono correlati perché entrambi dipendono dal caldo estivo, non l'uno dall'altro. Valuti con scetticismo le correlazioni inattese.

Visualizzazione con una heatmap

Una heatmap della correlazione rende immediatamente visibili i pattern. Le coppie di feature fortemente correlate potrebbero essere ridondanti e candidate alla rimozione prima della modellazione.

# import seaborn as sns
# sns.heatmap(df.corr(), annot=True, cmap="coolwarm")

Verifica rapida

Metta alla prova le proprie conoscenze sulla correlazione.

Riepilogo

Strumenti per la correlazione:

  • La covarianza mostra la direzione, ma dipende dalle unità di misura; np.cov restituisce la matrice
  • La correlazione viene riscalata nell'intervallo -1..1: np.corrcoef, df.corr()
  • Pearson (lineare) vs Spearman (per ranghi, robusto, monotono)
  • La correlazione non è causalità; presti attenzione ai confondenti e ai legami spuri

Domande Frequenti

La lezione «Correlazione e covarianza» è gratuita?

Sì — il testo completo di «Correlazione e covarianza» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Learn AI with Python, passa a CoddyKit PRO. Il corso Learn AI with Python include 4 lezioni in totale.

Cosa imparerò in «Correlazione e covarianza»?

Correlazione di Pearson e Spearman, matrice di covarianza e interpretazione della correlazione nel contesto del machine learning. Eserciti Learn AI with Python con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Learn AI with Python?

Non è richiesta alcuna esperienza precedente. Learn AI with Python su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.

Quanto tempo richiede la lezione «Correlazione e covarianza»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Learn AI with Python?

Sì. Ogni lezione Learn AI with Python include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Statistiche descrittive e distribuzioni
  2. Probabilità e teorema di Bayes
  3. Verifica delle ipotesi
  4. Correlazione e covarianza
← Torna a Learn AI with Python