Skip to content
PART 3 · 16장

다중회귀분석

변수를 추가하면 무엇이 달라지나?

아파트 가격은 면적만으로 결정되지 않는다

서울에서 아파트를 구할 때, 면적만 보고 가격을 예측한다면 어떨까요? 같은 85m2라도 강남과 노원은 가격이 두 배 이상 차이 납니다. 층수, 역세권 여부, 학군, 건축연도 -- 여러 요인이 동시에 가격에 영향을 미칩니다.

단순회귀(Chapter 15)에서는 X 하나로 Y를 예측했습니다. 이제 여러 개의 X를 동시에 모형에 넣어봅시다. 이것이 다중회귀분석(Multiple Regression)입니다.

핵심 질문은 이렇습니다: "다른 조건이 모두 같을 때, 이 변수 하나가 바뀌면 결과가 얼마나 달라지는가?"

단순회귀에서 다중회귀로

하나의 원인에서 여러 원인으로: 단순회귀는 "열이 나는 이유가 감기 때문이다"라고 말하는 것과 같습니다. 하지만 현실에서 열의 원인은 다양합니다 -- 감기, 스트레스, 수면 부족, 탈수 등. 다중회귀는 이 여러 원인을 동시에 고려하여 "각 원인이 열에 얼마나 기여하는가"를 분리해내는 도구입니다.

단순회귀가 2차원 산점도 위의 직선이라면, 다중회귀는 다차원 공간의 평면(또는 초평면)입니다. 변수가 2개면 3차원 공간에서 평면을, 3개 이상이면 시각화할 수 없는 고차원 초평면을 적합합니다.

Y = b0 + b1*X1 + b2*X2 + ... + bp*Xp + e
각 계수의 의미: b1은 "X2, X3, ..., Xp를 모두 고정한 상태에서 X1이 1 증가할 때 Y의 변화량"입니다. 이것을 편회귀계수(partial regression coefficient)라고 합니다.

쉽게 말하면 -- 실험 비유: "다른 변수를 고정했을 때"란, 마치 과학 실험에서 하나의 조건만 바꾸고 나머지는 통제하는 것과 같습니다. 식물 실험에서 물, 햇빛, 비료를 동시에 바꾸면 무엇이 효과를 냈는지 알 수 없습니다. 물의 양만 바꾸고 나머지를 고정해야 "물의 순수한 효과"를 측정할 수 있습니다. 다중회귀의 계수도 정확히 이 원리입니다 -- 수학적으로 다른 변수의 영향을 "고정(통제)"한 후 해당 변수만의 순수한 효과를 분리해냅니다.

일상 비유: 아파트 가격 모형에서 b_면적 = 120이라면, "층수, 역세권, 학군 등 다른 조건이 동일할 때, 면적이 1m2 넓어지면 가격이 약 120만원 상승"이라는 뜻입니다.

단순회귀

Y = b0 + b1*X

2차원: 직선 한 개
"X가 변하면 Y가 변한다"

다중회귀

Y = b0 + b1*X1 + b2*X2 + ...

다차원: 평면 또는 초평면
"다른 변수를 통제한 후 X1의 순수 효과"

실습 1: 변수 추가기 -- R-squared는 항상 올라간다?

