O uso da matriz de correlação para selecionar preditores de regressão está correto?

17

Alguns dias atrás, um psicólogo-pesquisador meu me contou sobre seu método para selecionar variáveis ​​para o modelo de regressão linear. Acho que não é bom, mas preciso pedir a alguém para ter certeza. O método é:

Observe a matriz de correlação entre todas as variáveis ​​(incluindo a variável dependente Y) e escolha os preditores Xs que mais se correlacionam com Y.

Ele não mencionou nenhum critério. Q: Ele estava certo?

[Eu acho que esse método de seleção está errado, por causa de muitas coisas, como é a teoria que diz quais preditores devem ser selecionados ou até mesmo o viés variável omitido (OVB).]

Lil'Lobster
fonte
Sugiro alterar o título para "O uso da matriz de correlação para selecionar preditores de regressão está correto?" ou algo semelhante para ser mais informativo. Um contra-exemplo simples para sua pergunta é uma variável que tem correlação 1 com a variável dependente - você provavelmente não vai gostar de usar essa no seu modelo.
Tim
3
Há alguma lógica no método, mas só funciona se você estiver restrito a selecionar exatamente um regressor. Se você pode selecionar alguns, esse método será interrompido. É porque uma combinação linear de alguns Xs que são apenas fracamente correlacionados com Y pode ter uma correlação maior com Y do que uma combinação linear de alguns Xs que são fortemente correlacionados com Y. Lembre-se de que a regressão múltipla é sobre combinações lineares, não apenas individuais efeitos ...
Richard Hardy
11
Correlação é apenas inclinação da regressão padronizado β 1=COv(X,Y)
ρX,Y=Cov(X,Y)σXσY
para regressão simples com uma variável independente. Portanto, essa abordagem permite encontrar a variável independente com maior valor para o parâmetro slope, mas fica mais complicada com várias variáveis ​​independentes.
β^1=Cov(X,Y)σX
Tim
2
Essas respostas confirmam minha opinião sobre esse 'método', mas muitos psicólogos usam esse tipo de seleção de variáveis ​​:(
Lil'Lobster 24/02
Isso soa como o 'Leekasso' .
Steveo'america

Respostas:

17

Se, por algum motivo, você incluir apenas uma variável em seu modelo, a seleção do preditor que tem a maior correlação com tem várias vantagens. Fora dos possíveis modelos de regressão com apenas um preditor, em seguida, este modelo é o que apresentou o maior coeficiente de regressão normalizado e também (desde que R 2 é o quadrado de r em uma regressão linear simples ) mais alto coeficiente de determinação .yR2r

Mas não está claro por que você deseja restringir seu modelo de regressão a um preditor se você possui dados disponíveis para vários. Conforme mencionado nos comentários, apenas observar as correlações não funcionará se o seu modelo incluir várias variáveis. Por exemplo, nessa matriz de dispersão, você pode pensar que os preditores de você deve incluir em seu modelo são x 1 (correlação 0,824) e x 2 (correlação 0,782), mas que x 3 (correlação 0,134) não é um preditor útil.yx1x2x3

Matriz de dispersão de variáveis ​​correlacionadas

yx1x3x2x2x1yyx2x2yx1x1 no modelo, esse relacionamento não permanece.

require(MASS) #for mvrnorm 
set.seed(42) #so reproduces same result

Sigma <- matrix(c(1,0.95,0,0.95,1,0,0,0,1),3,3)
N <- 1e4
x <- mvrnorm(n=N, c(0,0,0), Sigma, empirical=TRUE)
data.df <- data.frame(x1=x[,1], x2=x[,2], x3=x[,3])
# y depends on x1 strongly and x3 weakly, but not directly on x2
data.df$y <- with(data.df, 5 + 3*x1 + 0.5*x3) + rnorm(N, sd=2)

round(cor(data.df), 3)
#       x1    x2    x3     y
# x1 1.000 0.950 0.000 0.824
# x2 0.950 1.000 0.000 0.782
# x3 0.000 0.000 1.000 0.134
# y  0.824 0.782 0.134 1.000
# Note: x1 and x2 are highly correlated
# Since y is highly correlated with x1, it is with x2 too
# y depended only weakly on x3, their correlation is much lower

pairs(~y+x1+x2+x3,data=data.df, main="Scatterplot matrix")
# produces scatter plot above

model.lm <- lm(data=data.df, y ~ x1 + x2 + x3)
summary(model.lm)

# Coefficients:
#             Estimate Std. Error t value Pr(>|t|)    
# (Intercept)  4.99599    0.02018 247.631   <2e-16 ***
# x1           3.03724    0.06462  47.005   <2e-16 ***
# x2          -0.02436    0.06462  -0.377    0.706    
# x3           0.49185    0.02018  24.378   <2e-16 ***

x1x2x2x1x3x3 é corretamente considerado um preditor significativo, mesmo que isso seja menos do que óbvio na matriz de dispersão.

E aqui está um exemplo que é ainda pior:

Sigma <- matrix(c(1,0,0,0.5,0,1,0,0.5,0,0,1,0.5,0.5,0.5,0.5,1),4,4)
N <- 1e4
x <- mvrnorm(n=N, c(0,0,0,0), Sigma, empirical=TRUE)
data.df <- data.frame(x1=x[,1], x2=x[,2], x3=x[,3], x4=x[,4])
# y depends on x1, x2 and x3 but not directly on x4
data.df$y <- with(data.df, 5 + x1 + x2 + x3) + rnorm(N, sd=2)

round(cor(data.df), 3)
#       x1    x2    x3    x4     y
# x1 1.000 0.000 0.000 0.500 0.387
# x2 0.000 1.000 0.000 0.500 0.391
# x3 0.000 0.000 1.000 0.500 0.378
# x4 0.500 0.500 0.500 1.000 0.583
# y  0.387 0.391 0.378 0.583 1.000

pairs(~y+x1+x2+x3+x4,data=data.df, main="Scatterplot matrix")

model.lm <- lm(data=data.df, y ~ x1 + x2 + x3 +x4)
summary(model.lm)
# Coefficients:
#             Estimate Std. Error t value Pr(>|t|)    
# (Intercept)  4.98117    0.01979 251.682   <2e-16 ***
# x1           0.99874    0.02799  35.681   <2e-16 ***
# x2           1.00812    0.02799  36.016   <2e-16 ***
# x3           0.97302    0.02799  34.762   <2e-16 ***
# x4           0.06002    0.03958   1.516    0.129

yx1x2x3x4x1x2x3x4yy pode realmente encontrar a variável que não pertence ao modelo.

Silverfish
fonte
Mas ... tudo isso se aplica à situação, quando este "colega psicólogo" escolhe - digamos - 4 de 10 variáveis ​​Xs, que se correlacionam altamente com Y (coefs de correlação <0,7), deixando seis outros Xs que se correlacionam moderadamente ou não tanto com Y?
Lil'Lobster
11
y
0

Você pode executar uma análise de regressão passo a passo e deixar o software escolher as variáveis ​​com base nos valores de F. Você também pode observar o valor de R ^ 2 ajustado ao executar a regressão a cada vez, para ver se está adicionando alguma nova variável que esteja contribuindo para o seu modelo. Seu modelo pode ter o problema de multicolinearidade se você apenas seguir pela matriz de correlação e escolher variáveis ​​com forte correlação. Espero que isto ajude!

learning_stats
fonte
6
A seleção passo a passo leva aos mesmos problemas do método descrito por OP: stata.com/support/faqs/statistics/stepwise-regression-problems também observe que a pergunta era sobre esse método e não sobre a procura de métodos alternativos.
Tim
2
Este é um método muito básico para a seleção de modelos - se seu objetivo é estritamente uma explicação da variação, o uso gradual do R2 pode ser apropriado, mas se você estiver interessado em inferência, previsão, teste de hipóteses etc., precisará pensar muito além do R2 (e talvez até ignore o R2).
Robin.datadrivers