Skip to Content
자격증ADsP18. 회귀분석: 단순·다중 회귀

이번 문서의 목표: 최소제곱법으로 회귀식이 정해지는 원리를 이해하고, R의 summary(lm(...)) 출력에 나오는 모든 항목을 하나씩 읽어내며, 결정계수와 수정된 결정계수의 차이·다중공선성 문제를 판단할 수 있다.

회귀분석이란 무엇인가

왜 필요한가

17편의 상관분석은 “두 변수가 얼마나 강하게 관계돼 있는가”라는 관계의 강도를 알려줄 뿐, “한 변수의 값이 얼마일 때 다른 변수의 값이 대략 얼마가 될지” 구체적인 예측값을 계산해주지는 못한다. 예를 들어 “공부 시간과 시험 점수의 상관계수가 0.98이다”라는 사실만으로는 “공부를 7시간 하면 점수가 몇 점이 될지”를 답할 수 없다. 이 예측을 가능하게 하는 것이 회귀분석(regression analysis)이다. 회귀분석은 한 변수(또는 여러 변수)의 값으로 다른 한 변수의 값을 설명하고 예측하는 직선(또는 평면) 형태의 수식을 데이터로부터 찾아내는 기법이다.

쉽게 말하면: 회귀분석은 산점도에 흩어진 점들을 가장 잘 대표하는 직선 하나를 찾아, 그 직선으로 값을 예측하는 방법이다.

정의

회귀분석에서 예측의 대상이 되는 변수를 종속변수(dependent variable, YY, 반응변수·결과변수라고도 한다)라 하고, 종속변수를 설명하는 데 쓰이는 변수를 독립변수(independent variable, XX, 설명변수·예측변수라고도 한다)라 한다. 독립변수가 하나면 단순회귀분석(simple linear regression), 독립변수가 둘 이상이면 다중회귀분석(multiple linear regression)이라 부른다.

단순회귀모형과 최소제곱법

왜 필요한가

산점도 위에 직선을 그어보면 무한히 많은 직선을 그을 수 있다. 그중에서 “가장 데이터를 잘 대표하는” 하나의 직선을 어떻게 골라낼 것인가가 회귀분석의 핵심 문제다. 이 기준을 수학적으로 정의한 방법이 최소제곱법(least squares method, OLS라고도 하며 Ordinary Least Squares의 약자다)이다.

쉽게 말하면: 최소제곱법은 “실제 값과 직선이 예측한 값의 차이(오차)를 제곱해서 다 더한 값이 가장 작아지는” 직선을 고르는 방법이다.

정의

단순회귀모형은 다음과 같은 형태로 쓴다.

yi=β0+β1xi+ϵiy_i = \beta_0 + \beta_1 x_i + \epsilon_i
  • yiy_i: ii번째 관측치의 종속변수 값
  • xix_i: ii번째 관측치의 독립변수 값
  • β0\beta_0 (베타 제로): 절편(intercept). 독립변수 xx가 0일 때 예측되는 yy
  • β1\beta_1 (베타 원): 기울기(slope, 회귀계수). 독립변수 xx가 1단위 늘어날 때 종속변수 yy가 평균적으로 얼마나 변하는지
  • ϵi\epsilon_i (엡실론): 오차항(error term). 회귀직선으로 설명되지 않는, 관측치마다 다른 무작위 변동

이 모형에서 β0\beta_0, β1\beta_1은 모집단 전체를 알아야 정확히 알 수 있는 참값(모수)이므로, 실제로는 표본 데이터로 이 값을 추정한 β0^\hat{\beta_0}, β1^\hat{\beta_1}(베타 햇, 추정치를 뜻하는 모자 기호)을 사용해 다음과 같은 추정된 회귀식을 얻는다.

yi^=β0^+β1^xi\hat{y_i} = \hat{\beta_0} + \hat{\beta_1} x_i
  • yi^\hat{y_i} (와이 햇): 회귀식이 예측한 값(적합값, fitted value)
  • 실제 관측값 yiy_i와 적합값 yi^\hat{y_i}의 차이 ei=yiyi^e_i = y_i - \hat{y_i}잔차(residual)라 한다. 잔차는 오차항 ϵi\epsilon_i의 표본에서의 추정치에 해당한다.

