어떤 이유로 모형에 하나의 변수 만 포함하려는 경우 와 가장 높은 상관 관계를 갖는 예측 변수를 선택하면 몇 가지 장점이 있습니다. 예측 변수가 하나 뿐인 가능한 회귀 모형 중에서이 모형은 표준화 된 회귀 계수 가 가장 높은 모형이며 ( 는 단순 선형 회귀 분석에서 의 제곱이므로 ) 가장 높은 결정 계수입니다 .yR2r
그러나 여러 데이터를 사용할 수있는 경우 회귀 모델을 하나의 예측 변수로 제한하려는 이유는 확실하지 않습니다. 주석에서 언급했듯이 모델에 여러 변수가 포함되어 있으면 상관 관계를 보는 것만으로는 작동하지 않습니다. 예를 들어이 산포 행렬 에서 모형에 포함해야하는 대한 예측 변수 는 x 1 (상관 0.824) 및 x 2 (상관 0.782)이지만 x 3 (상관 0.134)은 유용한 예측 변수가 아니라고 생각할 수 있습니다.yx1x2x3
그러나이 예제에서 는 두 개의 독립 변수 x 1 과 x 3 에 의존 하지만 x 2에 직접적으로 의존하지는 않습니다 . 그러나 x 2 는 x 1 과 높은 상관 관계가 있으므로 y 와도 상관 관계가 있습니다. y 와 x 2 의 상관 관계를 따로 살펴보면 x 2 가 y 의 좋은 예측 변수라는 것을 알 수 있습니다 . 그러나의 효과하면 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