Quando si esegue la regressione multipla, quando è necessario centrare le variabili del predittore e quando è necessario standardizzarle?


281

In alcune pubblicazioni, ho letto che una regressione con più variabili esplicative, se in unità diverse, doveva essere standardizzata. (La standardizzazione consiste nel sottrarre la media e dividere per la deviazione standard.) In quali altri casi devo standardizzare i miei dati? Ci sono casi in cui dovrei solo centrare i miei dati (cioè senza dividere per deviazione standard)?


11
Un post correlato nel blog di Andrew Gelman.

31
Oltre alle grandi risposte già fornite, vorrei ricordare che quando si utilizzano metodi di penalizzazione come la regressione della cresta o il lazo, il risultato non è più invariante alla standardizzazione. Tuttavia, si raccomanda spesso di standardizzare. In questo caso non per motivi direttamente correlati alle interpretazioni, ma perché la penalizzazione tratterà quindi diverse variabili esplicative su un piano più equo.
NRH,

6
Benvenuti nel sito @mathieu_r! Hai pubblicato due domande molto popolari. Ti preghiamo di prendere in considerazione l'upgrade / accettazione di alcune delle risposte eccellenti che hai ricevuto ad entrambe le domande;)
Macro


1
Quando ho letto queste domande e risposte, mi è venuto in mente un sito usenet su cui mi sono imbattuto molti anni fa faqs.org/faqs/ai-faq/neural-nets/part2/section-16.html Questo dà in termini semplici alcuni dei problemi e delle considerazioni quando si vuole normalizzare / standardizzare / riscalare i dati. Non l'ho visto menzionato da nessuna parte nelle risposte qui. Tratta l'argomento da una prospettiva più di apprendimento automatico, ma potrebbe aiutare qualcuno a venire qui.
Paul,

Risposte:


213

In regressione, si consiglia spesso di centrare le variabili in modo che i predittori abbiano una media di . Questo rende il termine di intercettazione interpretato come il valore atteso di quando i valori del predittore sono impostati sulla loro media . Altrimenti, l'intercetta viene interpretata come il valore atteso di quando i predittori sono impostati su 0, il che potrebbe non essere una situazione realistica o interpretabile (ad esempio, se i predittori fossero altezza e peso?). Un altro motivo pratico per ridimensionare la regressione è quando una variabile ha una scala molto ampia, ad esempio se si utilizzava la dimensione della popolazione di un paese come predittore. In tal caso, i coefficienti di regressione potrebbero essere molto elevati0Y i Y i 10 - 6YiYipiccolo ordine di grandezza (ad esempio ) che può essere un po 'fastidioso quando si legge l'output del computer, quindi è possibile convertire la variabile in, ad esempio, la dimensione della popolazione in milioni. La convenzione secondo cui standardizzate le previsioni esiste principalmente in modo che le unità dei coefficienti di regressione siano le stesse.106

