다항회귀모델과 해법

우리는 앞에서 단순회귀모델다중회귀모델에 대하여 살펴보았다. 둘의 가장 큰 차이는 독립변수의 수가 하나이냐 혹은 둘 이상이냐는 것인데 다음과 같이 하나의 독립변수에 대하여 고차 다항식으로 표현되는 모델의 회귀선은 어떻게 구할 수 있을까?

y=β0+β1x+β2x2++βmxm+ϵ(1)\tag{1} y = \beta_0 + \beta_1x + \beta_2 x^2 + \dots + \beta_m x^m + \epsilon

위와 같은 회귀모델을 다항회귀모델이라 한다. 다항회귀 모델의 최적해는 독립변수가 xx 하나이기 때문에 xx를 먼저 추정하고, x2,x3,x^2, x^3, \dots의 값을 찾아주면 될 것처럼 생각할수도 있지만 xx의 고차항을 새로운 독립변수로 zi=xiz_i=x^i로 치환하여 다음과 같은 다중회귀모델의 해를 구하는 것으로 문제를 해결할 수 있다.

y=β0+β1z1+β2z2++βmzm+ϵ(2)\tag{2} y = \beta_0 + \beta_1z_1 + \beta_2 z_2 + \dots + \beta_m z_m + \epsilon

물론, 위 식에서 zz는 여러 개의 독립변수(가령, x1x_1x2x_2)의 고차항으로도 표현이 가능하다. 이러한 접근방법으로도 독립변수와 종속변수 간의 관계가 설명되지 않는다면 비선형 회귀 기법들을 이용하여야 한다. 그러나 실제 우리가 접하는 대부분의 비선형 문제들은 부드러운 곡선의 형태를 하고 있기 때문에 다항식으로 근사화시킬 수 있으며, 식 (2)와 같은 다항회귀모델을 mm차 다항회귀모델(mm-th order polynomial regression model)이라 한다.

다중회귀모델의 회귀선을 구하는 방법은 다중회귀모델과 완전히 동일하다. 따라서 자세한 설명은 이전 포스트로 대신한다.


다중공선성(Multicollinearity) 문제

다항회귀모델을 해석하는데 있어 대부분의 경우 m>3m>3인 경우에는 변수 간 상당한 상관관계가 존재하며, 이에 따라 수치적 안정성에 문제가 많은 것으로 알려져 있다. 이러한 변수간의 상관관계를 다중공선성(Multicollinearity)라 하며, 이에 대하여 간략히 알아보자. 참고로 다중공선성은 다항회귀를 포함한 모든 다중회귀모델에서 문제가 된다.

다중공선성(Multicollinearity)

두 독립변수 x1x_1, x2x_2가 있다고 하자. 임의의 상수 c0,c1,c2c_0, c_1, c_2에 대하여 다음과 같은 선형관계가 성립하면 두 변수 사이에 완벽한 공선선 (exact collinearity)가 있다고 한다 [1].

c1x1+c2x2=c0(3)\tag{3} c_1x_1 + c_2x_2=c_0

즉, 하나의 독립변수에 의해 다른 독립변수가 완전히 설명되어 실제로는 하나의 독립변수를 제거해도 정보의 손실이 전혀 없는 경우라 할 수 있다. 식 (3)과 같이 완벽한 공선성을 갖지 않더라도 식 (3)의 관계가 근사적으로 성립하는 경우에도 두 변수 간의 공선성은 상당히 존재하며, 이를 정량적으로 두 변수간의 표본상관계수로 나타낼 수 있을 것이다. 즉, 표본상관계수의 제곱 r122r_{12}^2이 0이면 x1x_1x2x_2는 직교하며, 1에 가까울수록 두 변수의 공선성이 크다고 할 수 있다. 일반적으로 회귀모델을 분석하는 과정에서 다음 중 하나 이상의 현상이 발생하면 독립변수들 간의 다중공선성을 의심해보아야 한다 [1].

  • 상관계수의 크기가 큰 경우
  • 어떤 독립변수를 추가하거나 제거하는 것이 추정된 회귀계수의 크기나 부호에 큰 변화를 줄 때
  • 독립변수의 수는 그대로이지만 새로운 데이터를 추가하거나 삭제 후 회귀계수를 추정한 결과의 크기나 부호의 변화가 클 때 (회귀계수의 분산이 커진다는 의미)
  • 중요하다고 생각되는 독립변수에 대한 통계적 가설검정(statistical hypothesis test) 결과가 유의하지 않거나 신뢰구간이 상당히 넓을 때
  • 추정된 회귀계수의 부호가 과거의 경험이나 이론적인 면에서 기대되는 부호와 반대일 때

