왜 변수선택이 필요할까요?
회귀분석을 할 때 데이터에 변수가 10개, 20개, 심지어 100개 이상 있다면 어떻게 해야 할까요? 모든 변수를 다 넣어서 분석하면 될까요? 정답은 “아니오”입니다.
변수가 너무 많으면 모형이 복잡해져서 해석이 어려워지고, 쓸데없는 변수 때문에 분석 결과의 신뢰성과 안정성이 떨어질 수 있습니다. 마치 요리할 때 모든 재료를 다 넣는다고 맛있는 음식이 되지 않는 것과 같습니다. 적절한 재료만 선별해서 넣어야 맛있는 요리가 완성됩니다.
이번 포스팅에서는 회귀분석에서 어떤 변수를 선택해야 하는지, 그 기준과 방법을 초보자도 이해할 수 있도록 정리해 보겠습니다.
1. 변수선택이란 무엇인가요?
변수선택의 정의
변수선택이란 영어로 Variable Selection이라고 합니다. 회귀분석에서 여러 개의 설명변수 중 어떤 변수를 회귀모형에 포함시킬지 결정하는 과정입니다.
여기서 설명변수란 종속변수에 영향을 미치는 변수를 말합니다. 예를 들어 집값을 예측하는 모형에서 집값이 종속변수라면, 면적, 방 개수, 위치, 건축연도 등이 설명변수가 됩니다.
왜 간결한 모형이 좋을까요?
복잡한 모형보다는 간결한 모형이 여러 면에서 유리합니다.
첫째, 해석이 쉽습니다. 변수가 3개인 모형은 “A가 1 증가하면 Y가 얼마 증가한다”고 명확하게 설명할 수 있지만, 변수가 30개인 모형은 각 변수의 영향을 파악하기 어렵습니다.
둘째, 과적합을 방지할 수 있습니다. 과적합이란 모형이 학습 데이터에만 지나치게 맞춰져서 새로운 데이터에는 잘 맞지 않는 현상입니다. 변수가 많을수록 과적합 위험이 높아집니다.
셋째, 예측 안정성이 높아집니다. 불필요한 변수가 포함되면 데이터가 조금만 바뀌어도 결과가 크게 달라질 수 있습니다.
2. 다중공선성 문제 이해하기
다중공선성이란?
변수선택을 할 때 반드시 알아야 하는 개념이 다중공선성입니다. 다중공선성은 영어로 Multicollinearity라고 합니다.
다중공선성이란 설명변수들 사이에 높은 상관관계가 있어서 회귀계수의 해석이 불안정해지는 현상입니다. 쉽게 말해서 설명변수들끼리 서로 비슷한 정보를 담고 있으면 문제가 생긴다는 것입니다.
예를 들어 집값을 예측할 때 “총 면적”과 “방 면적 합계”를 둘 다 설명변수로 넣으면 어떻게 될까요? 이 두 변수는 거의 같은 정보를 담고 있습니다. 이런 경우 회귀분석 결과가 불안정해지고, 어떤 변수가 진짜 중요한지 판단하기 어려워집니다.
다중공선성을 확인하는 방법
다중공선성이 있는지 확인하는 방법은 여러 가지가 있습니다.
| 확인 방법 | 설명 | 판단 기준 |
|---|---|---|
| 상관계수 확인 | 설명변수들 간의 상관계수 계산 | 상관계수가 0.8 이상이면 의심 |
| 신뢰구간 확인 | 회귀계수의 신뢰구간 폭 확인 | 비정상적으로 넓으면 의심 |
| 변수 추가/삭제 테스트 | 특정 변수를 추가하거나 삭제했을 때 다른 회귀계수 변화 확인 | 회귀계수 값이 크게 변하면 의심 |
3. 분산팽창인자(VIF) 완벽 이해
VIF란 무엇인가요?
다중공선성의 정도를 수치로 나타낸 값이 VIF입니다. VIF는 Variance Inflation Factor의 약자로, 한국어로는 분산팽창인자 또는 분산팽창계수라고 번역합니다.
VIF 값이 크면 해당 변수가 다른 변수들과 높은 상관관계를 가지고 있다는 뜻입니다. 일반적으로 VIF 값이 10 이상이면 공선성이 심하다고 판단합니다.
VIF 계산 공식
VIF_i = 1 / (1 - R_i²)
여기서 R_i²는 해당 설명변수를 다른 설명변수들로 회귀분석했을 때의 결정계수입니다.
이 공식이 무슨 뜻인지 쉽게 설명하겠습니다. 예를 들어 X1이라는 변수의 VIF를 구하고 싶다면, X1을 종속변수로 놓고 나머지 변수들(X2, X3, X4…)을 설명변수로 해서 회귀분석을 합니다. 이때 결정계수 R²가 나오는데, 이 값이 높을수록 X1이 다른 변수들로 잘 설명된다는 뜻입니다. 즉, X1이 다른 변수들과 비슷한 정보를 담고 있다는 의미입니다.
VIF 값 해석하기
| VIF 값 | 해석 | 조치 |
|---|---|---|
| 1 | 다중공선성 없음 | 문제 없음 |
| 1 ~ 5 | 약한 다중공선성 | 대체로 허용 가능 |
| 5 ~ 10 | 중간 수준의 다중공선성 | 주의 필요 |
| 10 이상 | 심각한 다중공선성 | 해당 변수 제거 또는 조치 필요 |
VIF가 10이라는 것은 R_i²가 0.9라는 뜻입니다. 즉, 해당 변수의 90%가 다른 변수들로 설명된다는 의미이므로, 그 변수는 사실상 다른 변수들과 중복된 정보를 담고 있는 것입니다.
4. 변수선택 기준 알아보기
어떤 변수를 선택할지 결정하려면 기준이 필요합니다. 대표적인 변수선택 기준 네 가지를 알아보겠습니다.
4.1 결정계수 (R²)
결정계수는 모형이 종속변수를 얼마나 잘 설명하는지 비율로 나타낸 값입니다. 0에서 1 사이의 값을 가지며, 1에 가까울수록 모형이 데이터를 잘 설명한다는 뜻입니다.
하지만 R²에는 단점이 있습니다. 변수를 추가하면 무조건 R²가 증가하거나 같아집니다. 쓸데없는 변수를 넣어도 R²는 올라가기 때문에, R²만으로 모형을 평가하면 변수가 많은 복잡한 모형이 항상 좋아 보이는 문제가 생깁니다.
4.2 수정결정계수 (Adjusted R²)
수정결정계수는 R²의 단점을 보완한 지표입니다. 설명변수의 개수를 보정하여 모형의 설명력을 평가합니다.
수정결정계수는 불필요한 변수가 추가되면 오히려 값이 감소합니다. 따라서 R²보다 수정결정계수를 기준으로 모형을 비교하는 것이 더 합리적입니다.
4.3 Mallows Cp
Mallows Cp는 모형의 예측력을 평가하는 지표입니다. Cp 값이 p에 가까울수록 좋은 모형입니다. 여기서 p는 모형에 포함된 변수의 개수에 1을 더한 값입니다.
Cp가 p보다 훨씬 크면 모형에 중요한 변수가 빠져 있다는 신호이고, Cp가 p에 가까우면 적절한 변수가 포함되어 있다는 뜻입니다.
4.4 AIC (Akaike Information Criterion)
AIC는 모형의 적합성과 복잡성을 함께 고려하는 값입니다. 한국어로는 아카이케 정보기준이라고 합니다.
AIC는 모형이 데이터를 잘 설명하는지와 모형이 얼마나 복잡한지를 동시에 평가합니다. 값이 작을수록 좋은 모형입니다. 변수를 추가해서 설명력이 좋아지더라도 복잡성이 증가하면 AIC가 오히려 커질 수 있습니다.
변수선택 기준 비교 정리
| 기준 | 설명 | 좋은 모형 판단 |
|---|---|---|
| R² (결정계수) | 모형의 설명력 | 값이 클수록 좋음 (단, 변수 수 증가 시 항상 증가) |
| Adjusted R² (수정결정계수) | 변수 수 보정한 설명력 | 값이 클수록 좋음 |
| Mallows Cp | 예측력 평가 | Cp ≈ p (변수 수 + 1)일수록 좋음 |
| AIC | 적합성 + 복잡성 동시 고려 | 값이 작을수록 좋음 |
5. 변수선택 방법 4가지
5.1 모든 가능한 회귀 (All Possible Regressions)
가장 철저한 방법입니다. 모든 변수 조합에 대해 회귀분석을 실시하고, 그 중에서 최적의 모형을 선택합니다.
예를 들어 변수가 4개라면, 변수 1개만 넣은 모형 4개, 변수 2개 넣은 모형 6개, 변수 3개 넣은 모형 4개, 변수 4개 모두 넣은 모형 1개, 총 15개의 모형을 다 만들어보고 비교합니다.
장점은 최적의 모형을 놓칠 가능성이 없다는 것이고, 단점은 변수가 많으면 계산량이 기하급수적으로 증가한다는 것입니다. 변수가 20개면 조합이 100만 개가 넘습니다.
5.2 전진선택법 (Forward Selection)
전진선택법은 빈 모형에서 시작해서 가장 영향력 있는 변수부터 하나씩 추가하는 방법입니다. 앞으로부터 선택법이라고도 합니다.
진행 순서는 다음과 같습니다. 먼저 변수가 하나도 없는 모형에서 시작합니다. 그 다음, 변수를 하나씩 넣어보고 가장 설명력이 좋아지는 변수를 선택합니다. 이 과정을 반복하면서 더 이상 추가해도 의미 있는 개선이 없을 때 멈춥니다.
5.3 후진제거법 (Backward Elimination)
후진제거법은 전진선택법과 반대입니다. 모든 변수를 포함한 모형에서 시작해서 가장 영향력 없는 변수부터 하나씩 제거합니다. 뒤로부터 제거법이라고도 합니다.
진행 순서는 다음과 같습니다. 먼저 모든 변수가 포함된 모형에서 시작합니다. 그 다음, 가장 기여도가 낮은 변수를 하나 제거합니다. 이 과정을 반복하면서 더 이상 제거해도 모형이 나아지지 않을 때 멈춥니다.
5.4 단계별 회귀 (Stepwise Regression)
단계별 회귀는 전진선택법과 후진제거법을 결합한 방법입니다. 변수를 추가하기도 하고 제거하기도 하면서 최적의 모형을 찾습니다.
처음에 변수를 추가했다가, 나중에 다른 변수가 들어오면서 기존 변수가 불필요해지면 제거할 수도 있습니다. 가장 유연한 방법이라서 실무에서 많이 사용됩니다.
변수선택 방법 비교 정리
| 방법 | 영문명 | 시작점 | 진행 방식 | 특징 |
|---|---|---|---|---|
| 모든 가능한 회귀 | All Possible | – | 모든 조합 시도 | 가장 철저하지만 계산량 많음 |
| 전진선택법 | Forward | 빈 모형 | 변수 추가 | 빠르지만 최적해 놓칠 수 있음 |
| 후진제거법 | Backward | 전체 모형 | 변수 제거 | 다중공선성 영향 받을 수 있음 |
| 단계별 회귀 | Stepwise | 빈 모형 또는 전체 | 추가 + 제거 | 가장 유연하고 많이 사용됨 |
6. R 코드로 실습하기
VIF 계산하기
r
library(fmsb)
VIF(lm(X1 ~ X2+X3+X4+X5, data=hospital))
VIF 함수는 해당 변수의 다중공선성 수치를 계산합니다. 결과값이 10 이상이면 공선성을 의심해야 합니다.
모든 가능한 회귀
r
library(leaps)
all_lm = regsubsets(Y ~ ., data=hald)
summary(all_lm)
regsubsets 함수는 모든 변수 조합으로 회귀분석을 수행합니다. 결과에서 별표 표시된 변수가 각 모형에 포함된 변수입니다.
전진선택법
r
start.lm = lm(Y~1, data=hald)
full.lm = lm(Y~., data=hald)
step(start.lm, scope=list(lower=start.lm, upper=full.lm), direction="forward")
step 함수에서 direction을 forward로 설정하면 변수를 하나씩 추가하면서 AIC 기준으로 모형을 선택합니다.
후진제거법
r
step(full.lm, direction="backward")
기존 모형에서 변수를 하나씩 제거하면서 AIC로 모형을 평가합니다.
단계별 회귀
r
step(start.lm, scope=list(upper=full.lm), direction="both")
direction을 both로 설정하면 변수를 추가하기도 하고 제거하기도 하면서 최적의 모형을 찾습니다.
핵심 내용 정리
| 개념 | 설명 | 핵심 포인트 |
|---|---|---|
| 변수선택 | 모형에 포함할 설명변수 결정 | 간결한 모형이 해석과 예측에 유리 |
| 다중공선성 | 설명변수 간 높은 상관관계 | 회귀계수 해석 불안정 유발 |
| VIF | 다중공선성 수치화 | 10 이상이면 공선성 심각 |
| 변수선택 기준 | R², Adjusted R², Cp, AIC | AIC가 가장 많이 사용됨 |
| 변수선택 방법 | Forward, Backward, Stepwise | Stepwise가 가장 유연함 |
연습문제로 확인하기
문제 1. 다중공선성이 의심되는 경우 확인할 수 있는 지표는?
① AIC ② VIF ③ R² ④ Cp
정답: ②
해설: VIF 값이 10 이상이면 다중공선성이 심각하다고 판단합니다. AIC, R², Cp는 모형 평가 기준이지 다중공선성 확인 지표가 아닙니다.
문제 2. 변수선택 방법 중 가장 영향력 있는 변수부터 하나씩 추가하는 방법은?
① backward ② forward ③ stepwise ④ exhaustive
정답: ②
해설: Forward selection은 빈 모형에서 시작해서 영향력 큰 변수부터 하나씩 추가합니다. Backward는 제거, Stepwise는 추가와 제거를 병행합니다.
문제 3. 모형의 적합성과 복잡성을 함께 고려하는 값으로 값이 작을수록 좋은 것은?
① VIF ② AIC ③ R² ④ Cp
정답: ②
해설: AIC는 모형의 적합성과 복잡성을 동시에 고려하며, 값이 작을수록 좋은 모형입니다. R²는 클수록 좋고, VIF는 작을수록 좋지만 모형 평가 기준이 아닙니다.
변수선택은 좋은 모형의 시작입니다
변수선택은 회귀분석에서 매우 중요한 단계입니다. 아무리 좋은 데이터와 분석 기법을 사용해도, 불필요한 변수가 포함되거나 중요한 변수가 빠지면 좋은 결과를 얻기 어렵습니다.
다중공선성을 VIF로 확인하고, AIC나 수정결정계수 같은 기준으로 모형을 평가하며, Stepwise 같은 방법으로 최적의 변수 조합을 찾아보세요. 이 과정을 통해 해석하기 쉽고 예측력 높은 모형을 만들 수 있습니다.