Come @gung allude a e @ MånsT mostra esplicitamente (+1 a entrambi, tra l'altro), il centraggio / ridimensionamento non influisce sulla vostra inferenza statistica nei modelli di regressione: le stime sono adeguate in modo adeguato e i valori saranno gli stessi.p

Altre situazioni in cui il centraggio e / o il ridimensionamento possono essere utili:

  • quando stai cercando di sommare o mediare variabili che si trovano su scale diverse , forse per creare un punteggio composito di qualche tipo. Senza ridimensionamento, può accadere che una variabile abbia un impatto maggiore sulla somma a causa della sua scala, il che può essere indesiderabile.

  • Semplificare i calcoli e la notazione. Ad esempio, la matrice di covarianza del campione di una matrice di valori centrata dai loro mezzi di campionamento è semplicemente . Allo stesso modo, se una variabile casuale univariata è stata centrata sulla media, allora e la varianza può essere stimata da un campione osservando la media campionaria dei quadrati dell'osservato valori.XXXvar(X)=E(X2)

  • Relativamente a quanto sopra menzionato, la PCA può essere interpretata come la scomposizione del valore singolare di una matrice di dati quando le colonne sono state centrate per la prima volta con i loro mezzi.

Si noti che il ridimensionamento non è necessario negli ultimi due punti elenco che ho citato e il centraggio potrebbe non essere necessario nel primo punto elenco che ho citato, quindi i due non devono andare sempre di pari passo.


2
+1, questi sono buoni punti a cui non avevo pensato. Per chiarezza, vorrei elencare alcuni esempi concreti in cui un ricercatore potrebbe voler combinare le variabili esplicative prima di eseguire una regressione, e quindi è necessario standardizzare. Un caso potrebbe essere quello della ricerca sui disturbi comportamentali dei bambini; i ricercatori potrebbero ottenere valutazioni da entrambi i genitori e gli insegnanti, e quindi volerli combinare in un'unica misura di disadattamento. Un altro caso potrebbe essere uno studio a livello di attività in una casa di cura con autovalutazione da parte dei residenti e il numero di firme sui fogli di iscrizione per le attività.
gung

2
Ma in teoria non dovremmo usare la media della popolazione e la deviazione standard per centrare / ridimensionare? In pratica, è semplice come usare la media campione / SD o c'è di più?
AlefSin,

3
Per ragioni di completezza, vorrei aggiungere a questo simpatico risposta che della centrato e standardizzata X è la matrice di correlazione. XXX
cbeleites,

1
@AlefSin: potresti effettivamente voler usare qualcos'altro rispetto alla media / sd della popolazione, vedi la mia risposta. Ma il tuo punto che dovremmo pensare a cosa usare per centrare / ridimensionare è molto buono.
cbeleites,

@AlefSin, tutti i miei commenti sono stati fatti supponendo che stavi usando la media campione / SD. Se si centra il campione significa che l'interpretazione dell'intercetta è sempre la stessa, tranne che per il valore atteso di quando i predittori sono impostati sui loro mezzi di campionamento . Le informazioni nei miei tre punti elenco si applicano ancora quando si centra / scala in base alle quantità del campione. Vale anche la pena notare che se si centra sulla media del campione, il risultato è una variabile con media 0 ma il ridimensionamento in base alla deviazione standard del campione non produce, in generale, un risultato con deviazione standard 1 (ad es. La statistica t). Yi
Macro

143

β1=.6β2=.3, quindi la prima variabile esplicativa è due volte più importante della seconda. Sebbene questa idea sia attraente, sfortunatamente, non è valida. Esistono diversi problemi, ma forse il più semplice da seguire è che non hai modo di controllare eventuali restrizioni di intervallo nelle variabili. Inferire l '"importanza" delle diverse variabili esplicative l'una rispetto all'altra è una questione filosofica molto delicata. Niente di tutto ciò suggerisce che la standardizzazione sia sbagliata o sbagliata , solo che in genere non è necessaria .

XX2XX


(Aggiornamento aggiunto molto più tardi :) Un caso analogo che ho dimenticato di menzionare è la creazione di termini di interazione . Se viene creato un termine di interazione / prodotto da due variabili che non sono centrate su 0, verrà indotta una certa quantità di collinearità (con la quantità esatta in base a vari fattori). La centratura innanzitutto affronta questo potenziale problema. Per una spiegazione più completa, vedere questa eccellente risposta di @Affine: Diagnostica di collinearità problematica solo quando è incluso il termine di interazione .


12
Se qualcuno è interessato, parlo anche dell'idea sbagliata di usare beta standardizzati per inferire qui 'importanza' relativa: test di regressione multipla lineare per ipotesi
gung

Grazie per la tua risposta. Penso di averlo capito nel frattempo: si potrebbe pensare al termine quadrato come X interagisce con se stesso, per così dire e il tuo punto sulla variabile interagita sarebbe più generale.
Abhimanyu Arora,

6
XX

A proposito di beta1 = 0,6 e beta2 = 0,3, non sono sicuro se dire che beta1 sia due volte più importante di beta2 sia appropriato, ma ho pensato che poiché sono standardizzati sono sulla stessa "scala", cioè le unità sono deviazioni standard dalla media. Detto questo, la risposta di Y sarà due volte superiore nel caso di beta1 (mantenendo costante x2) rispetto a beta2 (mantenendo costante x1). Giusto? O ho frainteso qualcosa sulla strada?
Chao,

@chao, non ti sei davvero liberato delle unità intrinseche alle 2 variabili; li hai appena nascosti. Ora, le unità di X1 sono per 13,9 cm e le unità di X2 sono per 2,3 gradi Celsius.
gung

80

Oltre alle osservazioni nelle altre risposte, vorrei sottolineare che la scala e la posizione delle variabili esplicative non influiscono in alcun modo sulla validità del modello di regressione.

y=β0+β1x1+β2x2++ϵ

β1,β2,x1,x2,β0

x1aβ^11/a

β^1(x1)=i=1n(x1,ix¯1)(yiy¯)i=1n(x1,ix¯1)2.

così

β^1(ax1)=i=1n(ax1,iax¯1)(yiy¯)i=1n(ax1,iax¯1)2=ai=1n(x1,ix¯1)(yiy¯)a2i=1n(x1,ix¯1)2=β^1(x1)a.

β^2

Pertanto, il ridimensionamento corrisponde semplicemente al ridimensionamento delle pendenze corrispondenti.

ai=1/sisix1xi


1
È una buona idea standardizzare le variabili che sono molto distorte o è meglio solo standardizzare le variabili distribuite simmetricamente? Dovremmo stardadizzare solo le variabili di input o anche i risultati?
skan

31

Nel caso in cui si usi la discesa gradiente per adattarsi al proprio modello, la standardizzazione delle covariate può accelerare la convergenza (perché quando si hanno covariate non graduate, i parametri corrispondenti possono dominare in modo inappropriato il gradiente). Per illustrare questo, un po 'di codice R:

> objective <- function(par){ par[1]^2+par[2]^2}  #quadratic function in two variables with a minimum at (0,0)
> optim(c(10,10), objective, method="BFGS")$counts  #returns the number of times the function and its gradient had to be evaluated until convergence
    function gradient 
          12        3 
> objective2 <- function(par){ par[1]^2+0.1*par[2]^2}  #a transformation of the above function, corresponding to unscaled covariates
> optim(c(10,10), objective2, method="BFGS")$counts
function gradient 
      19       10 
> optim(c(10,1), objective2, method="BFGS")$counts  #scaling of initial parameters doesn't get you back to original performance
function gradient 
      12        8

Inoltre, per alcune applicazioni di SVM, il ridimensionamento può migliorare le prestazioni predittive: ridimensionamento delle funzionalità nella descrizione dei dati vettoriali di supporto .


25

Preferisco "ragioni solide" sia per la centratura che per la standardizzazione (esistono molto spesso). In generale, hanno più a che fare con il set di dati e il problema che con il metodo di analisi dei dati.

Molto spesso, preferisco centrare (cioè spostare l'origine dei dati) su altri punti che sono fisicamente / chimicamente / biologicamente / ... più significativi della media (vedi anche la risposta di Macro), ad es.

  • la media di un gruppo di controllo

  • segnale vuoto

La stabilità numerica è una ragione legata all'algoritmo per centrare e / o ridimensionare i dati.

Inoltre, dai un'occhiata alla domanda simile sulla standardizzazione . Che copre anche "solo centro".


24

Per illustrare il problema della stabilità numerica menzionato da @cbeleites, ecco un esempio di Simon Wood su come "rompere" lm(). Innanzitutto genereremo alcuni dati semplici e inseriremo una semplice curva quadratica.

set.seed(1); n <- 100
xx <- sort(runif(n))
y <- .2*(xx-.5)+(xx-.5)^2 + rnorm(n)*.1
x <- xx+100
b <- lm(y ~ x+I(x^2))

plot(x,y)
lines(x, predict(b), col='red')

inserisci qui la descrizione dell'immagine

Ma se aggiungiamo 900 a X, il risultato dovrebbe essere più o meno lo stesso se non spostato a destra, no? Sfortunatamente no...

X <- x + 900
B <- lm(y ~ X+I(X^2))
plot(X,y)
lines(X, predict(B), col='blue')

inserisci qui la descrizione dell'immagine

Modifica per aggiungere al commento di @Scortchi - se osserviamo l'oggetto restituito da lm () vediamo che il termine quadratico non è stato stimato e viene mostrato come NA.

> B
Call:
lm(formula = y ~ X + I(X^2))

Coefficients:
(Intercept)            X       I(X^2)  
  -139.3927       0.1394           NA  

E infatti come suggerito da @Scortchi, se guardiamo la matrice del modello e proviamo a risolverlo direttamente, "si rompe".

> X <- model.matrix(b) ## get same model matrix used above
> beta.hat <- solve(t(X)%*%X,t(X)%*%y) ## direct solution of ‘normal equations’
Error in solve.default(t(X) %*% X, t(X) %*% y) : 
  system is computationally singular: reciprocal condition number = 3.9864e-19

Tuttavia, lm()non mi dà alcun messaggio di avvertimento o errore diverso da NAs sulla I(X^2)riga summary(B)in R-3.1.1. Naturalmente, altri algoritmi possono essere "rotti" in modi diversi con esempi diversi.


10
(+1) La nota lmnon riesce a stimare un coefficiente per il termine quadratico e fornisce un avvertimento su una matrice di design singolare - forse più direttamente illustrativa del problema rispetto a questi grafici.
Scortchi

3

Dubito seriamente se centrare o standardizzare i dati originali potrebbe davvero mitigare il problema della multicollinearità quando nella regressione sono inclusi termini quadrati o altri termini di interazione, come alcuni di voi, in particolare il gung, hanno raccomandato sopra.

Per illustrare il mio punto, consideriamo un semplice esempio.

Supponiamo che le specifiche vere assumano la forma seguente in modo tale

yi=b0+b1xi+b2xi2+ui

Pertanto, l'equazione OLS corrispondente è data da

yi=yi^+ui^=b0^+b1^xi+b2^xi2+ui^

yi^yiuib0^b2^b0b2zi=xi2

xx2yiyi

yi

y¯=b0^+b1^x¯+b2^z¯
y¯x¯z¯yixizi

y¯yi

yiy¯=b1^(xix¯)+b2^(ziz¯)+ui^

yiy¯xix¯ziz¯b1^b2^

xx2xx2corr(x,z)=corr(xx¯,zz¯)

In sintesi, se la mia comprensione del centraggio è corretta, allora non credo che i dati di centraggio farebbero alcun aiuto per mitigare il problema MC causato dall'inclusione dei termini al quadrato o di altri termini di ordine superiore nella regressione.

Sarei felice di sentire le tue opinioni!


2
Grazie per il tuo contributo, @ rudi0086021. Forse hai ragione, ma vedo un paio di problemi qui. 1 °, il centraggio riguarda la sottrazione della media di x , non la sottrazione della media di y ; Secondo, devi prima centrare, centrare le parole d'ordine non ha alcun effetto come noti. Prendere in considerazione: x = c(1,2,3); x2 = x^2; cor(x, x2); # [1] 0.9897433; xc = c(-1,0,1); xc2 = xc^2; cor(xc, xc2) # [1] 0.
gung

Grazie per la tua risposta, @gung. Ecco i miei pensieri In primo luogo, personalmente non ho visto ragioni convincenti per trattare le variabili dipendenti e indipendenti in modo diverso, vale a dire le variabili indipendenti, senza farlo per le variabili dipendenti.
rudi0086021,

2
In secondo luogo, come hai detto, forse dovremmo centrare i dati prima di creare termini quadrati. Tale pratica mitigherà il problema MC. Tuttavia, potrebbe portare a stime distorte, o più concretamente, alla distorsione da variabili omesse (OVB). Per illustrare, vedere il seguente esempio: supponiamo che la specifica vera sia: y = b0 + b1 * x + b2 * x ^ 2 + u. La centratura anticipata dei dati darà: y = b0 + b1 * (x-xhar) + b2 * (x-xbar) ^ 2 + v, dove il nuovo termine di errore v = u + b1 * xbar-b2 * xbar ^ 2 + 2b2 * xbar * x. È chiaro che cov (x-xbar, v)! = 0. Pertanto, sfortunatamente, la centratura anticipata dei dati porterebbe a stime distorte.
rudi0086021,

@ rudi0086021 Sembra che nel tuo ultimo commento tu presumi che otterrai gli stessi coefficienti quando si adattano i dati centrati come si farebbe quando si adattano i dati non centrati. Ma centrare prima di prendere il quadrato non è un semplice spostamento di una costante, quindi non ci si dovrebbe aspettare di ottenere gli stessi coefficienti. Il miglior adattamento dopo il centraggio è dato da B0 + B1 * (x-xbar) + B2 * (x-xbar) ^ 2 dove B0 = b0 + b1 * xbar + b2 * xbar ^ 2, B1 = b1 + 2 * b2 * xbar e B2 = b2. Pertanto, v = u. Mi dispiace rispondere a questo commento in modo tardivo, ma potrebbero esserci sempre altri come me che lo vedono per la prima volta oggi.
Tim Goodman,
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.