최소제곱법은 이 잔차들의 제곱합, 즉 잔차제곱합(SSE, Sum of Squared Errors, 혹은 SSR로 표기하는 교재도 있어 표기법에 유의해야 한다 — 이 문서에서는 오차제곱합을 SSE로 통일한다)을 최소로 만드는 β0^\hat{\beta_0}, β1^\hat{\beta_1}을 찾는다.

SSE=i=1n(yiyi^)2SSE = \sum_{i=1}^{n} (y_i - \hat{y_i})^2
  • SSESSE: 잔차(오차) 제곱합. 회귀직선이 설명하지 못하고 남긴 변동의 크기.

왜 절댓값이 아니라 제곱을 쓰는가 하면, 절댓값은 미분이 매끄럽지 않아 수학적으로 최솟값을 구하는 계산이 까다롭지만, 제곱합은 미분해 0이 되는 지점을 찾는 방식으로 β0^\hat{\beta_0}, β1^\hat{\beta_1}을 깔끔한 수식으로 유도할 수 있기 때문이다. 또한 제곱을 취하면 양의 오차와 음의 오차가 서로 상쇄되지 않고, 큰 오차에 더 큰 벌점을 준다는 장점도 있다.

회귀계수의 해석

왜 필요한가

회귀식을 구했다면, 그 식에 등장하는 계수들이 실제로 무엇을 의미하는지 정확히 읽어낼 수 있어야 한다. 회귀계수를 잘못 해석하면 “숫자는 맞게 계산했지만 결론은 틀린” 실수를 하게 된다.

계산·적용

주간 공부 시간(시간)과 시험 점수(점)에 대해 R로 단순회귀분석을 수행했다고 하자.

x <- c(2, 4, 6, 8, 10) y <- c(50, 60, 70, 75, 95) model <- lm(y ~ x) summary(model)

이 코드에서 lm(y ~ x)~(물결, tilde) 기호는 “종속변수를 독립변수로 설명한다”는 뜻으로, y ~ x는 “y를 x로 설명하는 모형을 적합하라”는 R 공식(formula) 문법이다. 만약 이 회귀식이 y^=40+5x\hat{y} = 40 + 5x로 추정됐다고 하면, 각 계수는 다음과 같이 해석한다.

  • 절편 40: 공부 시간이 0시간일 때 예측되는 시험 점수가 40점이라는 뜻이다. 다만 절편은 항상 현실적으로 의미가 있는 것은 아니다 — 공부 시간이 정말 0인 상황이 데이터 범위 밖이라면, 이 절편값은 수학적으로 직선을 완성하기 위한 값일 뿐 실제 의미를 부여하기 어려울 수 있다.
  • 기울기 5: 다른 조건이 동일할 때, 공부 시간이 1시간 늘어날 때마다 시험 점수가 평균적으로 5점 늘어난다는 뜻이다. 이때 “평균적으로”라는 표현이 중요한데, 회귀계수는 그 학생 한 명 한 명에게 정확히 적용되는 법칙이 아니라 전체 데이터에서 나타나는 평균적인 경향을 말한다.

다중회귀분석에서는 기울기 해석에 한 가지 조건이 더 붙는다. 예를 들어 y^=β0^+β1^x1+β2^x2\hat{y} = \hat{\beta_0} + \hat{\beta_1} x_1 + \hat{\beta_2} x_2라는 식이 있다면, β1^\hat{\beta_1}은 “x2x_2를 일정하게 고정했을 때, x1x_1이 1단위 늘어나면 yy가 평균적으로 β1^\hat{\beta_1}만큼 변한다”는 뜻이다. 이 “다른 변수를 고정했을 때”라는 조건을 빼먹고 해석하면 틀린 해석이 된다.

결정계수와 수정된 결정계수

