Correlation Field Guide

Un coefficiente è un riassunto, e ogni riassunto butta via qualcosa. Quale misura di correlazione vede quale tipo di dipendenza, e cosa fare davvero quando due feature portano la stessa informazione.

Ogni numero di questa pagina è calcolato dal tuo browser a partire da un generatore con seme: niente è precalcolato e niente viene inviato da nessuna parte.

Indice

Parte prima

Misurare la dipendenza

Ognuno dei coefficienti qui sotto risponde a una domanda leggermente diversa. Pearson chiede quanto bene ci sta una retta. Spearman chiede se l'ordinamento è d'accordo. La correlazione di distanza chiede se le due variabili siano indipendenti o no. Dagli gli stessi dati e non saranno d'accordo — e quel disaccordo è già di per sé la diagnosi.

Cinque misure, un campione solo

Scegli una forma. Tutti e cinque i coefficienti vengono ricalcolati sugli stessi 200 punti, così li si guarda mentre si separano. Passa ai ranghi per vedere il grafico esattamente come lo vedono Spearman e Kendall: i valori sono sostituiti dalla loro posizione nell'ordinamento.

Forma

Rumore

0,30

Vista

Grafico di dispersione del campione sintetico scelto

Campione sintetico, n = 200, estratto da un generatore con seme, così ogni lettura è riproducibile. L'informazione mutua usa 7 bin a frequenza uguale per asse, normalizzati per √H(X)H(Y). Le due misure senza segno sono distorte verso l'alto a n finito: su dati genuinamente indipendenti, a questa numerosità, la correlazione di distanza vale in media 0,12 e l'informazione mutua normalizzata 0,05. Le soglie citate sotto i numeri sono il 95° percentile sotto indipendenza, misurato per simulazione — una lettura sotto la soglia vuol dire non c'è niente, non dipendenza debole.

Scegliere in base al tipo delle due variabili

Quasi tutta la scelta è già decisa prima ancora di guardare i dati: le scale di misura delle due variabili escludono da sole quasi tutte le alternative.

Variabile A Variabile B Scelta di default Cambia misura quando
ContinuaContinua Pearson r Code pesanti, valori anomali, o una relazione curva ma monotona → Spearman
OrdinaleOrdinale Kendall τb Pochi pari merito e n ben sopra ~50 → Spearman si legge più facilmente
ContinuaBinaria Punto-biseriale rpb La divisione binaria è molto sbilanciata → riporta le medie dei gruppi e una misura di effetto
BinariaBinaria Phi φ Vuoi un rapporto interpretabile → odds ratio o lift
Nominale (k livelli)Nominale (m livelli) V di Cramér Molti livelli rari — la V è distorta verso l'alto → usa la variante corretta
ContinuaNominale (k livelli) Rapporto di correlazione η² Gruppi fortemente non normali → ε² da un test di Kruskal–Wallis
QualunqueQualunque Correlazione di distanza Vuoi vedere dove sta la dipendenza → la tabella congiunta a bin che sta dietro all'informazione mutua
Due variabili, con una terza da tenere ferma Correlazione parziale rxy·z Vuoi togliere l'effetto di z da un lato solo → semi-parziale

I coefficienti

Intervallo, assunzioni, e il modo di rompersi che dà davvero fastidio nella pratica.

r

Correlazione di Pearson

momento-prodotto
rxy = Σi(xi − x)(yi − y) √Σi(xi − x)² · Σi(yi − y)²
vede: lineare da −1 a 1 scala a intervalli
Si leggeCovarianza divisa per le due deviazioni standard. r² è la quota di varianza di y spiegata da una retta in x.
AssumeUna relazione lineare e varianza finita. Non la normalità né errori simmetrici: quelli servono solo al p-value.
Si usaQuando le due variabili sono continue e ti interessa davvero l'aderenza a una retta: modelli lineari, PCA, tutto ciò che è costruito su una matrice di covarianza.
AttenzioneUn solo punto a leva alta può portare r da 0 a 0,8. La curvatura gliela fa leggere zero su una relazione perfetta. Restringere l'intervallo (filtrare il campione) la attenua.
ρ

