Ao realizar uma regressão múltipla, quando você deve centralizar suas variáveis ​​preditoras e quando deve padronizá-las?


281

Em alguma literatura, li que uma regressão com múltiplas variáveis ​​explicativas, se em unidades diferentes, precisava ser padronizada. (A padronização consiste em subtrair a média e dividir pelo desvio padrão.) Em quais outros casos eu preciso padronizar meus dados? Existem casos em que eu deveria centralizar apenas meus dados (ou seja, sem dividir por desvio padrão)?


11
Um post relacionado no blog de Andrew Gelman.

31
Além das excelentes respostas já dadas, deixe-me mencionar que, ao usar métodos de penalização como regressão de cordilheira ou laço, o resultado não é mais invariável à padronização. No entanto, é frequentemente recomendado padronizar. Nesse caso, não por razões diretamente relacionadas às interpretações, mas porque a penalização tratará diferentes variáveis ​​explicativas em pé de igualdade.
NRH 5/06

6
Bem-vindo ao site @mathieu_r! Você postou duas perguntas muito populares. Por favor, considere upvoting / aceitar algumas das excelentes respostas que você recebeu a ambas as perguntas;)
Macro


1
Quando li estas perguntas e respostas, lembrei-me de um site da usenet em que deparei com muitos anos atrás faqs.org/faqs/ai-faq/neural-nets/part2/section-16.html Isso fornece em termos simples alguns dos problemas e considerações quando se deseja normalizar / padronizar / redimensionar os dados. Não o vi mencionado em nenhum lugar nas respostas aqui. Ele trata o assunto de uma perspectiva mais de aprendizado de máquina, mas pode ajudar alguém que vem para cá.
Paul

Respostas:


213

Na regressão, é frequentemente recomendado centralizar as variáveis ​​para que os preditores tenham média . Isso faz com que o termo de interceptação seja interpretado como o valor esperado de quando os valores do preditor são definidos com suas médias . Caso contrário, a interceptação é interpretada como o valor esperado de quando os preditores são definidos como 0, o que pode não ser uma situação realista ou interpretável (por exemplo, e se os preditores fossem altura e peso?). Outro motivo prático para escalar na regressão é quando uma variável possui uma escala muito grande, por exemplo, se você estava usando o tamanho da população de um país como um preditor. Nesse caso, os coeficientes de regressão podem estar muito0S i S i 10 - 6YiYiordem de magnitude pequena (por exemplo, ) que pode ser um pouco chata ao ler a saída do computador; portanto, você pode converter a variável para, por exemplo, o tamanho da população em milhões. A convenção de que você padroniza as previsões existe principalmente para que as unidades dos coeficientes de regressão sejam as mesmas.106

Como @gung faz alusão e @ MånsT mostra explicitamente (+1 a ambos, btw), a centralização / escalonamento não afeta sua inferência estatística nos modelos de regressão - as estimativas são ajustadas adequadamente e os valores- são os mesmos.p

Outras situações em que a centralização e / ou a escala podem ser úteis:

  • quando você estiver tentando somar ou calcular a média de variáveis ​​que estão em escalas diferentes , talvez crie algum tipo de pontuação composta. Sem escala, pode ser que uma variável tenha um impacto maior na soma devido puramente à sua escala, o que pode ser indesejável.

  • Para simplificar cálculos e notação. Por exemplo, a matriz de covariância amostral de uma matriz de valores centralizada por suas médias amostrais é simplesmente . Da mesma forma, se uma variável aleatória univariada tiver sido centrada na média, então e a variação podem ser estimadas a partir de uma amostra observando a média da amostra dos quadrados dos valores observados. valores.XXXvar(X)=E(X2)

  • Relacionado ao mencionado, o PCA só pode ser interpretado como a decomposição de valor singular de uma matriz de dados quando as colunas foram centralizadas pela primeira vez por seus meios.

Observe que a escala não é necessária nos dois últimos pontos mencionados e a centralização pode não ser necessária no primeiro item mencionado, portanto os dois não precisam andar de mãos dadas o tempo todo.


2
+1, esses são bons pontos em que não pensei. Para maior clareza, deixe-me listar alguns exemplos concretos em que um pesquisador pode querer combinar variáveis ​​explicativas antes de executar uma regressão e, portanto, precisa padronizar. Um caso pode ser a pesquisa de distúrbios comportamentais das crianças; os pesquisadores podem obter classificações de pais e professores e, em seguida, desejam combiná-los em uma única medida de desajuste. Outro caso poderia ser um estudo sobre o nível de atividade em um lar de idosos com autoavaliação dos residentes e o número de assinaturas nas folhas de inscrição para atividades.
gung

