변수 변환과 다항회귀
변환과 다항식으로 곡선 관계 분석
회귀분석은 변수 사이의 관계를 직선으로 표현하는 경우가 많습니다. 하지만 실제 데이터에서는 처음에는 빠르게 증가하다가 점차 증가 폭이 줄어들거나, 어느 지점까지 증가한 뒤 감소하는 관계도 나타납니다. 이런 관계를 직선만으로 설명하면 데이터의 패턴을 제대로 포착하지 못할 수 있습니다. 이때 변수 변환(Variable Transformation)과 다항회귀(Polynomial Regression)를 활용할 수 있습니다.
왜 변수를 변환해야 할까?
예를 들어 광고비를 늘리면 매출도 증가한다고 가정해 보겠습니다. 광고비가 적을 때는 광고비를 조금만 늘려도 매출이 크게 증가할 수 있지만, 광고비가 이미 충분히 많다면 추가 지출에 따른 매출 증가 폭은 작아질 수 있습니다. 이런 관계를 직선으로만 표현하면 다음과 같은 문제가 생길 수 있습니다.
- 실제로는 증가 폭이 줄어드는데, 모형은 일정한 증가 폭을 가정합니다.
- 특정 수준 이후 감소하는 관계를 제대로 표현하지 못합니다.
- 예측값과 실제 관측값 사이에 체계적인 오차가 남을 수 있습니다.
그림 1은 광고비와 매출 모의 데이터 30개를 직선으로 맞춘 결과입니다. 직선은 광고비가 작은 곳과 큰 곳에서는 실제보다 높게, 가운데에서는 낮게 예측합니다. 그래서 오른쪽 잔차 그래프에 아치 모양이 남습니다. 06장에서 본 “잔차에 곡선 패턴”이 바로 이 경우입니다. 직선의 R²는 0.78입니다.
같은 데이터를 광고비 대신 log(광고비)로 맞추면 그림 2처럼 곡선이 데이터를 따라가고, 잔차는 0 주변에 고르게 흩어집니다. R²도 0.90로 높아집니다. 변수 변환과 다항회귀는 이런 비선형적인 패턴을 회귀모형에 반영하기 위한 방법입니다.
변수 변환이란?
변수 변환은 원래 변수의 값을 다른 형태로 바꾸어 분석하는 방법입니다. 대표적으로 로그 변환과 제곱 변환이 있습니다.
| 변환 방법 | 예시 | 주로 활용하는 상황 |
|---|---|---|
| 로그 변환 | log(X) | 증가 폭이 점차 줄어드는 관계, 비율 중심의 해석 |
| 제곱 변환 | X² | 곡선 형태의 관계 |
| 제곱근 변환 | √X | 큰 값의 영향을 완화하고 싶을 때 |
| 역수 변환 | 1/X | 특정 형태의 비선형 관계를 표현할 때 |
어떤 변환이 적절한지는 데이터의 분포, 변수 간 관계, 분석 목적에 따라 달라집니다. 산점도의 모양이 그림 3의 어느 곡선과 닮았는지 보는 것이 출발점이 될 수 있습니다. 변환을 적용했다고 해서 모형이 반드시 좋아지는 것은 아닙니다.
로그 변환과 회귀분석
로그 변환은 값의 크기 차이가 크거나, 변수 사이의 관계를 비율 중심으로 해석하고 싶을 때 자주 사용합니다. 로그 눈금에서는 1, 2, 4, 8처럼 두 배씩 커지는 값이 같은 간격으로 놓이기 때문에, “얼마나 늘었나”보다 “몇 배 늘었나”가 중요한 관계를 직선으로 바꿔 줍니다.
설명변수를 로그 변환하는 경우: Y = β0 + β1 log(X) + ε. 이 모형은 X가 증가할수록 Y가 변하지만, 그 변화량이 일정하지 않은 관계를 표현합니다. 예를 들어 광고비가 100만 원에서 101만 원으로 증가하는 것과 1,000만 원에서 1,001만 원으로 증가하는 것은 절대적인 증가액은 같지만 상대적인 증가율은 다릅니다. 로그 변환은 이런 상대적인 변화의 차이를 반영합니다. X가 약 1% 증가할 때 Y는 약 β1/100 단위만큼 변하는 것으로 해석할 수 있습니다(작은 변화에 대한 근사). 예제 데이터에서는 β1 ≈ 16.5이므로, 광고비가 1% 늘 때 매출은 약 0.17 늘어납니다.
종속변수를 로그 변환하는 경우: log(Y) = β0 + β1X + ε. 이 모형에서는 X가 한 단위 증가할 때 Y의 변화가 절대적인 수치보다 상대적인 비율로 해석됩니다. 자연로그를 사용했다면 정확한 변화율은 100(eβ₁ − 1)%이고, 계수가 작을 때는 100β1%로 근사할 수 있습니다. 예를 들어 β1 = 0.05라면 X가 한 단위 증가할 때 Y는 약 5% 증가하며, 정확한 값은 약 5.13%입니다. 계수가 0.5처럼 크면 근사는 50%, 정확한 값은 64.9%로 차이가 커지므로 정확한 식을 써야 합니다.
종속변수와 설명변수를 모두 로그 변환하는 경우: log(Y) = β0 + β1 log(X) + ε. 이 모형에서는 β1을 탄력성(Elasticity)으로 해석할 수 있습니다. 예를 들어 β1 = 0.8이라면 다른 조건이 동일할 때 X가 1% 증가할 때 Y는 약 0.8% 증가하는 관계입니다.
| 모형 | 계수 해석 |
|---|---|
| Y = β0 + β1 log(X) | X의 1% 증가에 따른 Y의 단위 변화 (약 β1/100) |
| log(Y) = β0 + β1X | X 한 단위 증가에 따른 Y의 백분율 변화 (약 100β1%) |
| log(Y) = β0 + β1 log(X) | X의 1% 증가에 따른 Y의 백분율 변화 (약 β1%) |
주의할 점: 일반적인 로그는 0 이하의 값에 적용할 수 없습니다. 0이 포함된 데이터에 임의로 로그를 적용하거나 무조건 log(1 + X)로 바꾸기보다는, 데이터의 특성과 변환 목적을 먼저 확인해야 합니다.
보고서에는 다음과 같이 작성할 수 있습니다.
광고비와 매출의 관계를 직선으로 적합한 결과 잔차에 곡선 패턴이 남아, 광고비를 로그 변환한 회귀모형(n = 30)을 적용하였다. 로그 변환 모형에서 광고비의 계수는 약 16.5로, 광고비가 1% 증가할 때 매출은 약 0.17단위 증가하는 것으로 나타났으며, 설명력도 직선 모형보다 높았다(R² = .78 → .90).
다항회귀란?
다항회귀는 설명변수의 제곱항이나 세제곱항 등을 추가하여 곡선 형태의 관계를 표현하는 방법입니다. 가장 기본적인 형태는 2차 다항회귀입니다.
- b0: X = 0일 때의 예측값
- b1: 선형항의 계수
- b2: 곡선의 휘어지는 방향과 정도에 영향을 주는 계수
X²가 들어가도 이 모형은 계수 b에 대해서는 더하기만 있으므로 선형모형이고, OLS로 그대로 추정할 수 있습니다(04장 2절). 여기서 중요한 점은 b1만으로 X의 전체적인 효과를 해석할 수 없다는 것입니다. X가 변할 때 Y가 얼마나 변하는지는 현재 X의 값에 따라 달라집니다.
다항회귀의 실제 예시
광고비와 매출 사이에 광고비가 늘어날수록 매출 증가 효과가 줄어드는 관계가 있다고 가정해 보겠습니다. 다음과 같은 가상의 회귀식을 얻었다고 합시다.
X: 광고비 수준 · Y: 매출 지표 (단위는 예시용)
광고비 수준이 4라면 예측값은 40 + 8 × 4 − 0.5 × 4² = 40 + 32 − 8 = 64입니다.
2차 다항회귀에서 X의 변화에 따른 예측값의 기울기는 b1 + 2b2X입니다. 위 예시에서는 8 + 2 × (−0.5) × X = 8 − X입니다. 따라서 그림 5처럼 X = 2에서는 기울기가 +6, X = 8에서는 0, X = 12에서는 −4입니다. 즉 X가 8보다 작을 때는 광고비가 늘수록 매출이 증가하되 증가 폭이 점점 줄어들고, 8에서 증가가 멈추며, 8보다 크면 오히려 감소합니다.
곡선의 꼭짓점은 X* = −b1 ÷ (2b2) = −8 ÷ (2 × −0.5) = 8이고, 이때 예측값은 72입니다. 다만 이 지점이 실제로 의미 있는 최적점이 되려면 관측 데이터의 범위 안에 있어야 하고, 모형이 해당 구간에서 적절해야 합니다. 실제 광고 의사결정에서는 비용과 이익도 함께 고려해야 합니다. 매출이 최대인 X = 8보다, 광고비 1단위의 비용과 매출 증가분이 같아지는 지점이 이익 면에서는 더 낫습니다.
U자형과 역U자형 관계
2차 다항회귀는 계수 b2의 부호에 따라 서로 다른 곡선을 표현합니다.
- U자형 (b2 > 0): 처음에는 감소하다가 어느 지점 이후 증가하는 형태입니다.
- 역U자형 (b2 < 0): 처음에는 증가하다가 어느 지점 이후 감소하는 형태입니다. 섹션 5의 예시가 여기에 해당합니다.
예를 들어 공부 시간이 늘어날수록 성적이 향상되다가 피로가 누적되면서 성과가 떨어지는 관계는 역U자형으로 가정해 볼 수 있습니다. 그러나 실제 데이터가 반드시 이런 형태를 보이는 것은 아니므로 분석을 통해 확인해야 합니다. 특히 꼭짓점이 관측 범위의 끝 근처에 있다면, 데이터는 사실 “증가 폭이 줄어드는” 관계일 뿐 감소 구간은 없을 수도 있습니다.
변수 중심화와 제곱항
다항회귀에서 X와 X²를 함께 사용하면 두 항 사이에 높은 상관관계가 생길 수 있습니다. X가 양수일 때 X가 크면 X²도 크기 때문입니다. 이때 변수 중심화(Centering)를 활용할 수 있습니다. 평균을 뺀 변수 Xc = X − X̄를 만들고, 모형을 Ŷ = b0 + b1Xc + b2Xc²로 구성합니다.
그림 7처럼 X가 1~20일 때 X와 X²의 상관은 0.97이지만, 평균을 빼고 나면 Xc는 음수와 양수가 대칭이 되어 Xc와 Xc²의 상관이 0이 됩니다.
| 원래 X | 중심화 X − X̄ | |
|---|---|---|
| b0 | X = 0일 때 예측값 | X가 평균일 때 예측값 |
| b1 | X = 0에서의 기울기 | 평균 수준에서의 기울기 |
| X와 X²의 상관 | 매우 높음 (예: 0.97) | 크게 줄어듦 (예: 0) |
중심화하면 계수 해석이 더 편리해질 수 있습니다. 다만 중심화는 다항항 사이의 불필요한 상관을 완화하는 데 도움이 될 수 있을 뿐, 모든 다중공선성 문제를 없애는 방법은 아닙니다(07장). 중심화해도 예측값과 b2, R²는 그대로입니다.
어떤 모형을 선택해야 할까?
로그 변환이나 다항항을 추가하면 데이터에 더 잘 맞는 모형을 만들 수 있지만, 복잡한 모형이 항상 더 좋은 것은 아닙니다.
그림 8은 같은 데이터 9개에 1차, 2차, 8차 다항식을 맞춘 것입니다. 1차 직선은 곡선을 놓치고, 2차는 전체 흐름을 잘 따라갑니다. 8차는 점 9개를 하나도 빠짐없이 지나가 훈련 데이터의 오차가 0이지만, 점 사이에서 크게 출렁이므로, 새 데이터를 예측하면 엉뚱한 값을 낼 가능성이 큽니다. 다항항을 계속 추가하면 학습 데이터에는 잘 맞지만 새로운 데이터에서는 성능이 떨어지는 과적합이 발생할 수 있습니다(10장).
| 확인 항목 | 살펴볼 내용 |
|---|---|
| 산점도 | 관계가 직선인지, 곡선인지 |
| 잔차 그래프 | 잔차에 체계적인 패턴이 남는지 |
| 수정 R² | 변수 추가를 고려했을 때 설명력이 개선되는지 |
| 교차검증 | 새로운 데이터에서도 예측 성능이 유지되는지 |
| 해석 가능성 | 변환 후 계수를 연구 목적에 맞게 설명할 수 있는지 |
또한 로그 변환은 오차의 분포와 해석을 바꾸며, 로그 변환된 종속변수의 예측값을 원래 단위로 되돌릴 때는 단순히 지수함수를 취하는 것만으로 원래 척도의 평균을 정확히 얻지 못할 수도 있습니다. log(Y)의 평균을 되돌리면 Y의 평균이 아니라 대략 중앙값에 가까운 값이 나오기 때문입니다.
변수를 바꾸거나 항을 더해, 휘어진 관계도 회귀로 표현합니다.
- 변수 변환은 변수의 값을 다른 형태로 바꾸어 관계를 표현하는 방법입니다.
- 로그 변환은 비율 중심의 해석이나 특정한 비선형 관계를 표현하는 데 유용합니다.
- 다항회귀는 X² 등의 항을 추가해 곡선 형태의 관계를 표현합니다.
- 다항회귀에서는 X의 효과가 현재 X의 값에 따라 달라질 수 있습니다.
- 변환이나 항 추가는 잔차 진단, 모형의 복잡성, 예측 성능을 함께 고려해 결정해야 합니다.
다음은 09 범주형 설명변수와 상호작용입니다. 성별, 집단, 교육 방식처럼 범주로 구분된 변수를 회귀모형에 넣는 방법과, 두 변수의 효과가 서로의 수준에 따라 달라지는 상호작용을 해석하는 방법을 알아봅니다.
직선으로 맞춘 잔차에 곡선이 남으면 변환이나 다항항을 검토합니다. 로그를 X·Y 중 어디에 쓰느냐에 따라 계수는 단위 변화, 백분율 변화, 탄력성으로 읽힙니다. 2차 다항회귀의 기울기는 b₁ + 2b₂X로 X마다 다르고(예제: 8 − X, 꼭짓점 8), 차수를 너무 높이면 과적합됩니다.