변수 추가 실습: 아파트 데이터에서 "가격"을 예측하는 모형에 변수를 하나씩 추가해보세요. 사이드바에서 변수를 클릭하면 모형에 추가되고, R-squared와 Adjusted R-squared가 갱신됩니다. 핵심 발견: R-squared는 항상 올라가지만, Adjusted R-squared는 내려갈 수도 있습니다.
사용 가능한 변수
모형에 포함된 변수
변수 계수 (b) 표준오차 t값 p값
변수를 추가하세요
R-squared
-
Adj R-squared
-
변수 수
-
AIC
-
작을수록 좋음
R-squared 변화 추이
Adjusted R-squared의 역할: R-squared는 변수를 추가하면 무조건 증가합니다. 심지어 무관한 변수를 넣어도 올라갑니다. Adjusted R-squared는 변수 수에 대한 벌칙(penalty)을 부과하여, 불필요한 변수를 추가했을 때 오히려 감소합니다. 따라서 모형 비교에는 Adjusted R-squared를 사용해야 합니다.
왜 R-squared만 보면 위험한가? 뷔페에서 접시에 음식을 무한정 담는다고 상상해보세요. 음식 가짓수(변수 수)가 늘면 접시의 "총량(R-squared)"은 항상 올라갑니다. 하지만 이미 배가 부른데 더 담으면 소화불량(과적합)에 걸립니다. 수정 R-squared는 "접시에 음식을 하나 더 담을 때, 그게 정말 먹을 만한 것인가?"를 따져줍니다. 가치 없는 음식(변수)을 추가하면 수정 R-squared는 오히려 내려가서 "그 변수는 넣지 마라"는 신호를 보냅니다.
Adj R-squared = 1 - (1 - R-squared) * (n - 1) / (n - p - 1)
쉽게 말하면: 이 공식에서 (n - 1) / (n - p - 1) 부분이 벌칙 역할을 합니다. 변수 수 p가 커질수록 이 비율이 커지면서 R-squared를 깎아내립니다. 변수를 추가해서 얻는 설명력 향상이 벌칙보다 클 때만 Adj R-squared가 올라갑니다.

실습 2: 다중공선성 탐지기

독립변수들끼리 서로 강하게 상관되어 있으면, 각 변수의 개별 효과를 분리하기 어려워집니다. 이 현상을 다중공선성(Multicollinearity)이라고 합니다.

쉽게 말하면 -- 쌍둥이 변수 문제: 축구 경기에서 쌍둥이 선수가 항상 같이 뛰고, 항상 같은 방향으로 움직인다고 합시다. 경기가 끝난 후 "이번 골은 형 덕분인가, 동생 덕분인가?"를 구분할 수 있을까요? 둘 다 똑같이 움직였으니 각자의 기여를 분리하는 것이 불가능합니다. 다중공선성도 마찬가지입니다. 서로 거의 똑같은 정보를 담은 변수를 둘 다 넣으면, 컴퓨터는 "이 효과가 A 변수의 것인지 B 변수의 것인지" 혼란에 빠지고, 계수가 불안정하고 해석 불가능해집니다.

다중공선성의 증상:
- 계수의 부호가 직관과 반대로 나옴 (면적이 넓을수록 가격이 낮다?)
- 표준오차가 비정상적으로 커짐
- 변수 하나를 빼면 다른 변수의 계수가 급변
- 개별 변수는 유의하지 않은데 모형 전체는 유의함
다중공선성 체험: 아래에서 "면적(m2)"과 "면적(평)"을 동시에 모형에 넣어보세요. 이 두 변수는 사실상 같은 정보(1평 = 3.3m2)이므로 완벽한 다중공선성이 발생합니다. 계수와 표준오차, VIF가 어떻게 변하는지 관찰하세요.
변수 계수 표준오차 VIF 상태
시나리오를 선택하고 실행하세요
VIF (Variance Inflation Factor): VIF가 1이면 공선성 없음, 5 이상이면 경고, 10 이상이면 심각합니다. VIF = 1 / (1 - R2_j)로 계산하며, R2_j는 Xj를 나머지 X들로 회귀했을 때의 R-squared입니다. 공선성이 심하면 두 변수 중 하나를 제거하거나, 주성분(PCA)으로 합치는 방법을 고려합니다.

실습 3: 계수 해석 퀴즈

다중회귀의 계수를 올바르게 해석하는 것은 가장 중요하면서도 가장 흔히 실수하는 부분입니다. 핵심 문구는 "다른 변수를 고정했을 때(holding other variables constant)"입니다.

해석 퀴즈: 아래 회귀 결과를 보고, 각 문항의 올바른 해석을 선택하세요.
아파트가격(만원) = -5,200 + 120 * 면적(m2) + 850 * 역세권(0/1) + 45 * 층수
실무에서의 함정: "면적 계수가 120"이라고 해서 "면적이 가격에 가장 큰 영향을 미친다"고 말할 수 없습니다. 변수의 단위(스케일)가 다르기 때문입니다. 영향력을 비교하려면 표준화 계수(Beta coefficient)를 사용해야 합니다.

실습 4: 3D 회귀 표면