왜 필요한가

회귀식을 구했다고 해서 그 식이 데이터를 잘 설명한다는 보장은 없다. “이 회귀모형이 종속변수의 변동을 얼마나 잘 설명하는가”를 평가하는 지표가 필요하다.

쉽게 말하면: 결정계수는 “종속변수가 원래 가지고 있던 흔들림(변동) 중에서, 이 회귀모형이 몇 퍼센트를 설명해냈는가”를 나타내는 숫자다.

정의

종속변수 yy의 전체 변동은 세 가지 제곱합으로 분해할 수 있다.

SST=SSR+SSESST = SSR + SSE
  • SSTSST (Sum of Squares Total, 총제곱합): 각 관측값이 종속변수의 전체 평균 yˉ\bar{y}로부터 벗어난 정도의 제곱합. (yiyˉ)2\sum(y_i - \bar{y})^2. 종속변수가 원래 가지고 있는 전체 변동의 크기다.
  • SSRSSR (Sum of Squares Regression, 회귀제곱합): 회귀식의 적합값 yi^\hat{y_i}가 전체 평균 yˉ\bar{y}로부터 벗어난 정도의 제곱합. (yi^yˉ)2\sum(\hat{y_i} - \bar{y})^2. 회귀모형이 “설명해낸” 변동의 크기다.
  • SSESSE (Sum of Squares Error, 잔차제곱합): 앞서 정의한 잔차의 제곱합. 회귀모형이 “설명하지 못하고 남긴” 변동의 크기다.

결정계수(coefficient of determination, 기호 R2R^2)는 전체 변동 중 회귀모형이 설명한 비율이다.

R2=SSRSST=1SSESSTR^2 = \frac{SSR}{SST} = 1 - \frac{SSE}{SST}

R2R^2은 0과 1 사이의 값을 가지며(단순회귀분석에서는 피어슨 상관계수 rr의 제곱과 같다), 1에 가까울수록 회귀모형이 종속변수의 변동을 잘 설명한다는 뜻이다.

계산·적용

예를 들어 어떤 회귀분석 결과 SSE=200SSE = 200, SSR=300SSR = 300이 나왔다고 하자.

SST=SSR+SSE=300+200=500SST = SSR + SSE = 300 + 200 = 500 R2=SSRSST=300500=0.6R^2 = \frac{SSR}{SST} = \frac{300}{500} = 0.6

검산: 1SSESST=1200500=10.4=0.61 - \frac{SSE}{SST} = 1 - \frac{200}{500} = 1 - 0.4 = 0.6으로 같은 값이 나오는지 반대 공식으로도 확인한다. 두 방식의 결과가 일치하므로 계산이 맞았다고 확인할 수 있다. 이 결과는 “이 회귀모형이 종속변수 변동의 60퍼센트를 설명한다”고 해석한다.

자주 틀리는 함정: SSE/SSR=200/3000.67SSE/SSR = 200/300 \approx 0.67을 결정계수로 착각하거나, SSE/SST=200/500=0.4SSE/SST = 200/500 = 0.4(이는 “설명되지 않은 변동의 비율”이다)를 결정계수로 착각하는 함정이 자주 나온다. 결정계수는 반드시 SSR을 SST로 나누거나, 1에서 SSE/SST를 뺀 값이라는 두 가지 형태만 정답이다.

결정계수와 수정된 결정계수의 차이

결정계수에는 치명적인 함정이 하나 있다. 다중회귀분석에서 독립변수를 아무 의미 없는 변수라도 하나 더 추가하면, 결정계수 R2R^2는 절대 감소하지 않고 항상 증가하거나 같은 값을 유지한다. 이는 변수를 추가하면 최소제곱법이 그 변수를 활용해 조금이라도 잔차를 더 줄일 여지가 생기기 때문이다. 그 결과, R2R^2만 보고 모형을 고르면 실제로는 의미 없는 변수를 잔뜩 집어넣어 억지로 R2R^2를 높인, 과적합(overfitting, 훈련 데이터에만 지나치게 맞춰져 새로운 데이터에는 예측력이 떨어지는 상태)된 모형을 좋은 모형이라고 잘못 판단할 위험이 있다.

