Qual é o efeito de ter preditores correlacionados em um modelo de regressão múltipla?

45

Aprendi na aula de modelos lineares que, se dois preditores estiverem correlacionados e ambos forem incluídos em um modelo, um será insignificante. Por exemplo, suponha que o tamanho de uma casa e o número de quartos estejam correlacionados. Ao prever o custo de uma casa usando esses dois preditores, um deles pode ser descartado porque ambos fornecem muitas das mesmas informações. Intuitivamente, isso faz sentido, mas tenho algumas perguntas mais técnicas:

  1. Como esse efeito se manifesta nos valores-p dos coeficientes de regressão ao incluir apenas um ou incluir ambos os preditores no modelo?
  2. Como a variação dos coeficientes de regressão é afetada pela inclusão de ambos os preditores no modelo ou por apenas um?
  3. Como sei qual preditor o modelo escolherá ser menos significativo?
  4. Como a inclusão de apenas um ou de ambos os preditores altera o valor / variação do meu custo previsto?
Vivek Subramanian
fonte
6
As respostas para algumas de suas perguntas apareceram em outros tópicos, como em stats.stackexchange.com/a/14528 , que descreve uma situação em que cada um de um conjunto de apenas preditores levemente correlacionados parece insignificante, mesmo que eles pertençam coletivamente no modelo. É um bom conjunto de perguntas, mas leva a um grande número de considerações e técnicas; livros inteiros foram escritos sobre eles. Veja, por exemplo, Estratégias de Modelagem de Regressão de Frank Harrell .
whuber
1
Usando o tamanho da casa e os quartos, você pode ver que a insignificância não é garantida se a correlação for diferente de 1 ou -1. Na verdade, existem casas de 2 e 3 quartos com o mesmo tamanho e seus custos podem ser (significativamente) diferentes, tornando os dois preditores significativos. No entanto, o tamanho em metros quadrados e o tamanho em pés quadrados têm correlação = 1 e um deles sempre pode ser descartado.
Pere

Respostas:

38

O tópico que você está perguntando é multicolinearidade . Você pode ler alguns dos tópicos no CV categorizados sob a tag . A resposta do @ whuber vinculada acima em particular também vale o seu tempo.


A afirmação de que "se dois preditores são correlacionados e ambos são incluídos em um modelo, um será insignificante", não está correta. Se houver um efeito real de uma variável, a probabilidade de que a variável seja significativa é função de várias coisas, como a magnitude do efeito, a magnitude da variação do erro, a variação da própria variável, a quantidade de dados. você possui e o número de outras variáveis ​​no modelo. Se as variáveis ​​estão correlacionadas também é relevante, mas não substitui esses fatos. Considere a seguinte demonstração simples em R:

library(MASS)    # allows you to generate correlated data
set.seed(4314)   # makes this example exactly replicable

# generate sets of 2 correlated variables w/ means=0 & SDs=1
X0 = mvrnorm(n=20,   mu=c(0,0), Sigma=rbind(c(1.00, 0.70),    # r=.70
                                            c(0.70, 1.00)) )
X1 = mvrnorm(n=100,  mu=c(0,0), Sigma=rbind(c(1.00, 0.87),    # r=.87
                                            c(0.87, 1.00)) )
X2 = mvrnorm(n=1000, mu=c(0,0), Sigma=rbind(c(1.00, 0.95),    # r=.95
                                            c(0.95, 1.00)) )
y0 = 5 + 0.6*X0[,1] + 0.4*X0[,2] + rnorm(20)    # y is a function of both
y1 = 5 + 0.6*X1[,1] + 0.4*X1[,2] + rnorm(100)   #  but is more strongly
y2 = 5 + 0.6*X2[,1] + 0.4*X2[,2] + rnorm(1000)  #  related to the 1st

# results of fitted models (skipping a lot of output, including the intercepts)
summary(lm(y0~X0[,1]+X0[,2]))
#             Estimate Std. Error t value Pr(>|t|)    
# X0[, 1]       0.6614     0.3612   1.831   0.0847 .     # neither variable
# X0[, 2]       0.4215     0.3217   1.310   0.2075       #  is significant
summary(lm(y1~X1[,1]+X1[,2]))
#             Estimate Std. Error t value Pr(>|t|)    
# X1[, 1]      0.57987    0.21074   2.752  0.00708 **    # only 1 variable
# X1[, 2]      0.25081    0.19806   1.266  0.20841       #  is significant
summary(lm(y2~X2[,1]+X2[,2]))
#             Estimate Std. Error t value Pr(>|t|)    
# X2[, 1]      0.60783    0.09841   6.177 9.52e-10 ***   # both variables
# X2[, 2]      0.39632    0.09781   4.052 5.47e-05 ***   #  are significant

N


X1X2R2X11/(1R2)X110X110×X1

Pensar no que aconteceria se você incluísse as duas variáveis ​​correlacionadas versus apenas uma é semelhante, mas um pouco mais complicada do que a abordagem discutida acima. Isso ocorre porque não incluir uma variável significa que o modelo usa menos graus de liberdade, o que altera a variação residual e tudo o que é calculado a partir disso (incluindo a variação dos coeficientes de regressão). Além disso, se a variável não incluída realmente estiver associada à resposta, a variação na resposta devido a essa variável será incluída na variação residual, tornando-a maior do que seria. Assim, várias coisas mudam simultaneamente (a variável está correlacionada ou não com outra variável e a variação residual), e o efeito preciso de abandonar / incluir a outra variável dependerá de como elas serão trocadas.


