Theory/IE

[Data Mining_6] 다중 선형 회귀

zzzzzooooo0000099999 2025. 4. 14. 22:20

1. 개요

  다중 선형 회귀(Multiple Linear Regression)는 하나의 결과값(예 : 집값)을 여러 원인(예 : 면적, 위치, 방 개수 등)으로 예측하는 분석 기법이다. 즉, 여러 개의 입력값을 기반으로 결과가 어떻게 변하는지 파악하고, 미래 값을 예측하거나 변수의 영향력을 해석할 수 있다.

 

2. 회귀 계수 추정

  모델은 데이터가 가장 잘 맞도록 각 변수의 영향력을 조정한다. 이때 오차(예측값과 실제값 차이)를 가능한 작게 만들면서, 각 변수의 기여도를 수치로 계산한 것이 회귀 계수이다.

 

- 회귀 계수의 의미

  - 각 계수는 다른 조건이 같을 때, 특정 변수의 변화가 결과에 얼마나 영향을 주는지를 나타낸다.

  - 예 : 면적이 1평 늘어나면 집값이 평균적으로 얼마나 오르는지

 

3. 회귀 모델의 가정

  다중 선형 회귀는 몇 가지 전제가 충족될 때 가장 잘 작동한다.

가정 설명 진단 방법
선형성 각 변수와 결과 간 관계가 직선 형태인지 확인 잔차와 예측값의 산점도
독립성 예측 오차들이 서로 영향을 주지 않는지 잔차 순서 확인, Durbin-Watson 통계량
등분산성 오차의 크기가 일정한지 잔차 플롯으로 확인
정규성 오차들이 정규 분포를 따르는지 Q-Q Plot 또는 검정법 사용
다중공선성 없음 변수들끼리 너무 비슷하지 않은지 VIF 값으로 확인

 

4. 다중공선성 (Multicollinearity)

  독립 변수들끼리 서로 너무 비슷하거나 관련이 깊을 때 발생하는 문제이다. 예를 들어, '면적'과 '평수'는 거의 같은 정보를 담고 있다면, 이 둘을 동시에 모델에 넣으면 혼란이 생기고 결과 해석이 어려워질 수 있다.

 

- 문제

  - 모델이 불안정해지고, 어떤 변수가 진짜 중요한지 헷갈릴 수 있다.

 

- 확인 방법

  - VIF (분산팽창지수)라는 지표를 사용해서 특정 변수가 다른 변수들과 얼마나 겹치는지를 확인한다. 값이 10 이상이면 문제가 있다고 판단한다.

 

5. 변수 선택 (Feature Selection)

  모든 변수가 항상 예측에 도움이 되는 건 아니다. 그래서 다음과 같은 방법으로 쓸모 있는 변수만 골라내는 작업을 한다.

방법 설명
전진 선택 하나씩 변수를 추가하면서 성능이 좋아지는지 확인
후진 제거 처음엔 모두 넣고, 영향이 적은 변수를 하나씩 제거
단계적 선택 추가와 제거를 번갈아가며 조합
Lasso 자동으로 중요하지 않은 변수의 계수를 0으로 만들어 제외

 

6. 회귀 모델 성능 평가

  모델이 얼마나 잘 작동했는지를 평가하려면 다음과 같은 지표를 본다.

지표 설명
결정계수 (R²) 모델이 결과를 얼마나 잘 설명하는지 (1에 가까울수록 좋음)
조정된 R² 변수 개수를 고려해 R²을 조정한 값
RMSE, MAE 실제 값과 예측값 차이의 평균 — 작을수록 정확함
p-value 각 변수가 결과에 의미 있는 영향을 주는지 판단 (0.05 미만이면 유의함)

 

7. 예제 코드 (Python - statsmodels)

import statsmodels.api as sm

X = df[['x1', 'x2', 'x3']]
y = df['y']
X = sm.add_constant(X)  # 절편 항 추가

model = sm.OLS(y, X).fit()
print(model.summary())  # 결과 출력

 

8. 결론

- 다중 선형 회귀는 여러 원인을 함께 고려해 예측하거나 분석하는 데 매우 유용한 방법이다.
- 모델의 전제가 잘 지켜졌는지 확인하고, 중복되는 변수는 제거, 해석 가능한 모델을 만드는 것이 중요하다.

 

 

다중 선형 회귀는 예측도 하고, 원인 분석도 가능한 대표적인 해석 가능한 모델이다.