변수가 2개인 다중회귀(Y = b0 + b1*X1 + b2*X2)는 3차원 공간에서 시각화할 수 있습니다. 아래 캔버스에서 마우스로 회전하며 회귀 평면과 데이터 점의 관계를 탐색해보세요.

3D 탐색: 캔버스를 마우스로 드래그하면 시점이 회전합니다. 데이터 점(구)이 평면 위에 있으면 과소예측, 아래에 있으면 과대예측입니다. 평면까지의 수직 거리가 잔차입니다.
25
b0 (절편)
-
b1 (면적)
-
b2 (층수)
-
R-squared
-
시각적 통찰: 단순회귀의 직선이 3차원으로 확장되면 평면이 됩니다. 변수가 3개 이상이면 시각화는 불가능하지만, 수학적으로는 동일한 원리로 초평면을 적합합니다. 컴퓨터가 다차원을 자연스럽게 다루기에, 우리는 해석에만 집중하면 됩니다.

어떤 변수를 넣을 것인가: 모형 선택

사용 가능한 변수가 10개라면, 가능한 모형 조합은 2의 10제곱 = 1,024가지입니다. 모든 조합을 시도할 수도 있지만, 효율적인 전략이 필요합니다.

전진 선택법

빈 모형에서 시작하여, 가장 유의한 변수를 하나씩 추가. 더 이상 유의한 변수가 없으면 중단.

후진 제거법

모든 변수를 넣고 시작하여, 가장 유의하지 않은 변수를 하나씩 제거. 모두 유의하면 중단.

단계적 선택법

전진+후진 결합. 변수를 추가한 뒤, 기존 변수 중 유의하지 않은 것이 있으면 제거.

정보 기준 (AIC, BIC): 모형의 적합도와 복잡성을 동시에 고려합니다. AIC = n * ln(SSE/n) + 2p (p = 변수 수). AIC가 낮을수록 좋은 모형입니다. BIC는 변수 수에 더 강한 벌칙을 주어 더 간결한 모형을 선호합니다.
과적합(Overfitting) 주의: 변수를 많이 넣을수록 훈련 데이터에는 잘 맞지만(R-squared 상승), 새로운 데이터에는 오히려 예측이 나빠질 수 있습니다. 이것을 과적합이라 합니다. Adjusted R-squared, AIC, 교차검증으로 방지합니다.

검정: 모형 전체와 개별 변수

F검정 (전체 모형)

H0: 모든 계수 = 0 (모형이 쓸모없다)
H1: 하나 이상의 계수가 0이 아니다
F = (SSR/p) / (SSE/(n-p-1))

p값이 0.05 미만이면 "이 모형은 Y를 설명하는 데 유용하다"

t검정 (개별 변수)

H0: bj = 0 (이 변수는 불필요하다)
H1: bj가 0이 아니다
t = bj / SE(bj)

p값이 0.05 미만이면 "다른 변수가 있는 상태에서 이 변수는 추가 설명력을 가진다"

실무 의사결정: F검정이 유의하지 않으면 모형 전체를 재설계해야 합니다. F검정은 유의하지만 개별 t검정이 모두 유의하지 않으면, 다중공선성이 의심됩니다. VIF를 확인하세요.
이 장의 핵심
  • 다중회귀는 Y = b0 + b1*X1 + b2*X2 + ... 형태로 여러 예측 변수를 동시에 사용한다.
  • 각 계수 bj는 "다른 변수를 고정했을 때"의 Xj 효과(편회귀계수)이다.
  • R-squared는 변수를 추가하면 항상 증가하므로, Adjusted R-squared로 비교해야 한다.
  • 다중공선성은 계수를 불안정하게 만들며, VIF로 진단한다.
  • 모형 선택(전진/후진/단계적)과 정보 기준(AIC, BIC)으로 적절한 변수 조합을 찾는다.
  • F검정은 모형 전체, t검정은 개별 변수의 유의성을 판단한다.

다음 장 예고: 지금까지의 회귀는 Y가 연속 숫자(가격, 매출)인 경우였습니다. 그런데 Y가 "예/아니오" -- 이탈 여부, 합격 여부, 부도 여부 -- 라면 어떻게 할까요? 다음 장에서는 확률을 예측하는 로지스틱 회귀를 배웁니다.