Il corretto sviluppo di anche solo un banalissimo modello di regressione lineare può fare un enorme differenza tra un lavoro di ricerca “farlocco” e un lavoro, invece, metodologicamente inattaccabile. E uno dei milestones che ci vengono insegnati quando impariamo a sviluppare modelli multivariati è quello di evitare la multicollinearità tra le variabili.
Una breve introduzione per capire cos’è la multicollinearità
Un breve ripasso: la multicollinearità è un problema dovuto alla eccessiva correlazione tra due variabili esplicative all’interno di un modello predittivo. Ad esempio “Peso” e “Percentuale di massa grassa” sono spesso fortemente correlate per cui utilizzarle insieme come predittori di una variabile dipendente (ad esempio: concentrazione di colesterolo ematico) risulterebbe ridondanter, dal momento che “Peso” e “Percentuale di massa magra” vanno a spiegare la stessa “fetta di variabilità” della colesterolemia.
Il problema è che questa “ridondanza” ha effetti sul modello assolutamente da evitare:
1. gli standard error dei coefficienti di regressione delle variabili correlate diventano più ampi; le stime, cioè, diventano meno precise;
2. i coefficienti sono instabili e possono cambiare (anche di segno) in seguito a lievi modifiche della struttura del modello.
Il metodo più universalmente condiviso per verificare se una variabile nel tuo modello è affetta da multicollinearità è la misura del suo VIF (Fattore di Inflazione della Varianza).
Questo VIF altro non è che la misura di quanto la varianza del coefficiente in questione aumenta rispetto a quello che sarebbe il suo valore se la variabile non fosse correlata alle altre variabili.
Se ad esempio il VIF relativo a una delle tue variabili fosse 1.7, questo vorrebbe dire che la varianza del coefficiente della tua variabile in questione aumenta del 70% rispetto al valore che la varianza avrebbe se la variabile non fosse correlata alle altre variabili.
E come si calcola questo VIF?
La formula è questa:
VIF= 1/(1-R2)
Dove R2 è l’R-quadro ottenuto dalla regressione in cui la variabile dipendente (la “Y”) è il predittore di cui stiamo analizzando la “presunta multicollinearità”, e le variabili indipendenti sono tutte le variabili considerate nel modello.
Lo so, il problema è un po’ “intricato” ma l’obiettivo del post è quello di capire quando possiamo ignorare questo problema di multicollinearità nei nostri lavori.
Quando possiamo ignorare il problema della multicollinearità?
Quando due variabili sono una funzione dell’altra
Il primo caso in cui possiamo ignorare l’eventuale multicollinearità si presenta quando una variabile è una funzione di un’altra variabile.
Classico caso: una interazione tra due variabili. Se in un modello multivariato inserisci come predittori “a”, “b” e la loro interazione, “a x b”, è chiaro che “a x b” sarà correlato ad “a” e a “b”. In questo caso è possibile ridurre la correlazione “centrando” le variabili “a” e “b”. Se non sai cosa significhi centrare una variabile leggi pure questo breve post sulla centratura delle variabili. Tuttavia, che tu centri o meno le variabili, il p-value del prodotto “a x b” rimane identico. Questa stabilità del p-value dell’interazione è importante perché la centratura diventa, perciò, necessaria solo quando si è interessati a interpretare anche l’effetto principale di “a”, di “b” o di tutti e due e non solo della loro interazione “a x b” .
In questo caso l’effetto principale “centrato” viene interpretato allo stesso identico modo: la variazione della variabile indipendente al variare di una unità della variabile centrata (quando parliamo di un modello lineare).
Per cui in questo caso il problema della multicollinearità è assolutamente ignorabile. Lo stesso vale per altri tipi di funzioni, come ad esempio la collinearità all’interno dello stesso modello di una variabile con il suo quadrato (“a” e “a2”).
Quando non ci interessa l’interpretazione delle variabili affette da multicollinearità
Il secondo caso riguarda l’utilizzo delle variabili affette da multicollinearità. Se queste variabili sono esclusivamente dei confondenti utilizzati per aggiustare le stime delle variabili di tuo reale interesse, allora il problema può essere ignorato, dal momento che i coefficienti delle altre variabili non viene coinvolto.
Quando la multicollinearità compare per una categoria di riferimento poco frequente (nel caso di variabili categoriche)
Terzo caso: il problema della collinearità lo puoi ignorare quando hai una variabile categorica con più di due modalità (ad esempio colore degli occhi con 4 modalità: neri, azzurri, verdi, castani) e in cui la variabile di riferimento ha una scarsa frequenza.
Diciamo che, ad esempio, che la tua categoria di riferimento sia “occhi azzurri” ma che essa abbia una frequenza più bassa rispetto alle altre modalità, ad esempio il 5%. Le altre frequenze sono, invece: occhi neri, 25%; occhi verdi, 10%; occhi castani, 60%).
In questo caso le altre tre categorie possono essere risultare affette da multicollinearità e mostrare, perciò, alti VIF e p-values.
La cosa interessante, però, è che il test “overall” per la variabile categorica “colore degli occhi” rimane inalterato, come rimane inalterato tutto il resto dei parametri del modello di regressione. In questo caso quello che devi fare è semplicemente usare una categoria maggiormente rappresentata come riferimento (nel tuo caso, ad esempio, “occhi castani”, che è quella più frequente (60%) per avere la risoluzione del problema e ottenere, cioè, VIF e p-values inferiori.
Una regola aurea: previeni quando possibile la multicollinearità
Infine, il problema della collinearità andrebbe sempre prevenuto riducendo il numero di variabili all’interno del modello. Sposa il principio del “rasoio di Occam“: usa sempre il numero inferiore possibile di variabili, facendo attenzione a se e quanto aumento la predittività del tuo modello aggiungendo ulteriori variabili. Nella pratica quello che puoi fare è, aggiungendo una variabile alla volta, valutare se hai un aumento di R-quadro di almeno del 10%. Se hai un modello con R-quadro di 0,4 e aggiungendo un nuova variabile al tuo modello il tuo R-quadro non sale almeno a 0,5, la variabile che stai considerando di aggiungere va a complicare eccessivamente il modello senza far incrementare predittività. Meglio ancora: invece di valutare l’R-quadro, valuta l’ R-quadro aggiustato (negli output dei programmi di statistica lo trovi quasi sempre come “adjusted R-squared”) che è il valore di R-quadro “ripulito” dall’eccesso di variabili inutili introdotte nel modello (non è proprio così, ma ci dedicherò un post ad hoc 😉 )
Ciao!
Salve
articolo molto interessante.
Sono un neo ricercatore del dipartimento di Agraria dell’università di Napoli Federico II, lavoro nel campo della tracciabilità alimentare.
Mi capita spesso di usare Strumenti chemomentrici sia di regressione, sia discriminanti per trattare i miei dati.
una domanda sorge spontanea (almeno a me). Nell’utilizzo di strumenti non supervisionati come la PCA, a livello esplorativo, quanto è importante che il data set sia esente da fenomeni di collinearità? mi spiego meglio, nelle matrici biologiche molto spesso le variabili sono strettamente correlate tra di loro. Se utilizzo la PCA su questo tipo di dati, dove la mulcollinearità può essere forte, al fine di esplorare i raggruppamenti naturali dei campioni quanto incide sul risultato?
Grazie mille
Saluti
Luigi
Gentile Luigi, la risposta alla tua domanda può essere molto complessa. Però, in sintesi, possiamo dire che è normale che esista collinearità nella tipologia di dati che utilizzi. Tuttavia, la PCA, creando componenti ortogonali va a risolvere proprio questo tipo di problema. Perciò la risposta è no, non avrai, in generale, prroblemi nelle stime che ottieni dopo PCA