Correlazione e visualizzazione dei dati
In questa pagina 6
Dopo i momenti e i quartili (Statistica per il machine learningI dati di un problema ML si organizzano nella matrice di progetto $X$ ($n$ osservazioni, $p$ variabili). La statistica serve a capirli, ripulirli e prepararli: i momenti (media $\mu$, varianza $\sigma^2$, asimmetria, curtosi), i quartili con lo scarto interquartile $\mathrm{IQR}=Q_3-Q_1$ (all'esame senza interpolazione), la moda per i dati categorici. Con queste quantità si imputano i dati mancanti (media o mediana), si eliminano le variabili costanti e si standardizza con lo z-score $z=(x-\mu)/\sigma$, usando sempre media e deviazione standard del solo training set.Statistica per il machine learning →) servono strumenti per confrontare due variabili tra loro e per guardare i dati (Lezione 4 · Correlazione e visualizzazione dei dati). Gli esercizi sono Esercizio - Correlazione di Pearson su tre e quattro osservazioni e il laboratorio (Lezione 6 · Laboratorio di statistica, visualizzazioni e PCA); il passo successivo, con più variabili alla volta, è Analisi delle componenti principali (PCA)Con $p>3$ variabili non si può disegnare il dataset. La PCA (analisi delle componenti principali) lo proietta su pochi assi ortogonali, le componenti principali: dopo aver centrato (e di solito standardizzato) i dati, le direzioni sono gli autovettori della matrice di covarianza $S=\frac1{n-1}X_c^TX_c$ ordinati per autovalore $\lambda_1\ge\lambda_2\ge\dots$; $\lambda_k$ è la varianza lungo la componente $k$ e $\lambda_k/\sum\lambda_j$ la frazione spiegata (scree plot). Trovare la retta che minimizza le distanze dai punti equivale a massimizzare la varianza delle proiezioni (Pitagora). È lineare e conserva la struttura globale, non quella locale; t-SNE e UMAP sono alternative non lineari solo per visualizzare. Approfondimento: non nel programma di Telecomunicazioni.Analisi delle componenti principali (PCA) →.
La correlazione
Definizione (correlazione). Misura statistica del grado con cui due variabili si muovono una rispetto all'altra: ne quantifica forza e direzione. I suoi valori stanno tra e :
- : correlazione positiva perfetta (se una variabile cresce, l'altra cresce in proporzione);
- : nessuna correlazione (nessuna relazione, almeno lineare);
- : correlazione negativa perfetta (se una cresce, l'altra decresce in proporzione).
Coefficiente di Pearson
Formula (coefficiente di correlazione di Pearson). Per due variabili osservate su campioni, con medie : Il numeratore rappresenta la covarianza (a meno del fattore ) tra e (Covarianza e coefficiente di correlazioneCov(X, Y) = E[(X − E X)(Y − E Y)] = E[XY] − E[X]E[Y] misura quanto X e Y variano insieme; è bilineare, Cov(X, X) = Var(X), Var(X + Y) = Var X + Var Y + 2Cov(X, Y); ρ = Cov / (σ_X σ_Y) sta in [−1, 1] e vale ±1 solo per legami lineari. Indipendenti ⇒ non correlate, ma non viceversa (tranne per i vettori gaussiani).Covarianza e coefficiente di correlazione →); il denominatore è il prodotto delle deviazioni standard (a meno degli stessi fattori). Misura la relazione lineare.
Esempio. , . Medie: , . Scarti: , . Numeratore: . Somme dei quadrati: e . Allora .
Perché si divide per le deviazioni standard. Il numeratore da solo cambia se si cambia l'unità di misura (metri o centimetri): dividendo per si ottiene un numero senza unità, sempre tra e (disuguaglianza di Cauchy-Schwarz, vedi Prodotto scalare, norma e angoliIl prodotto scalare aggiunge a uno spazio vettoriale lunghezze e angoli: norma, disuguaglianza di Cauchy-Schwarz, angolo tra vettori in R^n, ortogonalità, proiezione su una retta, aree e volumi con il determinante della matrice dei prodotti scalari.Prodotto scalare, norma e angoli →: è il coseno dell'angolo tra i due vettori degli scarti dalla media). Il segno è quello della covarianza: positivo se le due variabili stanno insieme sopra o insieme sotto la media, negativo se quando una è sopra l'altra è sotto.
Come si legge . Valori vicini a indicano una relazione lineare forte; vicini a nessuna relazione lineare. Non è detto che non ci sia una relazione di altro tipo (per esempio con simmetrico intorno a ha ).
Secondo esempio, con segno negativo: , . Medie , . Scarti e . Numeratore: . Quadrati: e . Quindi La relazione è decrescente e abbastanza forte, ma non perfetta.
Grafico interattivo: X = [0, 1, 2, 5] e Y = [4, 1, 3, 0]: i quattro punti e la retta dei minimi quadrati y = 3,29 − 0,64 x, con r ≈ −0,76 (relazione decrescente, non perfetta)
Altre correlazioni
- Correlazione di Spearman (): misura una relazione monotona (non per forza lineare). Invece dei valori usa i ranghi (la posizione nell'ordinamento) e calcola Pearson sui ranghi.
- Tau di Kendall (): misura l'accordo tra due classifiche, contando coppie concordanti e discordanti.
Esempio. e : la relazione è sempre crescente ma non lineare. Pearson dà ; Spearman dà , perché i ranghi coincidono.
In questo corso «correlazione» significa sempre correlazione di Pearson.
Correlazione non implica causalità
Se due variabili sono correlate, non è detto che una sia causa dell'altra. Spesso si pensa a (la causa produce l'effetto ), mentre la realtà può essere una causa comune non visibile che produce due effetti : questi risultano correlati senza che l'uno causi l'altro. Esistono molti esempi di correlazioni spurie tra grandezze che non hanno nulla a che fare.
Esempio. In estate aumentano sia i gelati venduti sia gli annegamenti: la causa comune non osservata è il caldo, non è il gelato a far annegare.
A che cosa serve la correlazione nel ML
- Capire quali variabili contano. In un problema supervisionato, la correlazione tra ciascuna feature e il target dice quali feature sono rilevanti. Nel dataset California Housing (prezzo mediano delle case) la matrice di correlazione mostra che il target
MedHouseValha correlazione con il reddito medianoMedInc, mentre conPopulationha (quasi nulla). - Ridurre il dataset. Due variabili con correlazione molto alta in valore assoluto (anche , cioè molto negativa) contengono lo stesso contenuto informativo: per efficienza e per soluzioni più semplici ne basta una. Nello stesso dataset
AveRoomseAveBedrmshanno ,LatitudeeLongitudehanno .
La matrice di correlazione (, con sulla diagonale e simmetrica) si visualizza con una heatmap.
Esempio. Se due feature e hanno e la correlazione di con il target è e quella di è , si tiene e si elimina .
Gli indicatori di sintesi non bastano
Media, deviazione standard e correlazione possono ingannare.
- Quartetto di Anscombe. Quattro insiemi di dati con le stesse statistiche di sintesi (media di uguale a , media di uguale a , varianza di , correlazione , stessa retta di regressione ) ma completamente diversi: uno è quasi lineare con rumore, uno è una curva, uno è lineare con un solo outlier, uno ha tutte le uguali tranne un punto.
- Datasaurus: dozzine di insiemi di dati con lo stesso valore di media, deviazione standard e correlazione, ma con forme molto diverse (compreso un dinosauro).
Morale: dopo gli indicatori numerici bisogna guardare i dati, con visualizzazioni scelte bene.
I grafici principali
Grafici su una variabile (1D)
| Grafico | Che cosa mostra |
|---|---|
| Bar plot | dati categorici con barre separate; l'altezza è il conteggio, la media o un'altra statistica della categoria |
| Istogramma | distribuzione di un dato continuo: i valori sono raggruppati in intervalli (bin) e si mostra la frequenza; le barre si toccano perché i dati sono continui |
| KDE (kernel density estimate) | stima non parametrica della densità di probabilità: una curva liscia, a differenza dell'istogramma a bin |
| Box plot | cinque numeri: minimo, , mediana, , massimo; gli outlier sono punti oltre i «baffi» |
| Violin plot | box plot e KDE insieme: forma della distribuzione e riassunti |
KDE. Si mette una funzione kernel (per esempio una campana gaussiana, Distribuzione gaussiana (normale)N(μ, σ²) ha densità e^(−(x−μ)²/(2σ²)) / √(2πσ²), a campana centrata in μ con larghezza σ; media μ, varianza σ²; si standardizza con Z = (X − μ)/σ ~ N(0, 1) e si calcola P(X ≤ x) = Φ((x − μ)/σ), con Φ(−z) = 1 − Φ(z); aX + b è ancora gaussiana, N(aμ + b, a²σ²).Distribuzione gaussiana (normale) →) centrata su ogni dato e si sommano i contributi (è una stima della densità, Variabili aleatorie assolutamente continueX è assolutamente continua se F_X(x) = ∫ da −∞ a x di f_X(t) dt per una densità f_X ≥ 0 con integrale 1; allora P(a < X ≤ b) = ∫ da a a b di f_X, P(X = x) = 0 per ogni x, f_X = F_X' dove F_X è derivabile, E[g(X)] = ∫ g(x) f_X(x) dx, e varianza, momenti e disuguaglianze funzionano come nel caso discreto con gli integrali al posto delle somme.Variabili aleatorie assolutamente continue →): dove è la larghezza di banda (bandwidth), che controlla quanto è largo ogni kernel: piccolo dà una curva a punte, grande una curva troppo liscia. Si usa per stimare e visualizzare la distribuzione vera e quando l'istogramma è troppo grossolano o fuorviante, o per confrontare più distribuzioni.
Box plot. I baffi arrivano al valore più estremo che sta entro da e da ; oltre sono disegnati come punti isolati (outlier).
Esempio. Dati (): con la convenzione senza interpolazione , , . Il limite superiore dei baffi è : il valore lo supera ed è un outlier.
Grafico interattivo: KDE gaussiana di tre punti (0, 1 e 4) per due larghezze di banda: con h = 0,4 si vedono le tre campane separate, con h = 1,5 la curva è liscia ma nasconde la separazione
Grafici su due variabili (2D)
- Heatmap di correlazione: la matrice di correlazione con colore proporzionale al valore; mostra a colpo d'occhio le relazioni.
- Scatter plot: un punto per osservazione, una variabile su e una su ; mostra tendenze, correlazioni, relazioni lineari o non lineari e rivela outlier. Si può arricchire con colore, dimensione o raggruppamento per codificare altre variabili.
- Matrice di scatter plot (pair plot): griglia di scatter plot per tutte le coppie di variabili; sulla diagonale si mettono istogrammi o densità della singola variabile. Utile per trovare correlazioni, andamenti, gruppi e outlier.
I grafici 3D si possono costruire ma sono difficili da leggere: i punti si sovrappongono e la prospettiva falsa le distanze. Per dati con molte variabili serve un altro approccio: la riduzione di dimensione (Analisi delle componenti principali (PCA)Con $p>3$ variabili non si può disegnare il dataset. La PCA (analisi delle componenti principali) lo proietta su pochi assi ortogonali, le componenti principali: dopo aver centrato (e di solito standardizzato) i dati, le direzioni sono gli autovettori della matrice di covarianza $S=\frac1{n-1}X_c^TX_c$ ordinati per autovalore $\lambda_1\ge\lambda_2\ge\dots$; $\lambda_k$ è la varianza lungo la componente $k$ e $\lambda_k/\sum\lambda_j$ la frazione spiegata (scree plot). Trovare la retta che minimizza le distanze dai punti equivale a massimizzare la varianza delle proiezioni (Pitagora). È lineare e conserva la struttura globale, non quella locale; t-SNE e UMAP sono alternative non lineari solo per visualizzare. Approfondimento: non nel programma di Telecomunicazioni.Analisi delle componenti principali (PCA) →). Grafici per la valutazione dei modelli (matrice di confusione, curva ROC) arriveranno in Metriche di classificazioneIn classificazione binaria ogni previsione è vero positivo (TP), vero negativo (TN), falso positivo (FP, errore di tipo I) o falso negativo (FN, errore di tipo II). Da queste quattro quantità: accuracy $=\frac{TP+TN}{TP+TN+FP+FN}$, specificità $=\frac{TN}{TN+FP}$, precision $=\frac{TP}{TP+FP}$, recall $=\frac{TP}{TP+FN}$, e la loro media armonica $F_1=\frac{2PR}{P+R}$. Con dati sbilanciati l'accuracy inganna (un modello che predice sempre la classe maggioritaria ha 99%): si usano precision, recall, F1, ROC-AUC, la cross-validation stratificata e il riequilibrio con undersampling o oversampling (non SMOTE). Cambiando la soglia sulla probabilità si ottiene la curva ROC (TPR contro FPR) e l'area AUC. Approfondimento: non nel programma di Telecomunicazioni.Metriche di classificazione →.
Codice
import pandas as pd, seaborn as sns
df = pd.read_csv("ML_resources/california_housing.csv")
corr = df.corr() # matrice di correlazione di Pearson
sns.heatmap(corr, annot=True, cmap="coolwarm") # heatmap
sns.pairplot(df.sample(1000)) # matrice di scatter plot (campione per rapidità)
df.hist(bins=20); df.boxplot() # istogrammi e box plotdf.corr() con pandas e np.corrcoef(X, rowvar=False) con NumPy danno lo stesso risultato (con NumPy per default le righe sono variabili, quindi con le osservazioni in riga serve rowvar=False).
Errori tipici
- Dedurre una relazione causale da una correlazione elevata.
- Concludere che significa «nessuna relazione»: vale solo per relazioni lineari.
- Eliminare una variabile perché poco correlata con il target quando la relazione è non lineare.
- Fidarsi dei soli indicatori numerici senza guardare i dati (Anscombe, Datasaurus).
- Scambiare istogramma e bar plot: il primo è per dati continui e ha barre contigue.
Versione ripasso
Formula (Pearson). : covarianza su prodotto delle deviazioni standard. Misura solo la relazione lineare; perfetta positiva, nessuna lineare, perfetta negativa.
Esempio. , : numeratore , quadrati e , . Con , : .
Altre. Spearman : Pearson sui ranghi, relazione monotona; Kendall : coppie concordanti e discordanti. Nel corso correlazione = Pearson. Correlazione causalità: una causa comune non visibile può generare due effetti correlati.
Uso nel ML. (1) capire quali feature sono legate al target (California Housing: MedInc–target ); (2) ridurre il dataset: se tra due feature è molto alto contengono la stessa informazione, se ne tiene una (AveRooms–AveBedrms ).
Indicatori ingannevoli. Quartetto di Anscombe e Datasaurus: stesse medie, varianze e correlazione, dati completamente diversi: guardare i grafici.
Grafici. 1D: bar plot (categorie, barre separate), istogramma (continuo, barre contigue), KDE con larghezza di banda, box plot (min, , mediana, , max; outlier oltre ), violin plot (KDE+box plot). 2D: heatmap di correlazione, scatter plot, pair plot. 3D difficile da leggere.
Errori tipici: causalità dedotta dalla correlazione; come assenza di relazione; fidarsi dei soli numeri.
Esercizi su questo argomento
- Esercizio - Analisi esplorativa e preprocessing - macchinario, abitazioni, case di Ames e incendi
- Esercizio - Analisi esplorativa e preprocessing di un dataset sbilanciato (Adult)
- Esercizio - Correlazione di Pearson su tre e quattro osservazioni
- Esercizio - Cross-validation k-fold e Monte Carlo per OLS e ridge sul dataset Advertising
- Esercizio - PCA da zero sul dataset California Housing
- Esercizio - Rete feed-forward su dati tabulari sbilanciati (appello)
- Esercizio - Statistica descrittiva, quartili e standardizzazione di un dataset
- Esercizio - Test di esempio della parte teorica (simulazione d'esame)