위의 세 번째 항목에서 다중공선성이 큰 경우, 회귀계수의 분산이 증가한다는 것을 알 수 있는데 정말 그런지 수학적으로 확인해보자. 이전 포스트의 식 (6)에서 주어진 회귀계수의 추정값을 이용하여 회귀계수의 공분산 행렬을 다음과 같이 구해보자1.

Cov(β^)=E[(β^β)(β^β)T]=E[β^β^T]ββT=(XTX)1XTE[yyT]X(XTX)1ββT=σ2(XTX)1(4)\tag{4} \begin{aligned} Cov\left(\hat{\bm{\beta}}\right) &= E[(\hat{\bm{\beta}}-\bm{\beta})(\hat{\bm{\beta}}-\bm{\beta})^T]\\ &= E[\hat{\bm{\beta}}\hat{\bm{\beta}}^T]-\bm{\beta}\bm{\beta}^T \\ &= (\mathbf{X}^T\mathbf{X})^{-1}\mathbf{X}^TE[\mathbf{y}\mathbf{y}^T]\mathbf{X}(\mathbf{X}^T\mathbf{X})^{-1} - \bm{\beta}\bm{\beta}^T\\ &=\sigma^2 (\mathbf{X}^T\mathbf{X})^{-1} \end{aligned}

여기서 E[yyT]=XββTXT+σ2IE[\mathbf{y}\mathbf{y}^T]=\mathbf{X}\bm{\beta}\bm{\beta}^T\mathbf{X}^T+\sigma^2\mathbf{I}라는 사실을 이용하였다. 식 (6)이 최소화되는 것은 (XTX)1(\mathbf{X}^T\mathbf{X})^{-1}이 대각행렬이 되는 것이다. 따라서 다중공선성이 없을 때, 추정된 회귀계수의 분산은 최소가 되며, 반대로 다중공선성이 커질수록 추정된 회귀계수의 분산은 증가한다. 추정 회귀계수의 분산이 증가한다는 것은 훈련 데이터가 약간만 추가되거나 삭제되어도 추정 값이 달라질 수 있음을 의미하며, 이는 곧 추정 값의 신뢰성이 떨어짐을 의미한다. 따라서 추정 값의 분산을 최소화하기 위해 독립변수간 다중공선성을 최대한 제거해주어야 한다.

분산팽창인자 (Variance Inflation Factor, VIF)

다중공선성을 정량적으로 측정하는 지표 중 대표적인 것인 분산팽창인자(VIF)이다. 독립변수 x1,x2,,xmx_1, x_2 ,\dots, x_m에 대하여 xjx_j를 반응변수(종속변수)로 하고, 나머지 독립변수들을 설명변수로 하여 회귀하였을 때 얻어진 결정계수를 Rj2R_j^2라 할 때, jj번째 분산팽창인자 VIFjVIF_j는 다음과 같다.

VIFj=11Rj2(5)\tag{5} VIF_j = \frac{1}{1 - R_j^2}

독립변수들 사이에 다중공선성이 존재하게 되면 Rj2R_j^2이 커질 것이다. 따라서 VIFjVIF_j값도 함께 커지게 된다. 일반적으로 mm개의 VIFjVIF_j 중 가장 큰 값이 55~1010을 넘으면 다중공선성이 있다고 판단한다 [1].


다중공선성을 줄이는 방법들

거의 모든 데이터들은 다중공선성이 존재하는 것이 당연하다고 할 수 있다. 다중공선성이 그리 심각하지 않은 경우는 별 문제가 되지 않을 수 있지만, 그렇지 않을 경우 회귀계수의 추정 값이 큰 분산을 갖게 되어 추정 값의 신뢰성이 떨어지게 되어 잘못된 결론을 유도하기 쉽다. 본 절에서는 다중회귀에서 이렇게 문제가 되는 다중공선성을 줄이는 방법들에 대하여 알아보기로 한다.

