본문 바로가기

R-PAGO 노트

로지스틱 회귀 모델

대표적인 3가지 GLM(Generalized Linear Models)

1. Linear Model
2. B
inomial and Binary Regression
3. Poisson Regression

 Binary 또는 Bernoulli: 0 또는 1의 2개 반응변수(Outcome)을 가지는 모델
 (예: Win or Lose, Alive or Dead, Success or Failure)
 Binomial: 교환가능한 Binary 아웃컴을 가지는 공분산을 가진 데이터 집합


로지스틱 모델(Exponential Family Model) 

로지스틱 모델을 이해하기 위해서는 로짓(Logit) 즉, 로그오즈비를 먼저 이해해야 한다. 

오즈(Odds):  

Q. 도박을 할 때, 이길 확률과 질 확률을 안다면 얼마를 베팅해야 할까?
이길 기대값 = 이길 경우의 돈(X) x 이길 확률(p) + 질 경우의 돈(Y) x 질 확률(1-p) = 0 (Break Even)                   

 (p > 0.5: Y가 X보다 큼, p < 0.5: X가 Y보다 큼)


배팅하는 개인이라면 확률의 역수비(예: 이길 확률이 20%면 5배)를 얻어야 게임이 정당하다 생각할 수 있다. 그러나 경마장 입장에서는 이길 확률의 역수비보다 적은 배팅 금액을 돌려줘야 이익을 보게 된다. 


오즈는 50%보다 확률이 작게 되면 역수비보다 작게 되는 특징이 있어 경마장에서는 오즈를 사용한다.

예를 들어, 이길 확률이 20%인 경우 오즈는 0.25, 오즈의 역수배는 4가 되어 역수비 5보다 작다. 

게임에서 오즈 4의 의미는 $1를 걸어 $4를 얻을 수 있다는 뜻이 된다. 


오즈는 Case-Control(예: 질병 발병 사례 vs 동일조건에서도 발병안 된 사례)과 같이 기 발생한 사건의 발생 이유를 분석하는데 사용되는 반면, Relative Risk는 발생한 사건을 기반으로 미래를 예측하는 Cohort 군에 사용된다. [각주:1]


로짓(Logit)(또는 로그오즈)

,   

 

R 프로그래밍에서 glm 함수는 상기의 로그오즈 값을 나타내므로 값 도출 이후 별도의 역함수를 통해 상기 p 식과 같이 아웃컴의 확률 값을 구할 수 있다.


실제 데이터를 로그오즈로 변환(Link function)하는 이유는 실제 Sample에서는 특정 설명변수 이하 또는 이상에서는 항상 0 또는 1만 나타날 수 있으나(아래 보라 선) 이것을 일반화할 때는 Sample의 설명 변수에 대한 아웃컴을 확률로 표현하는 것이(아래 검정 선) 현실적이기 때문이다  

아래 그래프와 같이 25점 이하일 경우 이길 확률이 무조건 0%가 아니듯 28점 이상일 경우 무조건 100%가 아닌 것이 현실적이다.



로지스틱 회귀의 해석


절편 b0는 설명 변수(RS)가 0일 때의 아웃컴 1이 될 로그 오즈이다.  exp(b0) = p/(1-p)이므로 RS가 0일 때의 p가 16%라면 exp(bo)= 16/84 가 된다. 




기울기 계수 b1은 RS 1 unit 증가 시의 로그 오즈이다.  

R 프로그램에서 기울기 설명변수 값이 0.10658 이라면 exp(b1)은 1.11이 되므로 설명변수 1 증가시 마다 아웃컴이 1이 될 오즈가 11% 증가한다는 뜻이다. (만약 0.95라면 5% 감소한다는 뜻)


더미 변수도 위 두 계수 해석과 같은데, 만약 남성 더미의 회귀 계수가 2라면 남성이 여성에 비해 7.39배(exp(2)) 아웃컴이 1이 되기 쉽다는 뜻이다. 만약 여성 더미의 형태로 나타내고 싶다면 1/7.39가 되어 여성은 남성에 비해 약 0.14배가 아웃컴이 1되기 쉽다로 해석된다.