이 문제를 보완하기 위해 만든 지표가 수정된 결정계수(adjusted R-squared, Radj2R^2_{adj})다.

Radj2=1SSE/(nk1)SST/(n1)R^2_{adj} = 1 - \frac{SSE/(n-k-1)}{SST/(n-1)}
  • nn: 관측치(표본)의 개수
  • kk: 독립변수의 개수
  • nk1n-k-1: 잔차의 자유도. 전체 표본에서 절편 1개와 독립변수 kk개, 총 k+1k+1개의 모수를 추정하는 데 자유도를 썼다는 뜻이다.

수정된 결정계수는 독립변수 개수 kk가 커질수록 분모의 자유도 nk1n-k-1이 작아지는 방식으로 모형에 변수가 늘어나는 것에 대한 벌점(penalty)을 반영한다. 그래서 새로 추가한 변수가 실제로 설명력에 별 도움이 안 되는 변수라면, 수정된 결정계수는 오히려 감소할 수 있다. 이것이 결정계수와 수정된 결정계수의 근본적인 차이다 — 결정계수는 변수를 추가하면 항상 오르지만(같아지는 것도 포함), 수정된 결정계수는 그 변수가 실제로 쓸모가 있어야만 오른다.

구분결정계수 (R2R^2)수정된 결정계수 (Radj2R^2_{adj})
변수를 추가했을 때항상 증가하거나 최소한 같은 값을 유지한다유의미한 변수면 증가, 무의미한 변수면 오히려 감소할 수 있다
변수 개수 반영 여부반영하지 않는다변수 개수에 대한 벌점을 반영한다
용도모형이 데이터를 얼마나 설명하는지의 단순 지표변수 개수가 다른 여러 모형끼리 비교할 때 더 적합한 지표

자주 틀리는 함정 (여러 회차 반복 출제): “결정계수가 높으면 항상 좋은 모형이다”라는 서술은 틀렸다. 결정계수가 높아도 과적합, 다중공선성(뒤에서 다룬다), 인과관계와 무관한 변수 포함 등의 문제가 함께 있을 수 있으므로, 결정계수 하나만으로 모형의 좋고 나쁨을 판단해서는 안 된다. 여러 모형을 비교할 때는 독립변수 개수의 차이를 보정해주는 수정된 결정계수를 함께 확인해야 한다.

R의 회귀분석 summary 출력을 읽는 법

왜 필요한가

R에서 lm()으로 회귀모형을 적합시키고 summary()를 실행하면 한 화면에 여러 통계량이 함께 출력된다. ADsP 시험에서는 이 출력 화면을 그대로 제시하고 “해석으로 옳지 않은 것을 고르라”는 유형이 매우 자주 나오므로, 출력의 각 항목이 무엇을 뜻하는지 항목별로 정확히 읽어내는 능력이 필요하다.

정의: 항목별 해설

스위스 인구 통계 데이터(swiss)로 출산율(Fertility)을 나머지 모든 변수로 설명하는 다중회귀분석을 수행한 다음과 같은 실제 출력을 예시로 든다.

> summary(lm(Fertility ~ ., data = swiss)) Call: lm(formula = Fertility ~ ., data = swiss) Residuals: Min 1Q Median 3Q Max -15.2743 -5.2617 0.5032 4.1198 15.3213 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 66.91518 10.70604 6.250 1.91e-07 *** Agriculture -0.17211 0.07030 -2.448 0.01873 * Examination -0.25801 0.25388 -1.016 0.31546 Education -0.87094 0.18303 -4.758 2.43e-05 *** Catholic 0.10412 0.03526 2.953 0.00519 ** Infant.Mortality 1.07705 0.38172 2.822 0.00734 ** --- Residual standard error: 7.165 on 41 degrees of freedom Multiple R-squared: 0.7067, Adjusted R-squared: 0.671 F-statistic: 19.76 on 5 and 41 DF, p-value: 5.594e-10

