La standardizzazione di variabili indipendenti riduce la collinearità?


12

Ho trovato un ottimo testo su Bayes / MCMC. L'IT suggerisce che una standardizzazione delle variabili indipendenti renderà più efficiente un algoritmo MCMC (Metropolis), ma potrebbe anche ridurre la (multi) collinearità. Può essere vero? È qualcosa che dovrei fare come standard . (Mi dispiace).

Kruschke 2011, facendo analisi dei dati bayesiani. (AP)

modifica: ad esempio

     > data(longley)
     > cor.test(longley$Unemployed, longley$Armed.Forces)

Pearson's product-moment correlation

     data:  longley$Unemployed and longley$Armed.Forces 
     t = -0.6745, df = 14, p-value = 0.5109
     alternative hypothesis: true correlation is not equal to 0 
     95 percent confidence interval:
     -0.6187113  0.3489766 
     sample estimates:
      cor 
     -0.1774206 

     > standardise <- function(x) {(x-mean(x))/sd(x)}
     > cor.test(standardise(longley$Unemployed), standardise(longley$Armed.Forces))

Pearson's product-moment correlation

     data:  standardise(longley$Unemployed) and standardise(longley$Armed.Forces) 
     t = -0.6745, df = 14, p-value = 0.5109
      alternative hypothesis: true correlation is not equal to 0 
     95 percent confidence interval:
      -0.6187113  0.3489766 
      sample estimates:
       cor 
     -0.1774206 

Ciò non ha ridotto la correlazione o quindi la dipendenza lineare dei vettori, sebbene limitata.

Cosa sta succedendo?

R

Risposte:


19

Non cambia affatto la collinearità tra i principali effetti. Neanche il ridimensionamento. Qualsiasi trasformazione lineare non lo farà. Ciò che cambia è la correlazione tra gli effetti principali e le loro interazioni. Anche se A e B sono indipendenti con una correlazione di 0, la correlazione tra A e A: B dipenderà da fattori di scala.

Prova quanto segue in una console R. Si noti che rnormgenera solo campioni casuali da una distribuzione normale con valori di popolazione impostati, in questo caso 50 campioni. La scalefunzione standardizza il campione su una media di 0 e una SD di 1.

set.seed(1) # the samples will be controlled by setting the seed - you can try others
a <- rnorm(50, mean = 0, sd = 1)
b <- rnorm(50, mean = 0, sd = 1)
mean(a); mean(b)
# [1] 0.1004483 # not the population mean, just a sample
# [1] 0.1173265
cor(a ,b)
# [1] -0.03908718

La correlazione accidentale è vicino a 0 per questi campioni indipendenti. Ora normalizza a media di 0 e SD di 1.

a <- scale( a )
b <- scale( b )
cor(a, b)
# [1,] -0.03908718

Ancora una volta, questo è esattamente lo stesso valore anche se la media è 0 e SD = 1 per entrambi ae b.

cor(a, a*b)
# [1,] -0.01038144

Anche questo è molto vicino a 0. (a * b può essere considerato il termine di interazione)

Tuttavia, di solito la SD e la media dei predittori differiscono un po ', quindi cambiamo b. Invece di prendere un nuovo campione, ridimensionerò l'originale bper avere una media di 5 e una SD di 2.

b <- b * 2 + 5
cor(a, b)
 # [1] -0.03908718

Ancora una volta, quella correlazione familiare che abbiamo visto da sempre. Il ridimensionamento non ha alcun impatto sulla correlazione tra ae b. Ma!!

cor(a, a*b)
# [1,] 0.9290406

Ora che avrà una correlazione sostanziale che puoi far sparire centrando e / o standardizzando. Di solito vado solo con il centraggio.


1
+1 per una risposta completa e comprensibile (con codice!)
Peter Flom - Ripristina Monica

1
È anche utile se si desidera includere, per esempio, un termine quadratico.
Aniko,

assolutamente Aniko
John,

1
Migliore risposta - grazie per questo. Potrei aver commesso un'ingiustizia nel libro anche interpretandolo male, ma forse ne è valsa la pena esporre la mia ignoranza.
Rosser,

7

Come altri hanno già detto, la standardizzazione non ha davvero nulla a che fare con la collinearità.

Perfetta collinearità

XμXσX

ZX=XμXσX

ha media e deviazione standard date le proprietà del valore atteso e varianza che , e , , dove è rv e sono costanti.μZ=0σZ=1E(X+a)=E(X)+aE(bX)=bE(X)Var(X+a)=Var(X)Var(bX)=b2Var(X)Xa,b

Diciamo che due variabili e sono perfettamente collineari se esistono tali valori e cheXYλ0λ1

Y=λ0+λ1X

ciò che segue, se ha media e deviazione standard , allora ha media e deviazione standard . Ora, quando standardizziamo entrambe le variabili (rimuoviamo le loro e dividiamo per deviazioni standard), otteniamo ...μ XXμXσXYσ Y = λ 1 σ X Z X = Z XμY=λ0+λ1μXσY=λ1σXZX=ZX

Correlazione