Correlazione di Spearman

per ranghi
ρ = 1 − 6 Σi di² n(n² − 1)
vede: monotona da −1 a 1 scala ordinale
Si leggePearson calcolato sui ranghi. La scorciatoia qui sopra vale solo senza pari merito; con i pari merito si calcolano prima i ranghi e poi si applica Pearson.
AssumeSolo che la relazione sia monotona e che i dati si possano ordinare. di è la differenza di rango dell'osservazione i.
Si usaVariabili asimmetriche, valori anomali, scale ordinali, o una relazione che ti aspetti monotona ma non dritta: prezzi, conteggi, durate, item di un questionario.
AttenzioneResta cieca alle forme non monotone (una U continua a leggere zero). ρ² non è una quota di varianza. Passare ai ranghi butta via la grandezza dei salti, che a volte era proprio quello che ti interessava.
τ

Tau-b di Kendall

concordanza
τb = C − D √(n0 − n1)(n0 − n2)
vede: monotona da −1 a 1 regge i pari merito
Si leggeUna differenza fra probabilità: P(concordanti) − P(discordanti) su tutte le coppie. C e D contano le coppie che concordano e quelle che discordano; n0 è il totale delle coppie, n1 e n2 quelle pari merito su x e su y.
AssumeNient'altro che un ordinamento. È la più libera da assunzioni delle tre.
Si usaCampioni piccoli, tanti pari merito, o quando vuoi un coefficiente con un significato probabilistico diretto da poter dire a chi ti ascolta.
AttenzioneSugli stessi dati è numericamente più piccola di Spearman — grosso modo τ ≈ ⅔ρ su dati regolari — quindi non confrontare mai le due fra un resoconto e l'altro. Il calcolo ingenuo è O(n²); l'algoritmo di Knight lo porta a O(n log n) ed è quello che usa scipy.stats.kendalltau.
rpb

Punto-biseriale

continua ↔ binaria
rpb = M1 − M0 sn √ n1n0n²
vede: scarto fra medie da −1 a 1 = Pearson
Si leggeLa distanza standardizzata fra le medie dei due gruppi, scalata da quanto è bilanciata la divisione. È algebricamente identica a Pearson con la binaria codificata 0/1: non c'è nessuno stimatore in più da implementare.
AssumeUna dicotomia vera. Se la binaria è nata tagliando una variabile continua, la parente giusta è la correlazione biseriale.
Si usaPer passare in rassegna feature continue contro un target binario, o una bandierina binaria contro un esito continuo.
AttenzioneIl bilanciamento delle classi le impedisce di arrivare a ±1: una divisione 95/5 tiene rpb ben sotto 1 anche quando i due gruppi non si sovrappongono per niente — il tetto viene dal confronto fra una marginale a due punti e una continua distribuita. Confronta solo feature con bilanciamento simile.
V

V di Cramér

nominale ↔ nominale
V = √ χ² n · min(k − 1, m − 1)
vede: qualunque associazione da 0 a 1 senza segno
Si leggeLa statistica χ² della tabella di contingenza, normalizzata perché non possa superare 1. Su una tabella 2×2 si riduce a |φ|.
AssumeAbbastanza osservazioni per cella perché il χ² voglia dire qualcosa: la regola pratica è un conteggio atteso di 5.
Si usaQuando tutte e due le variabili sono categorie senza ordine: paese, dispositivo, linea di prodotto, codice di errore.
AttenzioneÈ fortemente distorta verso l'alto quando una delle due variabili ha molti livelli rispetto a n: una colonna di identificativi risulterà "associata" a tutto. Usa la versione corretta (Bergsma 2013: al posto di φ² = χ²/n si mette max(0, φ² − (k−1)(m−1)/(n−1)) e si restringono k e m allo stesso modo), e non ordinare mai le feature per V grezza fra cardinalità diverse.
η²

Rapporto di correlazione