이 코드에서 Fertility ~ .의 마침표(.)는 “데이터프레임에 있는 나머지 모든 변수를 독립변수로 사용하라”는 R의 축약 표기다.

이제 이 출력을 위에서부터 항목별로 읽어본다.

Coefficients 표: 각 독립변수(그리고 절편)마다 한 행씩 다음 네 개의 열이 나온다.

  • Estimate: 최소제곱법으로 추정한 회귀계수 β^\hat{\beta} 값이다. 이 값의 부호와 크기로 그 변수가 종속변수에 미치는 영향의 방향과 크기를 읽는다. 예를 들어 Agriculture의 Estimate가 -0.17211이므로, 다른 변수들을 고정했을 때 농업 종사 비율(Agriculture)이 1단위 늘어나면 출산율(Fertility)이 평균 0.17211만큼 감소한다고 해석한다.
  • Std. Error: 그 회귀계수 추정치의 표준오차(standard error, 추정치가 표본마다 얼마나 흔들릴 수 있는지를 나타내는 값). 이 값이 작을수록 그 계수의 추정이 더 안정적(정밀)이라는 뜻이다.
  • t value: 그 계수가 0과 통계적으로 다른지를 검정하는 t-검정 통계량으로, t value = Estimate / Std. Error로 계산된다. 절댓값이 클수록 그 변수가 종속변수 설명에 유의미하게 기여한다는 증거가 강하다는 뜻이다.
  • Pr(>|t|): 이 t값에 대응하는 p값이다. 16편에서 배운 대로 “이 회귀계수가 실제로는 0인데(그 변수가 실제로는 아무 영향이 없는데), 우연히 지금 추정된 값 이상으로 극단적인 결과가 나올 확률”을 뜻한다. 이 값이 유의수준(보통 0.05)보다 작으면 “그 변수는 종속변수를 설명하는 데 통계적으로 유의하다”고 판단한다. 표 옆의 별표(***, **, *)는 p값이 각각 0.001, 0.01, 0.05보다 작다는 것을 빠르게 표시해주는 관례적인 유의성 표시다.

이 표에서 Examination의 p값은 0.31546으로 0.05보다 훨씬 크므로 별표가 하나도 없는데, 이는 “Examination 변수는 이 모형 안에서 출산율을 설명하는 데 통계적으로 유의하지 않다”는 뜻이다. 이렇게 모든 독립변수의 회귀계수가 항상 유의한 것은 아니라는 점을 표에서 직접 확인해야 한다.

Residual standard error: 잔차(예측이 빗나간 정도)들의 표준편차와 비슷한 개념으로, 회귀식이 예측한 값과 실제 값이 평균적으로 얼마나 차이 나는지를 원래 종속변수와 같은 단위로 보여준다. 옆의 on 41 degrees of freedom은 잔차의 자유도로, nk1n - k - 1(관측치 개수 − 독립변수 개수 − 1)로 계산된다. 이 예시에서는 독립변수가 5개이므로, 자유도 41로부터 거꾸로 관측치 개수를 구하면 n=41+5+1=47n = 41 + 5 + 1 = 47개다.

Multiple R-squared: 앞서 정의한 결정계수 R2R^2다. 이 값 0.7067은 “이 모형이 출산율 변동의 약 70.67퍼센트를 설명한다”는 뜻이다.

Adjusted R-squared: 수정된 결정계수 Radj2R^2_{adj}다. 값 0.671은 변수 개수를 고려해 보정한 설명력이 약 67.1퍼센트라는 뜻이다. Multiple R-squared보다 항상 작거나 같은 값을 갖는다(독립변수가 2개 이상일 때).