즉, 로지스틱 회귀(glm) 한 값(절편 및 기울기 계수)을 바로 해석하지 말고 exp(logRegRavens$coeff) 한 값으로 해석 되어야 한다. 


신뢰구간 분석 시에도 exp()를 해야한다. (예: exp(confint(mdl)))

왼쪽 신뢰구간(2.5%)에서 절편 값이 0.005 라면 이는 95% 신뢰구간에서 설명 변수가 0일 때 아웃컴 1이 될 오즈는 0.005라는 뜻이다. 

 

b0과 b1의 회귀계수의 추정은 회귀식과의 오차가 정규분포를 거의 따른다고 가정하면서 모두 실제 데이터와 회귀 모델의 우도(Likelihood)를 최대가 되는 값으로 구한다.


추가적인 로지스틱 회귀 계수에 대한 상세 해석은 아래 글을 참고한다. 

2017/02/21 - [R-PAGO 노트] - 로지스틱 회귀모델의 해석



로지스틱 회귀의 ANOVA 분석


귀무가설은 "설명변수의 계수가 0이고 Deviance는 카이 분포를 따른다." 이다.

만약 ANOVA 분석에서 설명 변수의 Deviance가 3 이라면 95% 신뢰구간(R 프로그래밍에서 qchisq(0.95,1))을 통해 신뢰성을 확인할 수 있다. (qchisq의 1은 DF)  


선형회귀에 사용되는 R2, F검정, t검정 대신 로지스틱 회귀는 pseudo R2, model deviance, Wald statistic으로 검정한다.


또는 Mcfadden R2으로 설명력을 확인 할 수 있는데

R 프로그램에서 “pscl” 패키지의 pR2 함수를 사용하여 Mcfadden R2를 알 수 있다.


최대 우도법


선형 회귀가 오차 제곱의 합을 최소화하는 최소 제곱법(Least Square Method)을 통해 계수를 구한다면 로지스틱 회귀는 우도(Likelihood)를 최대로하는 최대 우도법을 통해 구한다.


최대 우도법은 훈련 데이터 셋을 뽑아낼 결합 확률을 구하고 이 결합 확률이 최대가 되는 모델의 계수를 찾는 것이다.


각 데이터별 로지스틱 모델이 예측하는 확률을 p, 실제 Outcome 값을 y라하면 우도는 다음과 같다.


만약 예측 확률이 1인데 실제 Outcome도 1이라면 위 식은 1이 되고 예측 확률이 0인데 실제 Outcome이 1이면 식은 0이 된다. 

우도(Likelihood)의 정의와 같이 각 행의 우도는 예측값과 실제값이 같을 때 최대가 된다. 


각 데이터가 서로 독립이라 가정한다면 결합 확률(p1 x p2 x ... pn)의 로그는 각 데이터별 우도의 로그를 구한 것을 모두 합한 것이 된다. 따라서 위 우도에 로그를 취한 아래의 값이 최대가 되는 회귀 계수를 구하는 것이 로지스틱 회귀가 된다. 




실제 우도를 최대화하지 않고 최소 제곱법으로 회귀계수를 구하면 회귀계수는 약간씩만 변하게 되고 두 모델이 예측하는 차이는 그리 크지 않음을 발견하게 된다.



※ 오즈비(Odds Ratio): 
그룹간의 오즈 비율을 말한다. 
예를 들어 쇼핑몰에 호의적인 VIP 고객이 전체 90명 중 50명이라고 하고(오즈 1.25) 쇼핑몰에 비호의적인 VIP고객이 210명 50명이라고 하자(오즈 0.31) 이 경우, 쇼핑몰에 호의적인 오즈비는 4배가 된다. 
가가 Case나 Control 각각의 비가 아닌 일정한 지표가 만들어 지게 되는 것이다.
(카이제곱 검정을 통해서도 이것이 유의미한지도 생각할 수 있다.)

오즈비 1은 차이 없음이지만 로그 오즈비는 0은 차이 없음이다.
오즈비가 0.5보다 작거나 2보다 클 때 효과가 Moderate라 한다.

오즈비(Odds Ratio) 관련 자료:   http://blog.naver.com/muzzincys/220207110532



  1. http://blog.naver.com/muzzincys/220207110532 [본문으로]