[Practical Statistics for Data Scientists] A팀: Logistic Regression
logistic regression은 linear regression의 종속변수 Y를 범주형으로 확장한 개념이다.
* 범주형은 관측치를 클래스로 구분해주는 변수이다.
로지스틱 회귀는 클래스가 알려져있지 않은 새로운 관측치에 대해 예측변수의 값을 바탕으로 클래스들 중 하나로 분류하는데 사용될 수 있다. 다르게 말하면, 클래스가 알려진 데이터에서 예측변수들의 관점으로 각 클래스 내의 관측치들에 대한 유사성을 찾는데 사용될 수 있다.
로지스틱 회귀는 주로 주식의 보유/매도/매수, 대출 승인 여부, 비행기 연착 여부 등 범주형 변수의 분류에 사용된다.
NO | 기류 | 바람 | 지연시간(분) | 연착여부 |
1 | 14 | 4 | 3 | 정상 |
2 | 23 | 15 | 5 | 정상 |
3 | 4 | 13 | 2 | 연착 |
4 | 17 | 22 | 7 | 연착 |
... | ... | ... | ... | ... |
ex) 비행기 연착 여부
로지스틱 회귀는 결국 각 클래스(예시에서는 연착 여부)에 속할 확률을 추정하는 것인데, Binary 변수의 경우에는 클래스에 속할 확률 P(Y=1)을 추정하게 된다.(본 포스팅에서도 이진 분류로 한정함)
따라서, 로지스틱 회귀는 결과 값을 확률로 받아야하는데, 아래의 방정식을 그대로 사용하면 문제가 생긴다.
식의 왼쪽 값(p)의 범위가 [0,1]인 반면, 오른쪽의 범위는 [-∞, +∞]이다. 우리는 이러한 문제점을 해결하기 위해 '로짓 변환'을 사용한다.
한마디로, 로지스틱 함수는 음의 무한대부터 양의 무한대까지의 실수값을 0부터 1사이의 실수값으로 1대 1 대응시켜주는 시그모이드 함수이다! 그래프로 나타내면, 아래와 같다.
그렇다면 구한 예측값을 어떻게 해석할 수 있을까? 이를 알기 위해선, Odds를 알아야 한다.
오즈는 간단하게 말하면, 사건이 발생할 확률을 사건이 발생하지 않을 확률로 나눈 것이다. 이를 활용해 확률 값 p를 구할 수 있고,
나아가 아래와 같은 식을 얻을 수 있는데,
양변에 로그를 취해주면 다음과 같은 식을 얻을 수 있다.
앞서 우리가 보았던 p와 같지 않은가? 결국 log(Odds)를 계산한다면 회귀식 예측한 실수 값을 알 수 있게 된다. log(Odds)를 logit이라고 하며, [-∞, +∞] 범위를 갖는다.
그렇다면 이 회귀식의 계수들은 어떻게 해석하는가? 이들은 오즈비(Odds Ratio)로 알 수 있다.
Odds Ratio는 오즈와는 다른 의미를 가지는데, 나머지 입력변수를 고정시켰을 때 하나의 변수를 1단위 증가시켰을 때 변화하는 Odds의 비율을 구한 값이다. 예시를 보면 보다 쉽게 이해할 수 있다.
이 표는 대출 승인 여부에 대한 변수들을 나타낸 것이다. 입력변수 Experience를 예로 들면, Experience가 1년 더 많으면 은행에서 대출 승인을 해줄 확률이 1.058배 증가한다는 것으로 해석할 수 있다. 확률이 1보다 작은 CreditCard의 경우, 신용카드가 1개 더 많으면 대출을 해줄 확률이 0.38배가 된다.(즉 대출을 해줄 확률이 줄어들게 된다)
결론적으로 Logistic Regression은 입력변수가 1단위 증가할 때 Log(Odds)의 변화량으로 해석할 수 있다.
댓글 영역