F-statistic: 회귀모형 전체가 통계적으로 유의미한지를 검정하는 값이다. 이 검정의 귀무가설은 “모든 독립변수의 회귀계수가 동시에 0이다(즉 이 모형 전체가 종속변수 설명에 아무 쓸모가 없다)“이고, 대립가설은 “적어도 하나의 회귀계수는 0이 아니다”이다. on 5 and 41 DF는 F분포의 두 자유도(분자 자유도 = 독립변수 개수, 분모 자유도 = 잔차 자유도)를 뜻한다. 옆의 p-value(5.594e-10, 이는 지수 표기로 5.594×10105.594 \times 10^{-10}이라는 뜻이며 0에 매우 가까운 극히 작은 숫자다)가 유의수준보다 훨씬 작으므로, “이 회귀모형은 전체적으로 통계적으로 유의하다”고 결론 내린다.

자주 틀리는 함정 (44회·45회 기출 반복): 잔차 자유도로부터 관측치 개수를 구할 때 절편을 빼먹고 계산하는 실수가 자주 나온다. 위 예시에서 “데이터 개수는 자유도(41)와 독립변수 개수(5)를 이용해 46으로 볼 수 있다”는 서술은 틀렸다 — 절편까지 포함해 추정한 모수가 6개(k+1k+1)이므로 n=41+6=47n = 41+6=47이 맞는 계산이다. 또한 “Education이 Fertility 변동의 원인이라고 단정할 수 있다”처럼 통계적 유의성을 인과관계로 확대 해석하는 보기도 자주 오답으로 나온다(17편의 상관-인과 오류 참고). 회귀분석의 유의성은 “통계적으로 연관이 있다”는 근거이지 “원인이다”라는 증명이 아니다.

회귀분석의 4가지 가정

왜 필요한가

최소제곱법으로 회귀식을 구하는 것 자체는 어떤 데이터에도 기계적으로 가능하지만, 그렇게 구한 계수의 추정치·표준오차·p값 등이 통계적으로 믿을 만한 값이 되려면 데이터가 몇 가지 전제 조건을 만족해야 한다. 이 전제 조건을 회귀분석의 가정이라 부르며, 이 가정이 깨지면 회귀분석 결과를 있는 그대로 신뢰할 수 없다.

쉽게 말하면: 회귀분석의 4가지 가정은 “오차(잔차)가 특별한 패턴 없이 무작위로 흩어져 있어야 한다”는 한 가지 큰 원칙을 네 방향에서 점검하는 것이다.

정의

가정의미위배되었을 때의 대표적 증상
선형성(linearity)독립변수와 종속변수 사이의 관계가 실제로 직선(또는 평면) 형태여야 한다잔차를 적합값에 대해 그린 산점도에서 U자형·곡선 패턴이 나타난다
독립성(independence)관측치들의 오차항이 서로 영향을 주지 않고 독립이어야 한다시계열 데이터처럼 관측치 순서에 따라 오차가 연쇄적으로 이어지는 자기상관(autocorrelation) 현상이 나타난다
등분산성(homoscedasticity)독립변수 값의 크기와 상관없이 오차의 분산이 일정해야 한다잔차 산점도가 나팔(원뿔) 모양으로, 적합값이 커질수록 잔차의 흩어진 폭도 함께 커지거나 작아진다(이 위배 현상을 이분산성, heteroscedasticity이라 한다)
정규성(normality)오차항이 정규분포(14편 참고)를 따라야 한다잔차의 히스토그램이나 Q-Q 플롯이 정규분포에서 크게 벗어난 비대칭 형태를 보인다

이 네 가정을 점검할 때 가장 널리 쓰이는 시각적 도구가 잔차 산점도(residual plot, x축에 적합값 y^\hat{y}, y축에 잔차 ee를 찍은 그래프)다. 잔차 산점도에서 잔차들이 0을 중심으로 아무 규칙 없이 고르게 흩어져 있으면 선형성·등분산성 가정이 잘 지켜지고 있다는 뜻이다. 반대로 U자형 곡선이 보이면 선형성 가정이 깨진 것이고, 나팔 모양이 보이면 등분산성 가정이 깨진 것이다. 등분산성은 그래프 외에도 Breusch-Pagan 검정, White 검정 같은 통계적 검정으로 확인할 수 있고, 정규성은 Shapiro-Wilk 검정으로 확인할 수 있다.