Armado com uma compreensão do VIF, aqui estão as respostas para suas perguntas:

  1. Como a variância da distribuição amostral do coeficiente de regressão seria maior (por um fator do VIF) se estivesse correlacionada com outras variáveis ​​do modelo, os valores de p seriam maiores (isto é, menos significativos) do que de outra forma .
  2. As variações dos coeficientes de regressão seriam maiores, como já discutido.
  3. Y
  4. Como os valores previstos e sua variação mudariam é bastante complicado. Depende de quão fortemente correlacionadas são as variáveis ​​e da maneira como elas parecem estar associadas à sua variável de resposta nos seus dados. Em relação a esse problema, pode ser útil ler minha resposta aqui: Existe uma diferença entre 'controlar' e 'ignorar' outras variáveis ​​na regressão múltipla?
- Reinstate Monica
fonte
5

Isso é mais um comentário, mas eu queria incluir um gráfico e algum código.

Penso que a afirmação "se dois preditores estão correlacionados e ambos são incluídos em um modelo, um será insignificante" é falso se você quer dizer "apenas um". A significância estatística binária não pode ser usada para seleção de variáveis.

Aqui está o meu contra-exemplo usando uma regressão do percentual de gordura corporal na circunferência da coxa, espessura da dobra da pele * e circunferência do braço:

. webuse bodyfat, clear
(Body Fat)

. reg bodyfat thigh triceps midarm

      Source |       SS       df       MS              Number of obs =      20
-------------+------------------------------           F(  3,    16) =   21.52
       Model |  396.984607     3  132.328202           Prob > F      =  0.0000
    Residual |  98.4049068    16  6.15030667           R-squared     =  0.8014
-------------+------------------------------           Adj R-squared =  0.7641
       Total |  495.389513    19  26.0731323           Root MSE      =    2.48

------------------------------------------------------------------------------
     bodyfat |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
       thigh |  -2.856842   2.582015    -1.11   0.285    -8.330468    2.616785
     triceps |   4.334085   3.015511     1.44   0.170    -2.058512    10.72668
      midarm |  -2.186056   1.595499    -1.37   0.190    -5.568362     1.19625
       _cons |   117.0844   99.78238     1.17   0.258    -94.44474    328.6136
------------------------------------------------------------------------------

. corr bodyfat thigh triceps midarm 
(obs=20)

             |  bodyfat    thigh  triceps   midarm
-------------+------------------------------------
     bodyfat |   1.0000
       thigh |   0.8781   1.0000
     triceps |   0.8433   0.9238   1.0000
      midarm |   0.1424   0.0847   0.4578   1.0000


. ellip thigh triceps, coefs plot( (scatteri `=_b[thigh]' `=_b[triceps]'), yline(0, lcolor(gray)) xline(0, lcolor(gray)) legend(off))

insira a descrição da imagem aqui

Como você pode ver na tabela de regressão, tudo é insignificante, embora os valores de p variem um pouco.

β

Então, como sabemos quais preditores seriam menos significativos? A variação em um regressor pode ser classificada em dois tipos:

  1. Variação exclusiva para cada regressor
  2. Variação compartilhada pelos regressores

R2


* A dobra da pele é a largura de uma dobra da pele tomada sobre o músculo tríceps e medida com uma pinça.

Dimitriy V. Masterov
fonte
Gosto do seu exemplo, mas, estritamente falando, seria um contra-exemplo se a afirmação na pergunta original dissesse "se [...] apenas um será insignificante", mas não possui a palavra "somente".
Ameba diz Reinstate Monica
@amoeba Esse é um ponto excelente. Vou alterar o meu comentário.
Dimitriy V. Masterov 12/02/2014
Você pode fornecer uma fórmula para ilustrar melhor: "Na estimativa dos coeficientes de cada regressor, apenas o primeiro será usado. A variação comum é ignorada, pois não pode ser alocada"
mac
3

Como o @whuber observou, essa é uma pergunta complexa. No entanto, a primeira frase da sua postagem é uma grande simplificação. Geralmente, duas (ou mais) variáveis ​​serão correlacionadas e ambas relacionadas à variável dependente. Se eles são significativos ou não, depende do tamanho do efeito e do tamanho da célula.

No seu exemplo, suponha que, para um determinado tamanho de casa, as pessoas preferissem menos cômodos (pelo menos em Nova York, isso não é razoável - indicaria edifícios mais antigos, paredes mais sólidas etc. e pode ser um marcador de vizinhança). Então ambos podem ser significativos, em direções opostas!

Ou, suponha que as duas variáveis ​​fossem tamanho da casa e vizinhança - elas seriam correlacionadas, com certeza, casas maiores em bairros melhores -, mas elas ainda poderiam ser significativas e certamente relacionadas ao preço da habitação.

Além disso, usando apenas complexidades de máscaras "correlacionadas". As variáveis ​​podem estar fortemente relacionadas sem serem correlacionadas.

Peter Flom - Restabelece Monica
fonte