continua ↔ nominale
η² = Σg ng(yg − y)² Σi(yi − y)²
vede: separazione fra gruppi da 0 a 1 = ANOVA
Si leggeLa quota di varianza di y spiegata dal sapere a quale gruppo appartiene una riga. Somma dei quadrati fra i gruppi sul totale.
AssumeNiente sull'ordine dei gruppi — è proprio questo il punto. È la misura di effetto dell'ANOVA a una via.
Si usaPer chiedersi se una feature categorica porti informazione su un target numerico, o se una feature numerica sia ridondante rispetto a una categoria.
AttenzioneAnche questa è gonfiata dall'alta cardinalità: con un gruppo per riga, η² vale esattamente 1. Usa la convalida incrociata, oppure l'ω² corretto.
dCor

Correlazione di distanza

Székely–Rizzo
dCor²(X,Y) = dCov²(X,Y) √dVar²(X) dVar²(Y)
vede: qualunque dipendenza da 0 a 1 senza segno
Si leggeLa correlazione di Pearson fra le matrici delle distanze a coppie doppiamente centrate di X e Y. La sua proprietà caratteristica: dCor = 0 se e solo se le due sono indipendenti.
AssumeMomenti primi finiti. Funziona anche su vettori di dimensione diversa, cosa che la r a coppie non sa fare.
Si usaQuando sospetti una relazione che le misure lineari si stanno perdendo, o quando ti serve una statistica di screening che non restituisca zero in silenzio su una dipendenza vera.
AttenzioneO(n²) in memoria e in tempo: sopra le ~10 mila righe conviene campionare. Non dà né direzione né forma: un valore alto ti dice di andare a fare il grafico di quella coppia, nient'altro.
I

Informazione mutua

guadagno di informazione
I(X;Y) = ΣxΣy p(x,y) log p(x,y) p(x)p(y)
vede: qualunque dipendenza da 0 a ∞ dipende dallo stimatore
Si leggeQuanti nat di incertezza su Y spariscono una volta che conosci X. Vale zero esattamente quando sono indipendenti. Normalizzandola per le entropie si ottiene un numero fra 0 e 1, confrontabile fra coppie diverse.
AssumeNiente sulla forma della relazione — ma per variabili continue devi scegliere uno stimatore di densità, e la scelta sposta il numero.
Si usaQuando in una stessa rassegna ci sono tipi di variabile diversi, o quando vuoi una misura sola che valga per categorie e numeri insieme.
AttenzioneÈ distorta verso l'alto con n piccolo: variabili indipendenti prendono più di zero, e la distorsione cresce con il numero di bin. Fissa la binatura per tutte le coppie prima di ordinare le feature, oppure usa uno stimatore basato sui k vicini più prossimi.
rxy·z

Correlazione parziale

tenendo fermo z
rxy·z = rxy − rxzryz √(1 − rxz²)(1 − ryz²)
vede: lineare residua da −1 a 1 multivariata
Si leggeLa correlazione fra i residui di x e di y dopo che ciascuno è stato regredito su z. In forma matriciale, l'inversa della covarianza normalizzata e cambiata di segno: la matrice di precisione.
AssumeChe le relazioni con la variabile di controllo siano lineari. Per un controllo generale, si regredisce con un modello flessibile e si correlano i residui.
Si usaQuando due feature sembrano correlate solo perché seguono tutte e due una terza cosa — il tempo, la dimensione, la zona. Separa i motori comuni dalla ridondanza vera e propria.
AttenzioneCondizionare su un collider crea correlazione che prima non c'era. Su quali variabili si controlla è un'affermazione causale, non una comodità statistica.
φ

Coefficiente phi

binaria ↔ binaria
φ = ad − bc √(a+b)(c+d)(a+c)(b+d)
vede: associazione 2×2 da −1 a 1 = Pearson
Si leggePearson su due variabili 0/1, scritta in funzione dei quattro conteggi a b c d della tabella 2×2.
AssumeDue dicotomie vere.
Si usaPer controllare se due bandierine binarie — due regole, due etichette, due colonne one-hot — stiano portando lo stesso segnale.
AttenzioneCome la punto-biseriale, il suo massimo è limitato dalle marginali: due eventi rari con frequenze di base diverse — poniamo 1% e 10% — possono essere l'uno implicato dall'altro e segnare comunque φ ≈ 0,3. Riporta l'odds ratio accanto.

