로그 변환 (Logarithmic Transformation)
단순선형회귀모형은 그 이름대로 데이터에 대해 선형모형(linear model)만을 적합하기에 데이터가 비선형 관계(nonlinear equation)를 가지는 경우 적절하지 않은 경우가 있다. 그런데 비선형 관계의 특별한 경우 약간의 변형만으로 선형모형을 그대로 사용할 수 있는데, 그 중 하나가 로그 변환이다.
먼저 $ x $ 와 $ y $ 간 다음과 같은 관계가 있다고 해보자.
$$ y = \alpha_0 \alpha_1^x \epsilon $$
여기서 $ \alpha_0 $ 와 $ \alpha_1 $ 은 회귀모수(regression parameters)이며, $ \epsilon $ 은 오차를 의미하는 확률변수로 평균이 $ 1 $ 이고 분산이 $ \sigma^2 $ 이라 가정하자.
이제 이를 선형모형처럼 만들기 위해 양변에 밑(base)을 $10$으로 하는 로그를 취해주면 다음과 같다.
$$ \log y = \log \alpha_0 + x \log \alpha_1 + \log \epsilon $$
이제 $ \log y = y^\prime $, $ \log \alpha_0 = \beta_0 $, $ \log \alpha_1 = \beta_1 $, $ \log \epsilon = \epsilon^\prime $ 으로 놓으면 다음과 같은 선형모형이 된다.
$$ y^\prime = \beta_0 + \beta_1 x + \epsilon^\prime $$
또 다르게, $ x $ 와 $ y $ 간 다음과 같은 관계가 있다고 해보자.
$$ y = \alpha_0 x^{\alpha_1} \epsilon $$
로그를 취하면 다음과 같다.
$$ \log y = \log \alpha_0 + \alpha_1 \log x + \log \epsilon $$
역시 치환하여 $ \log y = y^\prime $, $ \log \alpha_0 = \beta_0 $, $ \alpha_1 = \beta_1 $, $ \log x = x^\prime $, $ \log \epsilon = \epsilon^\prime $ 으로 놓으면 다음과 같은 선형모형이 된다..
$$ y^\prime = \beta_0 + \beta_1 x^\prime + \epsilon^\prime $$
혹은 다시 $ x $ 와 $ y $ 간 다음과 같은 관계가 있다고 해보자.
$$ y = e^{\beta_0 + \beta_1 x } \epsilon $$
그렇다면 자연로그를 취하면 아래와 같다.
$$ \ln y = \beta_0 + \beta_1 x + \ln \epsilon $$
역시 선형모형이 된다.
만약 모형이 다음과 같다고 해보자.
$$ y = \frac{1}{1+e^{\beta_0 + \beta_1 x + \epsilon}} $$
역시 아래와 같이 선형모형으로 만들 수 있다.
$$ \ln \left( \frac{1}{y} - 1 \right) = \beta_0 + \beta_1 x + \epsilon $$
단 이렇게 변환하여 선형회귀모형을 만들었다면, 적용할 때는 역으로 변환(inverse transformation)해야 한다. 예를 들어서 처음 가정했던 $ y = \alpha_0 \alpha_1^x \epsilon $ 을 통해 $ y^\prime = \beta_0 + \beta_1 x + \epsilon^\prime $ 을 만들었다고 해보자. 그렇다면 이를 통해 $ \hat{\beta}_1 $, $\hat{\beta}_0 $ 를 추정하였을 것이고, 이를 통해 다시 $ \hat{\alpha}_0 $, $ \hat{\alpha}_1 $ 을 추정한다고 하면 $ \hat{\alpha}_0 = \operatorname{antilog} ( \hat{\beta}_0) $, $ \hat{\alpha}_1 = \operatorname{antilog} ( \hat{\beta}_1) $ 이다. 그 외 로그 변환에서도 마찬가지이니 주의해야 한다.
변환을 할 것인가 말것인가 선택할 때는 직접 데이터를 찍어보고 결정하거나 여러개 가능한 모형을 만들고 적합 정도, 예를 들어 $ R^2 $ 등을 고려하여 선택하는 것이 좋다.
역변환 (Reciprocal Transformation)
만약 $ y $ 와 $ x $ 의 관계를 아래처럼 표현 가능하다고 해보자.
$$ y = \beta_0 + \beta_1 \frac{1}{x} + \epsilon $$
그렇다면 $ x^\prime = 1/x $ 로 하여 아래와 같이 선형모델을 만들 수 있다.
$$ y = \beta_0 + \beta_1 x^\prime + \epsilon $$
비슷하게 $ y $ 가 역수로 나타나는 경우들에 대해서도 역변환하여 선형모델을 만들 수 있다.
앞서 로그 변환과 마찬가지로 추정값에 대해서는 역으로 변환해주어야 한다.
박스-콕스 변환 (Box-Cox Transformation)
위 변환들, 그 외 멱변환(power transformation) 등을 포함하여 다양한 변환들이 있지만, 많은 경우 등분산성, 정규성, 선형성을 만족하기란 쉽지 않다. 이러한 어려움을 극복하고자 정규성을 최대한 만족하는 변환을 고안한 것이 박스-콕스 변환이다. 이는 매개모수 $ \lambda $ 를 이용하여 변환된 종속변수가 등분산성, 정규성, 선형성을 만족하도록 추정한다.
$ y $ 의 모든 값이 양수라 가정하고, 변환식은 아래와 같다.
$$ y^{(\lambda)} = \begin{cases} \dfrac{y^\lambda - 1}{\lambda} , & \quad (\lambda \neq 0) \\ \ln y, & \quad (\lambda = 0) \end{cases} $$
즉 멱변환을 이용한 것으로 $ \lambda = 0 $ 일 때는 $ \ln y $ 로 로그 변환을, $ \lambda = 1 $ 일 때는 $ y^{(1)} = y - 1 $ 이므로 실질적인 변환은 없으며, $ \lambda = -1 $ 일 때는 역변환을, $ \lambda = 1/2 $ 일 때는 제곱근 변환 등으로 매개변수 $ \lambda $ 에 따라 다양한 변환이 가능하다.
이때 주어진 $ \lambda $ 에 대하여 종속변수 $ y^{(\lambda)} $ 가 다음과 같은 선형모형을 만족한다는 가정하에 모수 $ \beta_0 $, $\beta_1 $, $\sigma^2 $, $\lambda $ 를 추정한다. 이때 모수 추정은 최소제곱법을 활용하여 회귀계수 추정값 $ \hat{\beta}_0 $, $\hat{\beta}_1 $ 은 $ \lambda $ 에 의존한다. 이를 고려하여 잔차제곱합 $ SSE $ 를 나타내면 다음과 같다.
$$ SSE_\lambda = \sum_{i=1}^n (y_i^{(\lambda)} - \hat{\beta}_0 - \hat{\beta}_1 x_i)^2 $$
그런데 이때 $ SSE_\lambda $ 의 단순 비교는 $ y^{(\lambda)} $ 가 변환 후 달라지게 된다는 점을 고려할 때 적절하지 않다. 따라서 아래와 같은 절차에 따라 최대가능도법을 사용한다.
먼저 $ i $ 번째 원소 $y_i $ 에 대하여 다음의 박스-콕스 변환을 고려한다.
$$ z_i^{(\lambda)} = \begin{cases} \dfrac{y^\lambda - 1}{\lambda} \left[ \frac{1}{\left( \prod_{i=1}^n y_i \right) ^{1/n}} \right]^{\lambda - 1} , & \quad (\lambda \neq 0) \\ \ln y \left( \prod_{i=1}^n y_i \right) ^{1/n}, & \quad (\lambda = 0) \end{cases} $$
회귀모형 $ z_i^{(\lambda)} = \beta_0 + \beta_1 x + \epsilon $ 을 적합시키고, $ SSE_\lambda $ 를 계산한다. 위에서 정의한 방식에서 $ y^{(\lambda)} $ 를 $ z_i^{(\lambda)} $ 로 교체하여 계산해야 한다.
이제 $ SSE_\lambda $ 가 최소가 되는 $ \lambda $ 를 추정값으로 사용한다.