회귀 분석을위한 예측 변수를 선택하기 위해 상관 행렬을 사용하고 있습니까?


17

며칠 전, 내 심리학자 연구원은 선형 회귀 모델에 변수를 선택하는 그의 방법에 대해 이야기했습니다. 좋지는 않지만 다른 사람에게 확인을 요청해야합니다. 방법은 다음과 같습니다

모든 변수 (종속 변수 Y 포함) 사이의 상관 행렬을보고 Y와 가장 관련이있는 예측 변수 X를 선택하십시오.

그는 어떤 기준도 언급하지 않았다. Q : 그가 옳았습니까?

[이 예측 방법은 어떤 예측 변수를 선택해야하는지 또는 생략 된 가변 바이어스 (OVB)를 말하는 이론과 같은 많은 이유로 인해 잘못되었다고 생각합니다.]


제목을 "회귀 분석을 위해 예측 변수를 선택하기 위해 상관 행렬을 사용합니까?"로 제목을 변경하는 것이 좋습니다. 또는 더 유익한 것과 비슷한 것. 귀하의 질문에 대한 간단한 반례는 종속 변수와 1의 상관 관계가있는 변수입니다-아마도이 변수를 모델에서 사용하고 싶지 않을 것입니다.
Tim

3
이 방법에는 몇 가지 논리가 있지만 정확히 하나의 회귀자를 선택하도록 제한된 경우에만 작동합니다. 몇 개를 선택할 수 있으면이 방법이 중단됩니다. Y와 약한 상관 관계가있는 X의 선형 조합이 Y와 강한 상관 관계가있는 X의 선형 조합보다 Y와 더 큰 상관 관계를 가질 수 있기 때문입니다. 다중 회귀는 개별적인 것이 아니라 선형 조합에 관한 것임을 상기하십시오. 효과 ...
Richard Hardy

1
상관 단지 표준화 회귀 기울기 대 하나의 독립 변수로 간단한 회귀 분석. 따라서이 방법을 사용하면 기울기 매개 변수의 값이 가장 큰 독립 변수를 찾을 수 있지만 여러 독립 변수가 있으면 더 복잡해집니다.
ρX,Y=Cov(X,Y)σXσY
β^1=Cov(X,Y)σX
Tim

2
이 답변은이 '방법'에 대한 나의 생각을 확인하지만, 많은 심리학자들은 이런 종류의 변수 선택을 사용합니다 :(
Lil'Lobster

이것은 'Leekasso' 와 같습니다 .
steveo'america

답변:


17

어떤 이유로 모형에 하나의 변수 만 포함하려는 경우 와 가장 높은 상관 관계를 갖는 예측 변수를 선택하면 몇 가지 장점이 있습니다. 예측 변수가 하나 뿐인 가능한 회귀 모형 중에서이 모형은 표준화 된 회귀 계수 가 가장 높은 모형이며 (단순 선형 회귀 분석에서 의 제곱이므로 ) 가장 높은 결정 계수입니다 .yR2r

그러나 여러 데이터를 사용할 수있는 경우 회귀 모델을 하나의 예측 변수로 제한하려는 이유는 확실하지 않습니다. 주석에서 언급했듯이 모델에 여러 변수가 포함되어 있으면 상관 관계를 보는 것만으로는 작동하지 않습니다. 예를 들어이 산포 행렬 에서 모형에 포함해야하는 대한 예측 변수 는 x 1 (상관 0.824) 및 x 2 (상관 0.782)이지만 x 3 (상관 0.134)은 유용한 예측 변수가 아니라고 생각할 수 있습니다.yx1x2x3

상관 된 변수의 산점도 행렬

그러나이 예제에서 는 두 개의 독립 변수 x 1x 3 에 의존 하지만 x 2에 직접적으로 의존하지는 않습니다 . 그러나 x 2x 1 과 높은 상관 관계가 있으므로 y 와도 상관 관계가 있습니다. yx 2 의 상관 관계를 따로 살펴보면 x 2y 의 좋은 예측 변수라는 것을 알 수 있습니다 . 그러나의 효과하면 X 1이 되어 밖으로 partialled 포함하여 X 1yx1x3x2x2x1yyx2x2yx1x1 모델에서는 그러한 관계가 남아 있지 않습니다.

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 ***

이 표본 크기는 x 2에 대한 계수 추정의 다중 공선 성 문제를 극복하기에 충분히 큽니다 . 의 계수는 0에 가까우며 중요하지 않은 p- 값으로 추정 됩니다. 실제 계수는 0입니다. 및 의 절편 및 기울기는 각각 실제 값인 5, 3 및 0.5 근처에서 추정됩니다. 참고 제대로 발견이가 분산 매트릭스에서 분명보다 작더라도, 중요한 예측 인자가 될 수 있습니다.x1x2x2x1x3x3

그리고 더 나쁜 예가 여기 있습니다 :

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

여기서 는 (관련되지 않은) 예측 변수 , 및 에 의존합니다. 실제로 실제 회귀 기울기는 각각에 대해 하나입니다. 그것은 네 번째 변수 에 의존하지 않지만 변수가 , 및 각각과 상관되는 방식 때문에 산점도와 상관 행렬에서 두드러지는 일 것입니다 ( 와의 상관 관계 는 0.583, 나머지는 0.4 미만입니다). 따라서 와 가장 높은 상관 관계가있는 변수를 선택하면 실제로 모델에 속하지 않은 변수를 찾을 수 있습니다.yx1x2x3x4x1x2x3x4yy


그러나 ...이 '동료 심리학자'가 Y와 상관 관계가 높은 10 가지 변수 X 중 4 개 (상관 계수 <0.7)를 선택할 때 모든 사고가 상황에 적용됩니까? 6 개의 다른 X는 적당히 상관 관계가 없습니다. Y와 너무 많이?
Lil'Lobster

1
y

0

단계적 회귀 분석을 실행하고 소프트웨어가 F 값을 기반으로 변수를 선택하도록 할 수 있습니다. 회귀 분석을 실행할 때마다 조정 된 R ^ 2 값을보고 모형에 기여하는 새 변수를 추가하는지 확인할 수도 있습니다. 상관 행렬을 사용하여 강한 상관 관계가있는 변수를 선택하면 모델에 다중 공선 성 문제가있을 수 있습니다. 도움이 되었기를 바랍니다!


6
단계적 선택은 OP에 설명 된 방법과 동일한 문제를 야기합니다. stata.com/support/faqs/statistics/stepwise-regression- 문제는 또한이 특정 방법에 대한 문제이며 다른 방법을 찾는 것이 아니라는 점에 유의하십시오.

2
이는 모델 선택을위한 매우 기본적인 방법입니다. 목표가 분산을 엄격하게 설명하는 경우 R2를 사용하는 단계적 단계가 적합 할 수 있지만 추론, 예측, 가설 검정 등에 관심이있는 경우 R2 이상의 방식으로 생각해야합니다. (그리고 아마도 R2를 무시할 수도 있습니다).
robin.datadrivers 2016
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.