Quattro cose che un coefficiente non ti dice

La forma

Il quartetto di Anscombe e il Datasaurus sono le dimostrazioni classiche: nuvole di punti completamente diverse che condividono le stesse medie, le stesse varianze e la stessa r alla seconda cifra. Fai il grafico della coppia prima di agire sul numero.

La direzione della causa

Un coefficiente è simmetrico — rxy = ryx — e quindi non può contenere informazione sulla direzione nemmeno in linea di principio. Tutto ciò che è causale viene dal disegno dello studio, non dalla statistica.

Se il campione è una popolazione sola

Paradosso di Simpson: una relazione negativa dentro ogni sottogruppo può risultare positiva sul totale. Prova la forma due gruppi nel laboratorio. Chiediti sempre che cosa sono le righe.

Quanto crederci

Con n = 20, l'intervallo al 95% attorno a una r di 0,5 va all'incirca da 0,07 a 0,77. Fai il bootstrap del coefficiente prima di costruire una decisione sulla terza cifra decimale.

Parte seconda

Gestire feature correlate

La collinearità non è un difetto di qualità dei dati da ripulire. È un'affermazione su che cosa i tuoi dati riescono e non riescono a identificare. Prima di correre ai ripari, sii preciso su quale delle due cose rompe davvero — perché una la rompe sempre e l'altra la lascia sempre stare.

Che cosa rompe e che cosa no

Rompe: i singoli coefficienti

Quando due feature si muovono insieme, tante combinazioni diverse dei loro pesi si adattano ai dati quasi altrettanto bene. Gli errori standard si gonfiano, i segni cambiano da una ristima all'altra, e "la feature x vale 0,4" smette di essere una frase difendibile.

Lascia stare: le previsioni

La superficie stimata è stabile anche quando i coefficienti non lo sono, quindi l'errore fuori campione si muove appena. Se al modello si chiede solo y_hat, la collinearità può non costarti niente.

Rompe: attribuzione e importanza

Gli ensemble di alberi si dividono a caso fra feature correlate, spartendo il merito e facendole sembrare tutte deboli. L'importanza per permutazione le sottostima tutte, perché l'informazione sopravvive nella gemella.

Lascia stare: le combinazioni identificabili

Anche a r = 0,99 la somma dei due coefficienti è stimata con precisione; instabile è solo la ripartizione fra i due. E spesso la somma è proprio la quantità che ti serviva.

Che cosa fa la collinearità a un coefficiente

Un caso da manuale, simulato dal vivo: y = x₁ + x₂ + ε, quindi i due coefficienti veri valgono esattamente 1. Ogni punto è una ristima dello stesso modello su un campione nuovo di 60 righe. Alza la correlazione fra x₁ e x₂ e guarda la nuvola stirarsi lungo la retta dove la somma resta 2: i dati fissano il totale e non dicono quasi niente sulla ripartizione.

corr(x₁, x₂)

0,90

Ridge λ

0,00
Coefficienti stimati su 240 ristime
una ristima del modello valore vero (1, 1)

Linea tratteggiata: tutte le coppie di coefficienti che sommano a 2. Al crescere della correlazione la nuvola ci collassa sopra.

240 campioni indipendenti di n = 60, σ = 1. L'errore fuori campione è misurato su 200 righe nuove per ogni stima. La penalizzazione ridge aggiunge λ · n alla diagonale di X′X sui predittori centrati, che per costruzione hanno varianza unitaria: quindi λ = 0 sono i minimi quadrati ordinari e λ è sulla scala per osservazione.

Accorgersene — la r a coppie non basta

Una dozzina di feature può essere debolmente correlata a due a due e insieme risultare quasi perfettamente dipendente in senso lineare. La correlazione a coppie non lo vede; le diagnostiche qui sotto sì.

