로지스틱 회귀분석


로지스틱 회귀분석은 반응변수가 1 또는 0인 이진형 변수에서 쓰이는 회귀분석 방법입니다. 종속변수에 로짓변환을 실시하기 때문에 로지스틱 회귀분석이라고 불립니다. 로지스틱 회귀분석의 좋은점은 우선 계수가 Log Odds ratio가 되기 때문에 해석이 매우 편리하고, case-control과 같이 반응 변수에 따라 샘플링된 데이터에 대해서 편의(bias)가 없는 타당한 계수 추정치를 계산할 수 있다는 것입니다. 이 부분에 초점을 맞추어 로지스틱 회귀분석에 대해 간단히 정리해보려고합니다. 



1. 로지스틱 회귀분석의 원리


반응변수(y)가 1/0인 상황에서 마치 선형 회귀분석처럼 아래의 식에서 계수를 추정한다고 해봅시다. 


$$ y = \beta_0 + \beta X $$


로지스틱 회귀분석에서는 보통 우리가 예측하고자 하는 y의 "예측값"이 P[Y=1] 이라는 믿음을 갖는데, 그러면, y의 예측값은 0-1사이로 고정이 되어야합니다. 하지만 위 식의 경우 특정 X 값에서는 y의 예측값이 0-1 사이로 고정되는 것이 아니라 0보다 작아질 수도 있고, 1보다 커질 수도 있습니다. 


즉, 좌변의 범위는 0-1이며 우변의 범위는 마이너스 무한대에서 플러스 무한대의 값을 갖게됩니다. 이를 해결하기 위해 로지스틱 회귀분석에서는 반응 변수 대한 로짓 변환을 실시합니다. 로짓변환은 y를 log(y/1-y)로 만드는 함수적 변환을 말합니다.



우변을 0-1 사이로 변환하기


$$ P(y=1) = \frac {1} {(1+e^{-(\beta_0 + \beta X)})} $$



이 함수를 시그모이드 함수라고 부릅니다. y의 값이 0-1 사이로 고정됩니다. 이것이 왜 로짓변환이냐고 할 수 있지만 아래의 식을 보면 이해할 수 있습니다.



좌변을 마이너스 무한대에서 플러스 무한대로 변환하기


$$ \log(\frac{P(y=1)}{1-P(y=1)}) = \log(\frac{P(y=1)}{P(y=0)}) = \beta_0 + \beta X $$



이것이 y에 로짓변환을 한 식입니다. 위 두식은 모양만 다르지 결국 풀어서 보면 같은 식입니다. 보통 머신러닝 쪽에서는 위의 식을, 통계학에서는 아래식을 더 좋아하는 것 같아 보입니다. 위의 식이 더 이해하기 쉽지만, 아래 식은 해석이 좋은 특징이 있습니다.


왜냐하면 좌변이 X가 주어진 상황에서 로그 오즈(log odds)가 되기 때문입니다.  즉, 로지스틱 회귀분석은의 계수 추정은 독립변수 X에 대한 선형 회귀식을 X가 주어졌을 때의 반응 변수 Y의 로그 오즈에 적합시킨다." 라고 할 수 있습니다. 



2. 계수의 해석


로지스틱 회귀분석에서 계수에 exponential을 취하면, 해당 변수가 한 단위 증가했을 때, OR 이 됩니다.


$$ \log(\frac{P(y=1| x_1)}{P(y=0 | x_1)}) = \beta_0 + \beta_1 x_1 $$

$$ \log(\frac{P(y=1| x_1 + 1)}{P(y=0 | x_1 + 1)}) = \beta_0 + \beta_1 (x_1 +1) $$


이 때, 아래 식에서 위 식을 빼면, $$ \beta_1 $$ 만 남고, $$ \beta_1 = \log(\frac{P(y=1| x_1 + 1)}{P(y=0 | x_1 + 1)}) -\log(\frac{P(y=1| x_1)}{P(y=0 | x_1)}) $$ 가 됩니다. 


$$ \exp(\beta_1) = \frac{\frac{P(y=1| x_1 + 1)}{P(y=0 | x_1 + 1)}}{\frac{P(y=1| x_1)}{P(y=0 | x_1)}} $$

양변에 exponential을 취해주고, 로그함수의 성질에 의해 exponential된 계수는 X가 X+1이 됐을 때, 오즈의 비율 즉, 오즈 Ratio가 됩니다 (OR). 



3. Case-Control 연구에서 로지스틱 회귀분석의 계수 추정은 편의가 없다.


case-control 연구는 인구집단에서 case와 control을 샘플링해서 이를 대상으로 질병의 원인이 되거나 연관성이 있는 요인을 원인을 찾는 연구입니다. 예를 들어 전체 인구집단 중에 유병률이 0.001 밖에 되지 않는 질병이 있다면, 전체 인구 집단을 대상으로 연구를 수행하면 질병에 걸린 사람(case)를 연구에 포함하기가 매우힘들어지겠죠. 따라서 case-control study에서는 질병이 있는 사람들을 더 많이 샘플링을 해서 case와 control의 비율을 최대 1:1 까지 맞춥니다. 그렇다면 이 연구용 집단은 전체 모집단과는 특성이 다르게 됩니다. 따라서 많은 수치가 잘못된 계산값을 내놓게 됩니다. 예를 들어 상대위험도(Relative Risk)의 경우 참값과 다른 값이 나오게 됩니다.


이상적으로 case-control 연구는 case, control 여부에 따라서만 샘플링이 결정되어야 합니다. 로지스틱 회귀분석이 좋은 한 가지 이유는 이 가정이 맞은 경우, 편의가 없는 계수 추정치를 추정하게 됩니다. 편의가 없다는 말은 연구 집단에서 구한 계수의 기댓값이 전체 인구집단에서 구할 수 있는 계수의 "참값" 이라는 것입니다. 


왜 이렇게 되는 것인지 살펴보겠습니다. 샘플링된 데이터에서 X가 주어졌을 때, Y의 오즈는 아래와 같이 나타낼 수 있습니다. P의 아래첨자는 각각 population, sample을 나타냅니다. 이 때, 파이(y=1|x)는 case 샘플에 포함될 확률입니다. 파이(y=0|x)도 마찬가지입니다. 


$$ \frac{P_s(y=1| x)}{P_s(y=0 | x)} = \frac{\pi(y=1|x)}{\pi(y=0|x)} \frac{P_p(y=1| x)}{P_p(y=0| x)} $$


근데 샘플링이 잘 되었다면 이론적으로 y=1인 샘플에 포함될 확률은 x와 독립적입니다. 따라서 파이(y=1|x)와 파이(y=0|x)는 상수이기 때문에 아래와 같이 쓸 수 있습니다. 

$$ \frac{P_s(y=1| x)}{P_s(y=0 | x)} = K \frac{P_p(y=1| x)}{P_p(y=0| x)} $$


$$ K \frac{P_p(y=1| x)}{P_p(y=0| x)} = K \exp(\beta_0 + \beta_1 x) = \exp(\beta_0' + \beta_1 x)$$


따라서, 샘플링 결과에 따라 계수의 추정량에는 영향이 없고 오직 절편만 바뀐다는 것을 알 수 있습니다.