Alguns dos meus preditores estão em escalas muito diferentes - preciso transformá-los antes de ajustar um modelo de regressão linear?


9

Eu gostaria de executar a regressão linear sobre um conjunto de dados multidimensional. Existem diferenças entre diferentes dimensões em termos de magnitude de ordem. Por exemplo, a dimensão 1 geralmente possui um intervalo de valores de [0, 1] e a dimensão 2 possui um intervalo de valores de [0, 1000].

Preciso fazer alguma transformação para garantir que os intervalos de dados para diferentes dimensões estejam na mesma escala? Se for necessário, há alguma orientação para esse tipo de transformação?

Respostas:


14

As variáveis ​​de deslocamento / dimensionamento não afetam sua correlação com a resposta

Para ver por que isso é verdade, suponha que a correlação entre e X seja ρ . Então a correlação entre Y e ( X - a ) / b éYXρY(Xa)/b

cov(Y,(X-uma)/b)SD((X-uma)/b)SD(Y)=cov(Y,X/b)SD(X/b)SD(Y)=1 1bcov(Y,X)1 1bSD(X)SD(Y)=ρ

que decorre da definição de correlação e três fatos:

  • cov(Y,X+uma)=cov(Y,X)+cov(Y,uma)=0 0=cov(Y,X)

  • cov(Y,umaX)=umacov(Y,X)

  • SD(umaX)=umaSD(X)

Portanto, em termos de ajuste do modelo (por exemplo, ou os valores ajustados), deslocando ou escalar suas variáveis (por exemplo, colocá-los na mesma escala) não vai mudar o modeloR2 , uma vez que coeficientes de regressão linear estão relacionados com as correlações entre variáveis. Isso mudará apenas a escala dos seus coeficientes de regressão , que devem ser lembrados quando você estiver interpretando a saída se optar por transformar seus preditores.

Edit: O acima assumiu que você está falando de regressão comum com a interceptação. Mais alguns pontos relacionados a isso (obrigado @cardinal):

  • A interceptação pode mudar quando você transforma suas variáveis ​​e, como @cardinal aponta nos comentários, os coeficientes mudam quando você muda suas variáveis ​​se você omitir a interceptação do modelo, embora eu assuma que você não fará isso a menos que tenha uma boa razão (veja, por exemplo, esta resposta ).

  • Se você estiver regularizando seus coeficientes de alguma forma (por exemplo, Lasso, regressão de crista), a centralização / redimensionamento afetará o ajuste. Por exemplo, se você estiver penalizando (a penalidade de regressão da crista), não poderá recuperar um ajuste equivalente após a padronização, a menos que todas as variáveis ​​estivessem na mesma escala em primeiro lugar, ou seja, não há múltiplo constante que recuperar a mesma penalidade.βEu2

Sobre quando / por que um pesquisador pode querer transformar preditores

Uma circunstância comum (discutida na resposta subsequente de @Paul) é que os pesquisadores padronizarão seus preditores para que todos os coeficientes fiquem na mesma escala. Nesse caso, o tamanho das estimativas pontuais pode dar uma idéia aproximada de quais preditores têm o maior efeito depois que a magnitude numérica do preditor for padronizada.

Outro motivo pelo qual um pesquisador pode gostar de dimensionar variáveis ​​muito grandes é o de que os coeficientes de regressão não estejam em uma escala extremamente pequena. Por exemplo, se você quiser examinar a influência do tamanho da população de um país na taxa de criminalidade (não poderia pensar em um exemplo melhor), convém medir o tamanho da população em milhões, e não em suas unidades originais, uma vez que o coeficiente pode ser algo como ..00000001


Duas observações rápidas: embora o início da postagem esteja correto, ele perde o fato de que a centralização terá efeito se uma interceptação estiver ausente. :) Segundo, centralizar e redimensionar efeitos importantes se a regularização for usada. Embora o PO possa não estar considerando isso, ainda é provavelmente um ponto útil a ser lembrado.
cardeal

Xy^=X(XX)-1 1XyXXDD
y~=(XD)((XD)XD)-1 1(XD)y=XD(DXXD)-1 1DXy=X(XX)-1 1Xy=y^.

@ cardinal, decidi mencionar o fato de que, se suas estimativas forem regularizadas, a centralização / dimensionamento poderá ter um impacto. Resisti no começo porque pensei que começaria uma longa digressão que pode confundir aqueles que não estão familiarizados com a regularização, mas achei que poderia lidar com isso com relativamente pouco espaço. Thanks--
Macro

Nem todos os meus comentários têm necessariamente a intenção de sugerir que a resposta seja atualizada. Muitas vezes, eu apenas gosto de fazer observações auxiliares em boas respostas para refletir sobre idéias relacionadas que podem ser do interesse de um transeunte. (+1)
cardeal

Algo descolado está acontecendo com a contagem dos votos. Mais uma vez, votei isso de maneira positiva ao fazer meu comentário anterior e ele não "levou". Hmm.
cardeal

2

A chamada "normalização" é uma rotina comum para a maioria dos métodos de regressão. Existem duas maneiras:

  1. Mapeie cada variável nos limites [-1, 1] (mapminmax no MatLab.
  2. X~Euj=XEuj-μEuσEu
    X~Euj=XEuj-XEu¯std(XEu)
    E[XEu]=μE[XEu2-E[XEu]2]=σ2XEu¯=1 1Nj=1 1NXEujstd(XEu)=1 1Nj=1 1N(XEuj2-XEu¯2)

Como a regressão linear é muito sensível aos intervalos de variáveis, eu geralmente sugeriria normalizar todas as variáveis ​​se você não tiver conhecimento prévio sobre a dependência e esperar que todas as variáveis ​​sejam relativamente importantes.

O mesmo vale para as variáveis ​​de resposta, embora não seja muito importante para elas.

Por que fazer normalização ou padronização? Principalmente para determinar o impacto relativo de diferentes variáveis ​​no modelo. Isso pode ser alcançado se todas as variáveis ​​estiverem nas mesmas unidades.

Espero que isto ajude!


x1,x2,ysummary(lm(y~x1+x2))$r.sqsummary(lm(y~scale(x1)+scale(x2)))$r.sqR2

R2

p
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.