Diagnostica Definizione Soglia indicativa Coglie
|r| a coppie Matrice di correlazione delle feature > 0,8 vale un'occhiata Solo la ridondanza a due. Costa poco, ed è il primo passaggio giusto.
VIF VIFj = 11 − Rj² — si regredisce la feature j su tutte le altre > 5 sospetto, > 10 grave La dipendenza fra più variabili insieme. √VIF è il fattore di cui si gonfia l'errore standard.
Indice di condizione κ = √λmax / λmin di X′X su colonne standardizzate 10–30 moderato, > 30 grave Il condizionamento complessivo in un numero solo. Standardizza prima, altrimenti misura le tue unità; sulla matrice di correlazione è già fatto.
Spettro degli autovalori Autovalori della matrice di correlazione Uno qualunque vicino a zero Gli autovalori quasi nulli, i cui autovettori nominano direttamente la combinazione colpevole.
Varianza fra ristime Dispersione dei coefficienti su ricampionamenti bootstrap o su fold di convalida Cambi di segno Il problema nella forma in cui ti arriverà davvero. Vale per qualunque modello, senza assunzioni.

Potare una matrice di correlazione

Undici feature di un dataset immobiliare, generate da tre fattori latenti — dimensione, posizione ed età — più il rumore di ciascuna, ed è per questo che la struttura a blocchi è vera e non decorativa. Due coppie sono duplicati esatti per costruzione: una conversione di unità, e una variabile registrata sia come anno sia come età. Muovi la soglia per vedere la potatura greedy al lavoro.

Scarta sopra |r|

0,85

Gruppi di ridondanza a questa soglia

Risultato

La regola è quella greedy standard (caret::findCorrelation): si prende la coppia più correlata fra quelle rimaste e si scarta quella delle due che ha la correlazione media più alta con tutto il resto ancora in gioco. Ogni numero della matrice è stampato, quindi il colore è un aiuto alla lettura e non l'unica codifica. Il cursore scende fino a 0,50 così puoi vedere la regola potare troppo; nella pratica sotto ~0,85 si sta buttando via informazione vera.

Otto trattamenti

In ordine dal meno al più invasivo. Il primo non è una battuta: è la risposta giusta più spesso di tutti gli altri messi insieme.

Non fare niente

Costo: nessuno

Lasciarla stare

Se il modello esiste per fare previsioni e nessuno leggerà i suoi coefficienti, le feature correlate non sono un problema da risolvere. L'errore fuori campione è praticamente immutato: il secondo laboratorio mostra l'RMSE di test che resta piatto mentre la dispersione dei coefficienti cresce di un ordine di grandezza.

Togliere feature butta via sempre un po' di informazione. Farlo per soddisfare un'assunzione da cui il tuo caso d'uso non dipendeva è una perdita e basta.

Quando sì Pura previsione; modelli regolarizzati o ad alberi; non c'è nessuna storia di attribuzione da raccontare. Quando no Qualcuno citerà un coefficiente, un'importanza di feature o un "fattore trainante" preso da questo modello.

Selezionare

Costo: perdita di informazione

Scartare una di ogni coppia ridondante

La regola greedy a soglia del laboratorio qui sopra. Semplice, riproducibile, e lascia le feature sopravvissute interpretabili esattamente come prima.

Scegli la sopravvissuta su criteri che la matrice di correlazione non conosce: quale costa meno da raccogliere, quale è misurata in modo più affidabile, quale è disponibile al momento della previsione, quale un esperto di dominio sa spiegare. Prendere quella più correlata con il target è la regola ovvia ed è la più debole: sovradatta il campione di addestramento e ignora le interazioni.

Quando sì La ridondanza è duplicazione vera: conversioni di unità, quasi sinonimi, una media mobile accanto al proprio input. Quando no Le due feature si comportano diversamente nelle code o su una sottopopolazione. Una r complessiva di 0,95 può nascondere proprio il segmento che ti interessa.

Raggruppare

Costo: una scelta da tarare

Raggruppare le feature e tenerne una per gruppo

Si fa clustering gerarchico sulla distanza 1 − |r| (con Spearman se le feature sono asimmetriche), si taglia il dendrogramma a un'altezza scelta e si prende un rappresentante — o la media del gruppo — per ciascun cluster.