Naturalmente la perfetta collinearità non è qualcosa che vedremmo spesso, ma anche le variabili fortemente correlate possono essere un problema (e sono specie correlate con la collinearità). Quindi la standardizzazione influenza la correlazione? Si prega di confrontare i seguenti grafici che mostrano due variabili correlate su due grafici prima e dopo il ridimensionamento: inserisci qui la descrizione dell'immagine

Riesci a individuare la differenza? Come puoi vedere, ho rimosso intenzionalmente le etichette degli assi, quindi per convincerti che non sto imbrogliando, vedi i grafici con etichette aggiunte:

inserisci qui la descrizione dell'immagine

Matematicamente parlando, se la correlazione è

Corr(X,Y)=Cov(X,Y)Var(X)Var(Y)

quindi con variabili collineari abbiamo

Corr(X,Y)=E[(XμX)(YμY)]σXσY=E[(XμX)(λ0+λ1Xλ0λ1μX)]σXλ1σX=E[(XμX)(λ1Xλ1μX)]σXλ1σX=E[(XμX)λ1(XμX)]σXλ1σX=λ1E[(XμX)(XμX)]σXλ1σX=E[(XμX)(XμX)]σXσX

ora da ,Cov(X,X)=Var(X)

=Cov(X,X)σX2=Var(X)Var(X)=1

Mentre con variabili standardizzate

Corr(ZX,ZY)=E[(ZX0)(ZY0)]1×1=Cov(ZX,ZY)=Var(ZX)=1

poiché ...ZX=ZY

Infine, si noti che ciò di cui Kruschke sta parlando è che la standardizzazione delle variabili semplifica la vita del campionatore di Gibbs e porta alla riduzione della correlazione tra intercetta e pendenza nel modello di regressione che presenta. Non dice che la standardizzazione delle variabili riduce la collinearità tra le variabili.


0

La standardizzazione non influisce sulla correlazione tra variabili. Rimangono esattamente gli stessi. La correlazione acquisisce la sincronizzazione della direzione delle variabili. Non c'è nulla nella standardizzazione che cambia la direzione delle variabili.

Se vuoi eliminare la multicollinearità tra le tue variabili, ti suggerisco di utilizzare l'analisi dei componenti principali (PCA). Come sapete, la PCA è molto efficace per eliminare il problema della multicollinearità. D'altra parte PCA rende le variabili combinate (componenti principali P1, P2, ecc ...) piuttosto opache. Un modello PCA è sempre molto più impegnativo da spiegare rispetto a un multivariato più tradizionale.


Un'alternativa moderna, spesso migliore, è la regolarizzazione.
kjetil b halvorsen,

Ho testato la selezione delle variabili tra algoritmi stepwise standard e LASSO. E LASSO arriva in un secondo molto distante. LASSO penalizza le influenze variabili, può selezionare variabili deboli rispetto a variabili più forti. Può anche far cambiare i segni delle variabili. Inoltre, suddivide l'intero quadro di significatività statistica, intervalli di confidenza e intervalli di previsione. A volte LASSO può funzionare. Ma guarda molto attentamente il grafico MSE vs. Lambda e i grafici Coefficients vs. Lambda. È qui che puoi osservare visivamente se il tuo modello LASSO ha funzionato.
Sympa,

0

Non riduce la collinearità, può ridurre il VIF. Comunemente usiamo VIF come indicatore di preoccupazioni per la collinearità.

Fonte: http://blog.minitab.com/blog/adventures-in-statistics-2/what-are-the-effects-of-multicollinearity-and-when-can-i-ignore-them


2
Benvenuti nel sito. Al momento questo è più un commento che una risposta. Potresti espanderlo, magari fornendo un riepilogo delle informazioni al link, oppure possiamo convertirlo in un commento per te. Inoltre, la mia lettura del post collegato non è abbastanza che la standardizzazione riduce il VIF senza ridurre la collinearità. Il loro esempio è molto specifico e più sfumato di così.
gung - Ripristina Monica

-3

La standardizzazione è un modo comune per ridurre la collinearità. (Dovresti essere in grado di verificare molto rapidamente che funzioni provandolo su un paio di coppie di variabili.) Il fatto che lo fai di routine dipende dalla quantità di problemi di collinearità nelle tue analisi.

Modifica: vedo che ero in errore. Ciò che fa la standardizzazione, tuttavia, è ridurre la collinearità con i termini del prodotto (termini di interazione).


Hmm, potresti spiegarmi? La standardizzazione modifica semplicemente la media e la varianza di una variabile casuale (rispettivamente su 0 e 1). Questo non dovrebbe cambiare la correlazione tra due variabili. Vedo come la standardizzazione può migliorare l'efficienza computazionale, ma non come riduce la multicolinearità.
Charlie,

No, io; m perso ... come può eventualmente cambiare la dipendenza lineare degli elementi di colonna nella matrice dei predittori. (Non è questa la collinearità?)
Rosser

Sebbene non sia corretto che la standardizzazione cambi la collinearità in senso puramente matematico, può migliorare la stabilità numerica degli algoritmi per risolvere i sistemi lineari. Questa potrebbe essere la fonte della confusione in questa risposta.
whuber

La standardizzazione non riduce la multicollinearità. In genere non modifica affatto la correlazione tra le variabili.
Sympa,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.