참고로 아래 방법들은 결국 과적합(overfitting, 오버피팅)을 줄이기 위한 방법들이다. 다중공선성이 큰 경우 오버피팅은 필연적이지만 다중공선성이 없더라도 오버피팅은 발생할 수 있다. 오버피팅이 발생하는 근본적인 이유는 데이터가 분포되어 있는 고차원 공간에 대한 데이터가 부족하기 때문이며, 이 중 설명력이 부족한 차원의 정보를 제거하는 것이 아래의 차원축소 방법으로 이해하면 되겠다. 자세한 내용은 별도의 포스팅 할 예정이다. 다중공선성과 오버피팅 문제는 아래 방법들로 어느 정도 완화시킬수는 있지만 완전한 해결은 근본적으로 불가능하다.

표본평균을 빼고 치환

다항회귀에만 해당된다. (다항회귀가 아닌 다중회귀에는 해당되지 않는다.) 다항회귀에서 다중공선성 문제를 완화시키기 위해 독립변수를 치환할 때, xx의 표본평균을 뺀 형태, 즉 zi=(xixˉ)iz_i=(x_i-\bar{x})^i를 이용하면 수치적인 안정성을 높일 수 있다 [1].

변수 선택

회귀모델을 포함한 모든 머신러닝 알고리즘들은 오버피팅 문제와 결과의 이해도를 높이기 위해 가능한 간단한 모델이 선호된다. 이를 모형간편화의 원칙(principle of parsimony)라고 한다. 따라서 적절한 기준에 의해 중요한 설명변수들만 선택하여 회귀모델을 만드는 것이 중요하다. 변수선택에 있어 주로 사용되는 측도와 방법들은 다음과 같다.

  • 변수 선택 기준
    • 수정결정계수, CpC_p 통계량, AIC, BIC 등
  • 변수 선택 방법
    • 모든 가능한 회귀
      • 가능한 모든 변수들이 조합을 고려
    • 앞으로부터 선택
      • 가장 큰 영향을 줄 것으로 판단되는 변수들을 앞에서부터 하나씩 선택
    • 뒤로부터 제거
      • 가장 작은 영향을 줄 것으로 판단되는 변수들을 뒤에서부터 하나씩 제거
    • 단계별 회귀
      • 앞으로부터 선택법과 뒤로부터 제거법을 동시에 사용
      • 중요한 변수를 앞에서부터 하나씩 선택해 나가면서 이미 선택된 변수가 새로운 변수가 추가될 때 중요성을 상실하여 제거할 필요가 있는지 매 단계별로 검토

규제 (Regularization)

대표적으로 Ridge, LASSO, ElasticNet 등이 있으며, 자세한 내용은 이 포스트로 대신한다.

차원축소를 통한 특징 추출

대표적으로 PCA, PLS, LLE, LDA, AE, t-SNE 등이 있다.

각각의 주제에 대하여 별도의 포스트로 다룰 예정이다.


Footnotes

1: Covariance matrix의 특성에 의해 Cov(β^)=(XTX)1XTCov(y)X(XTX)1Cov\left(\hat{\bm{\beta}}\right) = (\mathbf{X}^T\mathbf{X})^{-1}\mathbf{X}^TCov(\mathbf{y})\mathbf{X}(\mathbf{X}^T\mathbf{X})^{-1}로 바로 전개할 수도 있다. 이때, E[y]=XβE[\mathbf{y}]=\mathbf{X}\bm{\beta}이므로 Cov(y)=E[(yXβ)(yXβ)T]=E[eeT]=σ2ICov(\mathbf{y}) = E[(\mathbf{y}-\mathbf{X}\bm{\beta})(\mathbf{y}-\mathbf{X}\bm{\beta})^T]=E[\mathbf{e}\mathbf{e}^T]=\sigma^2\mathbf{I}가 되어 식 (4)를 바로 구할 수 있다. 본문에서는 covariance matrix의 특성을 사용하지 않고 모든 항을 전개하여 동일한 결과를 도출하였다.


참고자료

[1] 김성수, 강명욱, 강위창, "회귀모형," 한국방송통신대학교출판문화원, 2019.

[2] https://medium.com/analytics-vidhya/multicollinearity-regularization-lasso-ridge-and-polynomial-regression-93bc90d2e4d

[3] Schreiber-Gregory, D. N. "Regulation techniques for multicollinearity: Lasso, ridge, and elastic nets." SAS Conference Proceedings: Western Users of SAS Software 2018. 2018. (https://www.lexjansen.com/wuss/2018/131_Final_Paper_PDF.pdf)

profile
연구와 개발의 중간 어디쯤

0개의 댓글