Questo scala dove la potatura a coppie non scala, e produce un oggetto stabile e rivedibile: un elenco di gruppi di ridondanza con un nome, da mettere in mano a un esperto di dominio. FeatureAgglomeration in scikit-learn e VarClusHi in Python lo implementano direttamente.

Quando sì Centinaia di feature con struttura a blocchi: schiere di sensori, indici finanziari, conteggi comportamentali aggregati. Quando no I cluster non hanno un significato che qualcuno sappia nominare: hai solo fatto sembrare fondata una scelta opaca.

Costruire

Costo: lavoro di dominio

Combinarle nella quantità che intendevi

Altezza e peso sono collineari; l'indice di massa corporea no. Spesa totale e numero di transazioni sono collineari; lo scontrino medio no. Prezzo e superficie sono collineari; il prezzo al metro quadro no.

È la stessa intuizione del secondo laboratorio, presa dall'altro capo: la quantità identificabile era da sempre la somma, quindi stima la somma. Un rapporto, una differenza o un indice rendono esplicita la direzione stabile e buttano via quella instabile, di proposito.

Quando sì Esiste una combinazione che vuol dire qualcosa. Quando esiste, è la risposta migliore disponibile. Quando no Ti stai inventando una combinazione per far contenta una diagnostica, non per esprimere qualcosa di reale.

Regolarizzare

Costo: distorsione, un iperparametro

Ridge, lasso, elastic net

Ridge è il trattamento diretto: la penalizzazione L2 rende di nuovo invertibile la matrice del disegno e restringe le feature correlate insieme, spartendo fra loro l'effetto comune invece di lasciare che la stima scelga a caso una ripartizione. Restano nel modello tutte e due. Muovi il cursore della ridge nel secondo laboratorio e guarda la nuvola contrarsi.

Lasso fa l'opposto: di un gruppo correlato ne tiene grosso modo una e azzera le altre — ma quale cambia da un ricampionamento all'altro. È uno strumento per la sparsità, non per la collinearità, e le sue selezioni non vanno mai lette come importanze. Elastic net è il compromesso: la parte L2 restituisce l'effetto di raggruppamento, così le feature correlate entrano ed escono insieme.

Quando sì Modelli lineari o lineari generalizzati in cui vuoi coefficienti stabili tenendo tutte le feature. Quando no Ti sei dimenticato di standardizzare. Le penalizzazioni dipendono dalla scala; lo scaler si stima solo sul fold di addestramento.

Proiettare

Costo: interpretabilità

PCA, PLS e compagnia

La PCA sostituisce le feature con componenti ortogonali, quindi la collinearità sparisce per costruzione. Il prezzo è totale: il modello non ha più feature con un nome, e ogni spiegazione a valle va data in termini di loading.

La PCA è anche non supervisionata: ordina le direzioni per varianza in X, senza guardare y, quindi una direzione a bassa varianza che però prevede il target può essere buttata via. I minimi quadrati parziali risolvono esattamente questo estraendo componenti che covariano con y, e di solito ne servono meno.

Quando sì Blocchi larghi, densi e omogenei — spettri, immagini, embedding — dove le singole colonne non erano comunque interpretabili. Quando no Quello che devi consegnare è una spiegazione. E non stimare mai la proiezione su tutto il dataset prima di dividerlo.

Residualizzare

Costo: un ordine arbitrario

Regredire una sull'altra

Si tiene x₁ com'è e si sostituisce x₂ con il suo residuo dopo averla regredita su x₁. Adesso le due sono esattamente incorrelate e restano tutte e due nel modello.

L'inganno sta nel significato: la seconda feature adesso è "la parte di x₂ che x₁ non spiega", e tutto l'effetto comune è stato assegnato a x₁ dalla tua scelta dell'ordine. È una mossa difendibile quando c'è una gerarchia vera — una linea di base e una correzione, un controllo e un trattamento — e un gioco di prestigio in tutti gli altri casi.

