Mathematics/Statistics

[Statistics] Logistic Regression with binomial

언킴 2021. 11. 5. 10:31
반응형

일반적인 Linear Regression Analysis에서 Y는 연속형 변수이면서 정규분포를 따라야 사용이 가능하다. 하지만 현실의 데이터들은 이러한 가정들이 항상 충족되는 것은 아니다. 현실에서는 다음과 같은 문제들도 다루는 경우가 있다. 

 

1. Y가 범주형일 경우, 성공/실패나 생존/사망 등과 같은 두 개의 범주로 구성된 binary variable일 수 있고, 여러 범주를 띄는 우수/보통/미흡, A/B/C/D/F 등의 세 개 이상의 범주로 구성된 multicategory variable일 수 있다. 이 경우 범주형은 정규분포를 따르지 않는다. 

 

2. Y는 어떤 사건이 발생하는 횟수일 수 있다. 연간 철도사고횟수, 상담횟수, 식당을 이용하는 횟수 등의 제한된 값을 가지며 음수일 수 없다. 또 해당 변수는 평균과 분산이 종종 상관관계를 갖는다. 이와 같은 횟수변수도 정규분포를 따르지 않는다. 

 

첫 번째의 경우 Logistic Regression으로, 두 번째의 경우 Poisson Regression으로 해결할 수 있다. 여기서는 Logistic Regression을 다루고 다음에 Poisson Regression을 따로 작성할 것이다. 

 

정규분포를 가정하는 표준적인 선형회귀분석으로는 범주형이거나 횟수와 같은 Y를 다룰 수 없다. 이때 고려할 수 있는 모델은 일반선형모델(General Linaer model)이다. 일반선형모델은 BLUE의 가정을 만족하지 못할 경우 선형모델을 확장해 정규분포를 따르지 안흔 결과변수에도 수용할 수 있는 회귀모델을 생성한다. 정규분포를 따르는 결과변수 $y$와 $m$개의 예측변수 $x_1, x_2, x_3, ..., x_m$ 간의 관계는 다음과 같은 표준적인 선형회귀로 표현할 수 있다.

 

$\mu_y = \beta_0 + \beta_1 x_1 + \beta_2 x_2 +\ \cdots \ +\beta_m x_m $

 

$\mu_y$ 는 y의 conditional mean

 

해당 값들을 통해 $\mu_y(\hat{y})$를 추정하게 되고 선형회귀모델에서는 link function이라고 불리는 $f(\mu_y)$가 정규분포를 따른다는 가정하에 진행되지만, 정규분포가 아닌 다른 분포를 따르는 것으로 가정할 수도 있다. 링크함수와 확률분포를 지정해 다양한 확장된 선형회귀모델을 생성할 수 있고, 표준적인 선형회귀모델은 일반선형회귀모델의 특수한 경우이다. $f(\mu_y) = \mu_y$이고 확률분포가 정규분포이면 표준적인 선형회귀모델이 된다.

 

$f(\mu_y) = \beta_0 + \beta_1 x_1 + \beta_2 x_2 +\ \cdots \ +\beta_m x_m $

 

$f(\mu_y)$는 $y$의 condition mean의 함수

 

 

일반선형모델은 $\hat{y}$의 함수를 추정하는데, $y$가 지수함수 계열의 분포를 따른다고 가정한다(정규분포뿐만아니라). 회귀계수는 OLS가 아닌 MLE(Maximum Likelihood Estimate)에 의해 추정된다. logistic regression은 이항 로지스틱, 다항 로지스틱으로 구분할 수 있다. 

 

Binomial logistic regression analysis

이항 로지스틱회귀분석은 종속변수가 이분형 범주를 가질 때 독립변수로부터 종속변수의 범주를 예측하는 방법으로 진행된다. 특정 사건이 발생할 확률 값을 직접 추정해 threshold를 기준(일반적으로 0.5)으로 기준보다 크면 1 작으면 0으로 예측하게 된다. 이로 출력되는 결과변수는 0과 1로 구성된 범주형 변수고, 예측값은 항상 0과 1 사이의 값을 가지며, 이 값은 확률값을 나타낸다.

 

그런데 독립변수의 어떠한 선형결합으로도 종속변수의 값을 0과 1사이의 값으로 나타낼 수 없다. 왜냐하면 어떤 선형결합이라도 독립변수 값의 증가는 항상 결과변수값을 증가시키거나 감소시키며 그 결과는 0 과 1사이로 제한되지는 않기 때문이다. 

 