2
Mas não devemos, em teoria, usar a média da população e o desvio padrão para centralizar / escalar? Na prática, é tão simples quanto usar a média da amostra / DP ou há mais?
AlefSin

3
Por uma questão de completude, deixe-me acrescentar a essa boa resposta que do centralizado e padronizado é a matriz de correlação. XXXX
Cbeleites

1
@AlefSin: você pode realmente querer usar outra coisa que não seja a média da população / sd, veja minha resposta. Mas o seu ponto de vista de que devemos pensar o que usar para centralizar / dimensionar é muito bom.
Cbeleites

@AlefSin, todos os meus comentários foram feitos assumindo que você estava usando a amostra média / DP. Se você centrar na amostra significa que a interpretação da interceptação ainda é a mesma, exceto que é o valor esperado de quando os preditores definem suas médias da amostra . As informações nos meus três pontos de marcador ainda se aplicam quando você centraliza / escala por quantidades de amostra. Também é importante notar que, se você centralizar pela média da amostra, o resultado será uma variável com média 0, mas a escala pelo desvio padrão da amostra não produzirá, em geral, um resultado com o desvio padrão 1 (por exemplo, a estatística t). Yi
Macro

143

β1=.6β2=.3, a primeira variável explicativa é duas vezes mais importante que a segunda. Embora essa idéia seja atraente, infelizmente não é válida. Existem vários problemas, mas talvez o mais fácil de seguir seja que você não tem como controlar possíveis restrições de intervalo nas variáveis. Inferir a "importância" de diferentes variáveis ​​explicativas entre si é uma questão filosófica muito complicada. Nada disso sugere que a padronização seja ruim ou errada , apenas que normalmente não é necessária .

XX2XX


(Atualização adicionada muito mais tarde :) Um caso análogo que eu esqueci de mencionar é a criação de termos de interação . Se um termo de interação / produto for criado a partir de duas variáveis ​​que não estão centralizadas em 0, alguma quantidade de colinearidade será induzida (com a quantidade exata dependendo de vários fatores). A centralização primeiro resolve esse problema em potencial. Para obter uma explicação mais completa, consulte esta excelente resposta do @Affine: diagnóstico de colinearidade problemático somente quando o termo de interação estiver incluído .


12
Se alguém estiver interessado, eu também falar sobre a idéia equivocada de usar betas padronizados para inferir 'importância' relativa aqui: -linear múltipla regressão-for-teste de hipóteses
gung

Obrigado pela sua resposta. Eu acho que descobri isso enquanto isso: alguém poderia pensar no termo ao quadrado como X interagiu consigo mesmo, por assim dizer, e seu argumento sobre a variável interagida seria mais geral.
Abhimanyu Arora

6
XX

Sobre beta1 = 0,6 e beta2 = 0,3, não tenho certeza se dizer que beta1 é tão importante quanto o beta2 é apropriado, mas pensei que, como eles são padronizados, estão na mesma 'escala', ou seja, as unidades são desvios padrão da média. Dito isto, a resposta de Y será duas vezes maior no caso de beta1 (mantendo x2 constante) do que para beta2 (mantendo x1 constante). Direito? Ou entendi errado algo a caminho?
chao

@chao, você realmente não se livrou das unidades intrínsecas às duas variáveis; você acabou de escondê-los. Agora, as unidades de X1 são de 13,9 cm e as unidades de X2 são de 2,3 graus Celsius.
gung

80

Além das observações nas outras respostas, gostaria de salientar que a escala e a localização das variáveis ​​explicativas não afetam a validade do modelo de regressão de forma alguma.

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.

portanto

β^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

Assim, a escala corresponde simplesmente à escala das inclinações correspondentes.

ai=1/sisix1xi


1
É uma boa idéia padronizar variáveis ​​que são muito assimétricas ou é melhor padronizar variáveis ​​distribuídas simetricamente? Devemos padronizar apenas as variáveis ​​de entrada ou também os resultados?
skan 17/01

31

Caso você use a descida do gradiente para ajustar-se ao seu modelo, as covariáveis ​​padronizadas podem acelerar a convergência (porque quando você tem covariáveis ​​não dimensionadas, os parâmetros correspondentes podem dominar inadequadamente o gradiente). Para ilustrar isso, algum código 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

Além disso, para alguns aplicativos de SVMs, a escala pode melhorar o desempenho preditivo: Escala de recursos na descrição de dados vetoriais de suporte .


25

Eu prefiro "razões sólidas" para centralizar e padronizar (elas existem com muita frequência). Em geral, eles têm mais a ver com o conjunto de dados e o problema do que com o método de análise de dados.