Quando sì C'è un ordine motivato: un fattore noto più un effetto residuo che vuoi isolare. Quando no L'ordine è arbitrario: hai nascosto una decisione di modellazione dentro un passaggio di preparazione dei dati.

Attribuire

Costo: calcolo

Aggiustare la misura di importanza invece delle feature

Se la collinearità sta danneggiando solo le tue spiegazioni, cura la spiegazione. Permutare una di due feature correlate lascia l'informazione intatta nella gemella, e allora sembrano irrilevanti tutte e due — e la permutazione crea anche righe che non potrebbero esistere, spingendo il modello fuori dalla distribuzione su cui è stato addestrato.

Permuta tutto il gruppo correlato in una volta sola e riporta un numero per il gruppo; oppure usa la permutazione condizionale, che ricampiona dentro strati delle feature correlate. Il risultato onesto è "queste tre feature insieme portano il 12% del segnale", non tre numeretti separati.

Quando sì Il modello va bene e a fuorviare è solo l'attribuzione — il caso più comune con il gradient boosting. Quando no Ti servono numeri per singola feature per prendere una decisione. Allora torna indietro e sistema l'insieme delle feature.

Scegliere il trattamento in base a cosa devi al lettore

Il tuo obiettivo Prima mossa Ripiego Da evitare
Accuratezza predittiva, scatola nera Niente Ridge o un ensemble di alberi PCA troncata: perderesti segnale senza guadagnare niente
Coefficienti interpretabili Combinare in una quantità sensata Ridge, poi riportare l'effetto di gruppo Lasso: la sua selezione dentro un gruppo correlato non è stabile
Inferenza causale o di policy Sistemare il disegno — più variabilità, o una strategia di identificazione diversa Riportare ciò che è identificato: la somma, il contrasto Qualunque potatura automatica. Togliere un confondente per abbassare il VIF crea distorsione
Importanza delle feature per chi ti ascolta Importanza per permutazione a gruppi Prima il clustering, poi il resoconto per cluster Le importanze grezze basate sul gain di un albero potenziato
Ridurre i costi — meno colonne da raccogliere Clustering, tenendo la più economica per cluster Potatura greedy a soglia Ridge: tiene tutto, che è l'opposto dell'obiettivo
Dati larghi, p maggiore di n PLS o elastic net PCA con il numero di componenti scelto per convalida incrociata VIF: non è definito quando la matrice del disegno è singolare

Trappole

La trappola delle variabili dummy

Un insieme completo di colonne one-hot somma a una costante, quindi con l'intercetta la matrice del disegno è esattamente singolare. Togli un livello, oppure stima senza intercetta. Questa è collinearità perfetta, non quasi-perfetta, e nessuna regola a soglia sulle coppie la farà emergere — il VIF e lo spettro degli autovalori sì.

Potare su tutto il dataset

Selezionare le feature per correlazione prima di dividere i dati fa entrare l'insieme di test nella scelta. La selezione delle feature fa parte della pipeline e va dentro il ciclo di convalida incrociata.

Correlazione non è ridondanza

Due feature a r = 0,9 possono servire lo stesso tutte e due, se un modello non lineare usa la loro differenza. La ridondanza si conferma togliendo la feature e misurando come cambia l'errore di convalida, non leggendo la matrice.

Una correlazione altissima con il target

Una r di 0,98 contro l'etichetta di solito non è una gran feature: è una fuga di informazione. Prima di festeggiare, controlla se quel valore fosse davvero disponibile al momento della previsione.

Note

Leggi i numeri come illustrazioni del meccanismo, non come misure di qualcosa di reale: ogni campione di questa pagina viene estratto da un generatore con seme nel momento in cui la apri.

Implementazioni che vale la pena conoscere: scipy.stats per Pearson, Spearman e Kendall; dcor per la correlazione di distanza; sklearn.feature_selection.mutual_info_regression per lo stimatore dell'informazione mutua sui k vicini più prossimi; statsmodels.stats.outliers_influence.variance_inflation_factor per il VIF; sklearn.inspection.permutation_importance per la correzione dell'attribuzione.