이때 다음과 같이 로그변환하면 예측변수의 선형결합으로 결과변수를 나타낼 수 있다. 이러한 로그 변환을 로지스틱 변환(logistic transformation)이라고 하며, 이런 방식으로 생성한 회귀모델을 로지스틱회귀모델이라 한다. 이항 로지스틱회귀모델은 $y$가 이항분포를 따른다고 가정하며 다음과 같은 형태의 선형모델로 정의된다. 

 

$ln(\frac{p}{1-p}) = \beta_0 + \beta_1x_1 + \beta_2x_2  +\ \cdots \ +\beta_mx_m$

 

$p=\mu_y$이며, $y$의 condition mean ($i.e.\ P[y=1|x_1, x_2,\ \cdots\ ,x_m]$)

 

여기서 $\frac{p}{1-p}$ 부분을 사건발생의 오즈(odds)라고 하며, 사건이 발생할 가능성이 그렇지 않을 가능성의 몇 배인지를 나타낸다. 로지스틱에서는 로그오즈에 대한 선형모델을 정의한다.

 

$ln(\frac{p}{1-p}) = z$

 

$\frac{p}{1-p} = e^z$

 

$p = e^z\ \cdot\ ( 1-p ) $

 

$ p = e^z - p e^z$

 

$p + p e^z = e^z$

 

$p = \frac{e^z}{1+e^z} = \frac{1}{1+e^{-z}} $

 

$z = \beta_0 + \beta_1x_1 + \beta_2x_2  +\ \cdots \ +\beta_mx_m$

 

 

로지스틱회귀모델에서 회귀계수는 다른 독립변수의 변화가 없다는 가정하에 해당 변수가 한 단위만큼 변화할 때 로그오즈의 변화량을 나타낸다. 하지만 로그오즈는 그 자체로 해석하기 어렵기 때문에 로지스틱회귀모델에 지수함수(exponential function)를 취하여 $y$를 오즈로 변환하게 되면 해석이 용이하다.

 

$ln(Odds) = ln(\frac{p}{1-p}) = z = \beta_0 + \beta_1x_1 + \beta_2 x_2 +\ \cdots\ \beta_mx_m$

 

$Odds = \frac{p}{1-p} = e^z = e^{\beta_0 + \beta_1x_1 + \beta_2 x_2 +\ \cdots\ \beta_mx_m} = e^{\beta_0}e^{\beta_1x_1}e^{\beta_2x_2}\ \cdots\ e^{\beta_mx_m}$

 

예를 들어 다른 독립변수의 변화가 없다는 가정 하에 $x_1 =0$에서 $x_1=1$로 변화한다고 가정하면 수식은 다음과 같다. 

$Odds_{x_1} = \frac{e^{\beta_0}e^{\beta_1\times 1}e^{\beta_2x_2}\ \cdots\ e^{\beta_mx_m}}{e^{\beta_0}e^{\beta_1\times 0}e^{\beta_2x_2}\ \cdots\ e^{\beta_mx_m}} = \frac{e^{\beta_1\times 1}}{e^{\beta_1\times 0}} = e^{\beta_1}$

 

로지스틱회귀모델의 회귀계수를 이용해 사건발생의 확률(예를 들어 고객이탈확률)을 계산할 수 있다. training set을 통해서 모델을 학습시키고 test set을 통해 새로 유입된 고객의 이탈확률 등을 예측하는 방법이 대표적이다. 

 

해당 결과를 가지고 confusion matrix를 통해 모델의 정확도를 평가하는 식으로 진행된다. 

 

로지스틱 회귀분석을 통해서 결과를 도출한 후 결과에서는 과산포(overdispersion)문제가 발생할 수 있다. 이항분포에서 도출되는 $\sigma^2$의 값은 $np(1-p)$이 되는데 과산포 문제는 $\hat{y}$ 에서 관측된 분산이 $np(1-p)$보다 클 때 발생한다. 과산포는 표준오차를 왜곡시켜 회귀계수의 유의성 검정을 부정확하게 만들 위험이 있다. 과산포가 존재하면 quasibinomial을 사용한다.

 

과산포를 확인하는 방법 중 하나는 이항분포가 적용된 로지스틱모델에서 잔차이탈도(residual deviance)와 잔차자유도(residual degree of freedom) 간 비율을 살펴보는 것이다. 비율($\phi = \frac{residual\ deviance}{residual df}$)이 1을 크게 상회하면 과산포를 의심한다.

 

혹은 binomial을 가정한 로지스틱모델과 quasibinomial을 가정한 로지스틱 모델간 $\chi^2$을 비교해 유의성을 검정한다. 

 

 


구현 코드를 보고 싶으면 저의 깃허브에 놀러오세요.

https://github.com/ceo21ckim/R/blob/main/regression/logistic.R

 

GitHub - ceo21ckim/R

Contribute to ceo21ckim/R development by creating an account on GitHub.

github.com