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. 결론
- 다중 선형 회귀는 여러 원인을 함께 고려해 예측하거나 분석하는 데 매우 유용한 방법이다.
- 모델의 전제가 잘 지켜졌는지 확인하고, 중복되는 변수는 제거, 해석 가능한 모델을 만드는 것이 중요하다.
다중 선형 회귀는 예측도 하고, 원인 분석도 가능한 대표적인 해석 가능한 모델이다.
'Theory > IE' 카테고리의 다른 글
[Data Mining_8] 분류 회귀 트리 (0) | 2025.04.15 |
---|---|
[Data Mining_7] 로지스틱 회귀 분석 (0) | 2025.04.14 |
[Data Mining_5] 예측 성능 평가 (0) | 2025.04.07 |
[Data Mining_4] 차원 축소 기법 (0) | 2025.04.07 |
[Data Mining_3] 데이터 전처리와 시각화 (0) | 2025.04.07 |