Muitas vezes, prefiro centralizar (ou seja, mudar a origem dos dados) para outros pontos que sejam fisicamente / quimicamente / biologicamente / ... mais significativos que a média (consulte também a resposta de Macro), por exemplo

  • a média de um grupo controle

  • sinal em branco

A estabilidade numérica é um motivo relacionado ao algoritmo para centralizar e / ou dimensionar dados.

Além disso, dê uma olhada na pergunta semelhante sobre padronização . Que também abrange "apenas o centro".


24

Para ilustrar a questão da estabilidade numérica mencionada por @cbeleites, aqui está um exemplo de Simon Wood sobre como "quebrar" lm(). Primeiro, geraremos alguns dados simples e ajustaremos uma curva quadrática simples.

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')

insira a descrição da imagem aqui

Mas se adicionarmos 900 a X, o resultado deve ser praticamente o mesmo, exceto para a direita, não? Infelizmente não...

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

insira a descrição da imagem aqui

Edite para adicionar ao comentário por @ Scortchi - se observarmos o objeto retornado por lm (), veremos que o termo quadrático não foi estimado e é mostrado como NA.

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

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

E, de fato, como sugerido por @ Scortchi, se olharmos para a matriz do modelo e tentarmos resolver diretamente, ela "quebra".

> 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

No entanto, lm()não me fornece nenhum aviso ou mensagem de erro além dos NAs na I(X^2)linha do summary(B)R-3.1.1. Outros algoritmos podem, obviamente, ser "quebrados" de diferentes maneiras, com diferentes exemplos.


10
(+1) A nota lmfalha ao estimar um coeficiente para o termo quadrático e fornece um aviso sobre uma matriz de design singular - talvez mais diretamente ilustrativa do problema do que essas plotagens.
Scortchi

3

Eu duvido seriamente que a centralização ou padronização dos dados originais possa realmente mitigar o problema da multicolinearidade quando termos quadrados ou outros termos de interação são incluídos na regressão, como alguns de vocês, em particular o gung, recomendaram acima.

Para ilustrar meu argumento, vamos considerar um exemplo simples.

Suponha que a especificação verdadeira tenha o seguinte formato, de forma que

yi=b0+b1xi+b2xi2+ui

Assim, a equação OLS correspondente é dada por

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¯)

Em resumo, se meu entendimento sobre centralização estiver correto, não creio que os dados de centralização ajudariam a mitigar o problema do MC causado pela inclusão de termos ao quadrado ou outros termos de ordem superior na regressão.

Ficaria feliz em ouvir suas opiniões!


2
Obrigado pela sua contribuição, @ rudi0086021. Você pode estar certo, mas vejo alguns problemas aqui. 1º, centralizar é subtrair a média de x , não subtrair a média de y ; Segundo, você precisa centralizar primeiro, a centralização de pós-palavras não tem efeito conforme você observa. Considere o seguinte: 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

Obrigado pela sua resposta, @gung. Aqui estão os meus pensamentos. Em primeiro lugar, pessoalmente, não vi nenhuma razão convincente para tratar variáveis ​​dependentes e independentes de maneira diferente, isto é, para variáveis ​​independentes, embora não o fizesse para variáveis ​​dependentes.
rudi0086021

2
Em segundo lugar, como você disse, talvez devêssemos centralizar os dados antes de criar termos ao quadrado. Tal prática mitigará o problema do MC. No entanto, isso pode levar a estimativas tendenciosas ou, mais concretamente, ao viés variável omitido (OVB). Para ilustrar, consulte o seguinte exemplo: suponha que a especificação verdadeira seja: y = b0 + b1 * x + b2 * x ^ 2 + u. A centralização antecipada dos dados fornecerá: y = b0 + b1 * (x-xhar) + b2 * (x-xbar) ^ 2 + v, em que o novo termo de erro v = u + b1 * xbar-b2 * xbar ^ 2 + 2b2 * xbar * x. É claro que cov (x-xbar, v)! = 0. Portanto, infelizmente, centralizar os dados antecipadamente levaria a estimativas tendenciosas.
rudi0086021

@ rudi0086021 Parece que, em seu último comentário, você presume que obteria os mesmos coeficientes ao ajustar os dados centralizados que teria ao ajustar os dados não centrados. Mas centralizar antes de tomar o quadrado não é uma simples mudança por uma constante; portanto, não se deve esperar obter os mesmos coeficientes. O melhor ajuste após a centralização é dado por B0 + B1 * (x-xbar) + B2 * (x-xbar) ^ 2 em que B0 = b0 + b1 * xbar + b2 * xbar ^ 2, B1 = b1 + 2 * b2 * xbar e B2 = b2. Assim, v = u. Desculpe responder a esse comentário com atraso, mas sempre pode haver outros como eu que o veem pela primeira vez hoje.
Tim Goodman
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.