자주 틀리는 함정 (ADsP 48회, 모의고사 117 기출): “잔차 산점도에서 U자형 곡선 패턴이 나타나면 모형이 적합하다”는 서술은 틀렸다 — U자형 패턴은 오히려 비선형 관계가 존재해 선형성 가정이 깨졌다는 신호이며, 잔차가 아무 패턴 없이 무작위로 흩어져 있어야 모형이 적합하다고 볼 수 있다. 또한 “설명변수 간 상관계수를 확인하면 회귀모형 전체의 적합성을 판단할 수 있다”는 서술도 틀렸다 — 설명변수 간 상관은 모형 전체의 설명력이 아니라 뒤에서 다룰 다중공선성을 점검하는 지표다. 마지막으로 “오차항의 분산이 독립변수 값에 따라 달라져야 한다”는 서술은 등분산성 가정을 정반대로 뒤집은 오답이다 — 분산은 독립변수 값과 무관하게 일정해야 한다.

다중공선성

왜 필요한가

다중회귀분석에서는 독립변수를 여러 개 동시에 사용하는데, 만약 독립변수들끼리 서로 너무 강하게 상관되어 있으면 문제가 생긴다. 예를 들어 “키(cm)“와 “키(m)“를 둘 다 독립변수로 넣으면, 사실상 같은 정보를 중복으로 넣은 셈이라 회귀모형이 “각 변수가 개별적으로 얼마나 기여하는지”를 구분해내지 못하게 된다. 이 문제를 다중공선성(multicollinearity)이라 한다.

쉽게 말하면: 다중공선성은 독립변수들끼리 너무 닮아 있어서, 회귀모형이 “누구 덕분에 결과가 이렇게 나왔는지” 헷갈려 하는 상태다.

정의

다중공선성은 다중회귀분석에서 두 개 이상의 독립변수 사이에 강한 상관관계가 존재하는 현상이다. 다중공선성이 심하면 다음과 같은 문제가 나타난다.

  1. 회귀계수 추정치의 분산(표준오차)이 크게 부풀어 올라, 계수 추정이 불안정해진다. 데이터를 아주 조금만 바꿔도 추정된 계수 값이 크게 요동칠 수 있다.
  2. 개별 계수의 t값이 작아지고 p값이 커져서, 실제로는 종속변수에 영향을 주는 변수인데도 “통계적으로 유의하지 않다”고 잘못 판정될 수 있다.
  3. 회귀계수의 부호가 이론적으로 예상한 방향과 반대로 나오는 경우가 생기기도 한다.

다중공선성을 진단하는 대표적인 지표가 VIF(Variance Inflation Factor, 분산팽창요인)다.

VIFj=11Rj2VIF_j = \frac{1}{1 - R_j^2}
  • VIFjVIF_j: jj번째 독립변수의 분산팽창요인
  • Rj2R_j^2: jj번째 독립변수를 종속변수로 놓고, 나머지 모든 독립변수로 이 변수를 설명하는 보조 회귀분석을 했을 때 나오는 결정계수

이 공식이 뜻하는 바는 직관적이다. 만약 jj번째 독립변수가 나머지 독립변수들과 전혀 관계가 없다면 Rj2=0R_j^2 = 0이 되어 VIFj=1/(10)=1VIF_j = 1/(1-0) = 1이 된다(다중공선성이 전혀 없는 이상적인 상태). 반대로 jj번째 독립변수가 나머지 변수들로 거의 완벽하게 설명된다면 Rj2R_j^2이 1에 가까워지면서 분모 (1Rj2)(1-R_j^2)가 0에 가까워지고, VIFjVIF_j 값이 매우 커진다.

계산·적용: VIF 판단 기준과 해결 방법

일반적으로 통용되는 판단 기준은 다음과 같다.

