R로 데이터 분석하기 - 모델링 (2) : 로지스틱 회귀분석

1 minute read

1. 로지스틱 회귀분석

이전 글에서 다룬 회귀분석의 경우에는 종속변수가 연속형이었다. 만약 종속변수가 범주형 변수가 되면 로지스틱 회귀분석을 수행한다. weather 데이터를 이용해 이분형 로지스틱 회귀분석을 수행해보자.

glm_model <- glm(Rain2~Temp_mean+Dust+Humidity,family="binomial",data=weather)
summary(glm_model)
Call:
glm(formula = Rain2 ~ Temp_mean + Dust + Humidity, family = "binomial", 
    data = weather)

Deviance Residuals: 
     Min        1Q    Median        3Q       Max  
-2.14324  -0.57438  -0.32246  -0.02382   3.11696  

Coefficients:
             Estimate Std. Error z value Pr(>|z|)    
(Intercept) -8.123769   0.801381 -10.137  < 2e-16 ***
Temp_mean   -0.073565   0.013399  -5.490 4.02e-08 ***
Dust        -0.038511   0.007836  -4.915 8.88e-07 ***
Humidity     0.156059   0.014361  10.867  < 2e-16 ***
---
Signif. codes:  
0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 706.87  on 628  degrees of freedom
Residual deviance: 453.29  on 625  degrees of freedom
  (7 observations deleted due to missingness)
AIC: 461.29

Number of Fisher Scoring iterations: 6

결과를 해석하기 위해서는 각 변수별 회귀계수 값을 exp() 처리를 해주어야 한다.

round(exp(glm_model$coefficients),2)
(Intercept)   Temp_mean        Dust    Humidity 
       0.00        0.93        0.96        1.17 

위 결과를 해석하면 다음과 같다.

  • 평균 기온(Temp_mean)이 1 증가할 때 비가 올 확률이 7% 감소
  • 미세먼지 농도(Dust)가 1 증가할 때 비가 올 확률이 4% 감소
  • 습도(Humidity)가 1 증가할 때 비가 올 확률이 17% 증가

이렇게 exp() 처리를 해야 하는 이유는 로지스틱 회귀모형이 만들어지는 원리와 관련되어 있다.

image

로지스틱 회귀분석이란, glm에서 링크 함수를 로짓(로그 오즈)으로 사용한 회귀분석을 말한다.

p / (1-p) 값이 오즈(Odds), 즉 일어날 확률과 일어나지 않을 확률의 비율이다. 간단하게 생각하면, 이 오즈값에 로그를 취했기 때문에 해석하기 위해서 로그의 영향을 원래대로 돌려주는 exp()을 쓰는 것이다.

그런데 사실 회귀계수에 exponential을 취한 결과는 오즈의 증가분이 아니라, 정확히는 오즈비(OR, Odds Ratio)의 증가분이라고 하는 게 맞다. 이를 이해하기 위해 “결과를 해석할 때는 다른 효과가 동일한 상태라고 가정“하고 해석한다는 점을 알고 있으면 좋다.

오즈비(Odds Ratio) = Odds1 / Odds2

예를 들어, 위의 수식에서 X1이 1인 경우(일어날 확률 p)와 X1이 0인 경우(일어날 확률 p’)가 있다고 해보자. 이 때 다른 효과는 동일하게 고정한다. 그리고 첫 번째 경우의 식에서 두 번째 경우의 식을 빼주면 ln(p/(1-p)) - ln(p'/(1-p')) = β1, 즉 Odds Ratio = exp(β1)이 된다.

Leave a comment