Regresyon için yordayıcıları seçmek için korelasyon matrisi kullanmak doğru mu?


17

Birkaç gün önce, bir psikolog araştırmacım bana doğrusal regresyon modeline değişken seçme yöntemini anlattı. Sanırım iyi değil, ama emin olmak için bir başkasına sormam gerekiyor. Yöntem:

Tüm değişkenler (Bağımlı Değişken Y dahil) arasındaki korelasyon matrisine bakın ve X'leri en çok Y ile ilişkilendiren bu yordayıcıları seçin.

Herhangi bir kriterden bahsetmedi. S: Haklı mıydı?

[Bu seçim yönteminin yanlış olduğunu düşünüyorum, çünkü birçok şeyden dolayı, hangi tahmin edicilerin seçilmesi gerektiğini, hatta değişken önyargıyı (OVB) atladığını söyleyen teori gibi.]


Başlığı "Regresyon için öngörücüler seçmek için korelasyon matrisi kullanılıyor mu?" veya daha bilgilendirici olmaya benzer bir şey. Sorunuza basit bir karşı örnek, 1'in bağımlı değişkenle korelasyonu olan bir değişkendir - muhtemelen bunu modelinizde kullanmak istemezsiniz.
Tim

3
Yöntemin bazı mantığı vardır, ancak yalnızca tam olarak bir regresör seçmekle kısıtlıysanız çalışır. Birkaç tane seçebilirseniz, bu yöntem bozulur. Bunun nedeni, Y ile zayıf bir şekilde ilişkili olan birkaç X'in doğrusal bir kombinasyonunun Y ile güçlü bir şekilde ilişkilendirilmiş birkaç X'in doğrusal bir kombinasyonundan daha büyük bir korelasyona sahip olabileceğidir. etkileri ...
Richard Hardy

1
Korelasyon sadece regresyon eğim standardize edilir β 1=Cov(x,Y)
ρX,Y=Cov(X,Y)σXσY
Bir bağımsız değişken ile basit regresyon için σ X. Dolayısıyla bu yaklaşım, eğim parametresi için en yüksek değere sahip bağımsız değişkeni bulmanıza izin verir, ancak çoklu bağımsız değişkenlerle daha karmaşık hale gelir.
β^1=Cov(X,Y)σX
Tim

2
Bu yanıtlar bu 'yöntem' hakkındaki düşüncelerimi doğruladı, ancak birçok psikolog bu tür bir değişken seçimi kullanıyor :(
Lil'Lobster

Bu 'Leekasso' gibi geliyor .
steveo'america

Yanıtlar:


17

Herhangi bir nedenle, modelinize yalnızca bir değişken ekleyecekseniz, ile en yüksek korelasyona sahip öngörücüyü seçmenin birkaç avantajı vardır. Sadece bir tahminci ile mümkün regresyon modelleri dışında, o zaman bu model en yüksek olan biridir standardize edilmiş regresyon katsayısına da ve (beri R 2 kare olan r gerileme doğrusal bir basit içinde en yüksek) determinasyon katsayısı .yR2r

Ancak, birkaçına ait verileriniz varsa, regresyon modelinizi neden bir öngörücüyle kısıtlamak istediğiniz açık değildir. Yorumlarda belirtildiği gibi, modeliniz birkaç değişken içeriyorsa, sadece korelasyonlara bakmak işe yaramaz. Örneğin, bu dağılım matrisinden, modelinize dahil etmeniz gereken için öngörücülerin x 1 (korelasyon 0.824) ve x 2 (korelasyon 0.782) olduğunu, ancak x 3'ün (korelasyon 0.134) yararlı bir öngörücü olmadığını düşünebilirsiniz .yx1x2x3

İlişkili değişkenlerin dağılım grafiği matrisi

yx1x3x2x2x1yyx2x2yx1x1 modelde böyle bir ilişki kalmamıştır.

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

Ve işte daha da kötü bir örnek:

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 aslında modele ait olmayan değişkeni bulabilir.


Ama ... bu 'diğer psikolog', - Y - ile yüksek korelasyon gösteren 10 değişken X'den 4'ünü (korelasyon katsayı <0.7) seçtiğinde, orta derecede korelasyon gösteren altı diğer X'i bırakarak, tüm düşünme durum için geçerli mi? Y ile çok mu fazla?
Lil'Lobster

1
y

0

Kademeli bir regresyon analizi çalıştırabilir ve yazılımın F değerlerine göre değişkenleri seçmesine izin verebilirsiniz. Modelinize katkıda bulunan yeni bir değişken eklenip eklenmediğini görmek için regresyonu her seferinde çalıştırdığınızda Düzeltilmiş R ^ 2 değerine de bakabilirsiniz. Sadece korelasyon matrisine gidip güçlü korelasyona sahip değişkenleri seçerseniz, modelinizin çoklu bağlantı sorunu olabilir. Bu yardımcı olur umarım!


6
Kademeli seçim, OP tarafından açıklanan yöntemle aynı sorunlara yol açar: stata.com/support/faqs/statistics/stepwise-regression-problems , sorunun alternatif yöntemler aramakla değil, bu belirli yöntemle ilgili olduğunu da not eder.
Tim

2
Bu, model seçimi için çok temel bir yöntemdir - hedefiniz varyansın kesinlikle açıklanmasıysa, aşamalı olarak R2 kullanmak uygun olabilir, ancak çıkarım, tahmin, hipotez testi vb.Ile ilgileniyorsanız, R2'nin ötesinde düşünmeniz gerekir. (ve hatta R2'yi bile görmezden gelir).
robin.datadrivers
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.