VIF 값판단
1에 가까움다중공선성 문제가 거의 없다
5 이상다중공선성을 의심해봐야 한다(엄격한 기준)
10 이상다중공선성이 심각하다고 판단하는 것이 통상적인 기준이다

다중공선성이 발견됐을 때의 대표적인 해결 방법은 다음과 같다.

  1. 상관이 높은 변수 중 하나를 모형에서 제거한다. 가장 직관적이고 흔히 쓰이는 방법이다.
  2. 주성분분석(PCA, Principal Component Analysis)으로 서로 상관된 여러 변수를 몇 개의 새로운 독립 성분으로 압축한 뒤 그 성분을 독립변수로 사용한다.
  3. 정규화 회귀(regularized regression)인 릿지(Ridge) 회귀, 라쏘(Lasso) 회귀, 엘라스틱넷(Elastic Net) 회귀를 사용해, 계수 추정치가 지나치게 커지는 것을 억제하는 벌점을 회귀식에 추가한다.

자주 틀리는 함정 (47회 기출): “다중공선성이 존재하더라도 회귀계수의 분산은 항상 동일하다”는 서술은 틀렸다 — 다중공선성은 정확히 회귀계수 추정치의 분산을 크게 팽창시키는 문제이며, VIF라는 이름 자체가 “분산팽창요인”이라는 뜻이다. 또한 “설명변수 간 상관계수를 보면 회귀모형 전체의 적합성(설명력)을 알 수 있다”는 서술도 틀렸다 — 설명변수 간 상관은 다중공선성 여부를 보여줄 뿐, 모형이 종속변수를 얼마나 잘 설명하는지(그 지표는 결정계수)와는 다른 문제다.

핵심 정리

  • 회귀분석은 최소제곱법으로 잔차제곱합(SSE)을 최소화하는 절편과 기울기를 찾아 종속변수를 예측하는 기법이다.
  • 다중회귀분석의 기울기는 “다른 독립변수를 고정했을 때”라는 조건 아래에서 해석해야 한다.
  • 결정계수(R2R^2)는 변수를 추가하면 항상 증가하지만, 수정된 결정계수(Radj2R^2_{adj})는 변수 개수에 벌점을 부과해 무의미한 변수를 추가하면 오히려 감소할 수 있다.
  • R의 summary(lm(...)) 출력에서 Estimate·Std. Error·t value·Pr(>|t|)는 개별 계수의 유의성을, Multiple R-squared·Adjusted R-squared는 모형의 설명력을, F-statistic과 그 p값은 모형 전체의 유의성을 나타낸다.
  • 회귀분석은 선형성·독립성·등분산성·정규성 4가지 가정을 전제하며, 잔차 산점도로 위배 여부를 점검한다.
  • 다중공선성은 독립변수 간 강한 상관으로 계수 추정이 불안정해지는 문제이며, VIF가 10 이상이면 심각하다고 보고 변수 제거·PCA·정규화 회귀로 해결한다.

마무리 복습

문제 14지선다
최소제곱법(least squares method)이 회귀직선을 결정하는 기준으로 가장 적절한 것은?
문제 24지선다
다중회귀식 y = 10 + 3x1 - 2x2에서 x2의 계수 -2에 대한 해석으로 가장 적절한 것은?
문제 34지선다
어떤 회귀분석에서 SST=800, SSE=200일 때 결정계수(R²)는 얼마인가?
문제 44지선다
다중회귀분석에서 결정계수(R²)와 수정된 결정계수(Adjusted R²)의 관계에 대한 설명으로 가장 적절한 것은?
문제 54지선다
R에서 summary(lm(y ~ x)) 출력의 Coefficients 표에 있는 Pr(>|t|) 열이 뜻하는 것은?
문제 64지선다
회귀분석의 4가지 기본 가정에 해당하지 않는 것은?
문제 74지선다
다중공선성(multicollinearity)에 대한 설명으로 가장 적절한 것은?
문제 84지선다
어떤 독립변수의 VIF(분산팽창요인)가 12로 계산되었다. 가장 적절한 대응은?

참고 자료

Last updated on