본문 바로가기
Logistic 예측 모형에서의 변수 선택 방법 - Information Value

이건 좀 다른 이야기일 수 있는데, 로지스틱 회귀예측 모형을 만들 때, 변수를 선택하는 방법론이 있어서 짚고 넘어가 보려고 합니다. 이 선택방법은 회귀분석 결과를 설명 가능하게 하는 것이 목적이 아니라 철저하게 예측을 잘하기 위해 쓰는 방법이라는 저어어엄~ 알고 있으면 좋겠습니다.

일단은 두가지 용어를 이야기해 볼까 합니다. IV와 WoE와 IV라는 것인데, IV는 Information Value이고, WoE는 Weight of Evidence입니다. 딱 봐도 뭔가 IV는 어떤 Feature가 얼마나 로지스틱 종속변수에 영향력과 가치 있는가를 따질 것 같고, WoE는 뭔가 IV를 계산할 때 가중치가 되지 않을까 하는 느낌이 왔다면 딱 들어맞겠습니다. 

자, 그러면 다중 로지스틱 회귀를 할 때 어떤 Feature가 도움이 되는 Feature일까를 고민해 보도록 하시죠. 

"로지스틱 회귀에 가장 도움이 되는 Feature는 0과 1에 대해서 관측치가 불균형 하면 판단에 도움이 된다"는 생각을 마음에 품고 따라가면 이해에 도움이 됩니다. 

불균형을 따져보는 가장 손쉬운 방법으로는 각 구간마다 1과 0의 비율의 차이가 어떤지 보면 합리적이겠군요. 아무래도 Logistic이라는 게 1과 0에 대한 확률을 회귀하는 것이니까요.

자, 그럼 이야기 그대로
Event의 비율 (Event %) - Non Event의 비율 (Non Event %)을 생각해 보시죠. 

참고로, 수식에 표기되는 %는 실제로 퍼센트라기 보다는 수식상 표기하기 복잡하니까 그냥 비율이라는 뜻입니다. 그러니까 그냥 표현만 그렇게 했을 뿐 실제로 계산할 때에는 100을 곱해서 구하는 %가 아니라 걍 비율값으로 계산한다는 점을 헷갈리지 마세요. - 왜 이런 헷갈리는 Notation을 쓰느냐고 묻는다면, 보통 IV를 설명할 때 이렇게 표현을 해 놓고 막상 그렇게 계산하지 않더라는 사실을 알아둬야 응? 하지 않으니까 그대로 차용 했습니다.  - 

일단 비율의 차이를 계산했다는 것은 Event 비율과 Non Event 비율이 불균형할 수록 값이 커진다는 뜻입니다. 그러니까 어느 한쪽에 많이 몰려 있을수록 두 비율 차이의 절댓값이 큽니다. 호, 그렇죠? 그렇긴 한데, 이 값만으로는 치우침의 불균형한 정도를 드라마틱하게 표현하기가 초큼 어렵습니다. 0~1 사이의 값들끼리 서로 빼서 뭐 이렇게 어떻게 해 봐야 소수점으로 나뉘는 작은 값들을 어떻게 구분한답니까. 

그러니까, 이 불균형한 정도가 드라마틱하게 과장되게 표현이 되었으면 하는 바램을 해결해야 하겠습니다. 그것이 무엇이냐 하면 WoE (Weight of Evidence)라는 건데, 이거 말이죠, 비율의 비율로 해서 Log를 씌우는 건데. 어? 그러면 어떤 게 생각나나요? 그렇습니다. 이것은 바로 Log(Odds)입니다. Logit 느낌 아닌가요?  WoE는 별거 아니고 Logit값입니다. 

Logit 변환의 특성을 보면 다음과 같습니다. 사실 Logistic 회귀를 하면서 갑자기 Linear Regression을 하면서 왜 직선이 되지? 하는 의문을 품을 수도 있기 때문에 이번 기회에 확실하게 짚고 넘어가면 좋을 것 같기도 합니다. 이것은 그때 다 못한 이야기에 대한 보충수업이라고도 할 수 있겠군요.

 

이 Logit을 자세히 보면 0.5 이상에서는 점점 늘어나다가 1에 가까워 지면 엄청나게 값이 커지고 반대의 방향으로는 점점 줄어들다가 0에 가까워지면 엄청나게 값이 작아집니다. 

즉, 
입력값이 1에 매우 가까워 지면 → 매우 큰 값 
입력값이 0에 매우 가까워 지면 → - 매우 큰 값 
의 변환을 하는 것입니다. 

이거라면 불균형 할 수록 즉, Event가 월등히 커서 비율이 1에 가깝거나, Non Event가 월등히 커서 비율이 0에 가깝거나 하면, 이 값을 Logit 변환했을 때에는 플러스든 마이너스든 아주 큰 값이 될 테니  이거 이용하면 과장하기 딱 좋겠군요? 그러니까 Event와 Non Event의 비율이 비슷한 것들의 효과를 줄이고, 불균형이 큰 것들의 효과를 크게 보여주겠다라고 생각하면 쉽습니다. 

자, 게다가 Event 비율 - Non Event 비율의 값이 Negative인 경우에는 WoE도 똑같이 Negative가 되어 서로 곱하면 Positive가 되고, 마찬가지로 서로 Positive인 경우에는 곱하면 Positive가 됩니다. 두개를 곱하게 되면 과장된 불균형 정도를 표현할 수 있겠습니다. 

그러니까, 어떤 Feature의 "각각의 구간에 대한" 정보가치는

$$ IV_i = (Event_i \% - NonEvent_i \%) \times WoE_i $$
으로 표현할 수 있고, 어떤 Feature의 전체의 정보가치는 이걸 모두 더한 

$$IV_{total} = \sum\left((Event_i \% - NonEvent_i \%) \times WoE_i \right) $$ 

으로 정의하면 Event와 Non Event의 불균형을 과장해서 표현한 후에 전체적으로 불균형이 어느정도가 되는지를 측정했다고 생각하고, Information Value라고 부릅니다. 쩝. 거꾸로 말하면 불균형이 없을수록 Information Value가 매우 작겠군요. 불균형이 없으면? Logistic 회귀를 해 봐야 큰 의미가 없다고 주장하는 바와 같습니다. 

그러면 다음의 예제를 보면, 어떤 식으로 계산하는지 정말 쉽게 이해를 할 수 있을 것입니다.  기대.

 

이런 데이터가 있는데 말이죠, 어떤 나이에 대하여 Event와 Non Event에 대한 데이터입니다. IV를 정의대로 계산한다면, 20~60대까지 구간이 10살씩 나눠져 있고 이 구간에 대하여 Event비율, Non Event비율을 구한 후에 Event % - Non Event % = Delta를 각각 구하고 ln(Event % / Non Event %)로 WoE를 구한 후에 서로 곱합니다. 그러면 각 나이대별 IV 정보 가치를 구하게 되고, IV 열을 모두 더하게 되면 결국 최종 IV가 되게 됩니다. 

조금 더 쉽게 알아볼 수 있도록 엑셀의 수식으로 설명한다면,

 

이런 식이 되겠습니다. 결국 최종 IV는 IV 열을 모두 더해서 나온 0.24입니다. 자, 어떤 가요? 조금 이해가 쉬울려나 모르겠습니다. 

구하긴 했는데, 불균형 정도가 0.24인데, 그러고 보니 0.24면 어느정도라는 거야?라는 생각이 들 텐데요, 이걸 구분하는 것은 다음과 같은 방식의 제안이 있습니다만. 상관분석할 때와 마찬가지로 뭐 그렇게까지 구분할 필요가 있을까 싶습니다. 

 

다만 0.02 이하라면 이건 불균형이 너무 없는데? 정도 생각하고 0.5가 넘으면 불균형이 너무 심한데? 정도로 판단하면 무난하다고 생각합니다. 사실 실무적으로 생각하면 어떤 분야에서는 불균형이 많이 심해야 하는 경우도 있으니까 참고해 주세요.

 

이 접근이 어디에서 온거냐면 로지스틱 회귀모형을 신용평가모형에 적용했을 때 우량고객과 불량고객을 잘 구분하여 예측할 수 있을까를 연구하다가 보니, 요런 요런 것들을 고려하면 좋겠네 라는 고민을 하게 되었고, 이렇게 하면 좋겠다는 결론에 이르렀다는 이야기인데, 이런 경우에는 아무래도 확실하게 불균형을 이루면 좋겠다는 희망사항이 있으니까 모형을 구성할 때 0.5 이상의 Information Value로 판단하는 경우가 많이 있습니다. 

의사결정 분석론에서 정보의 가치란 해당 정보가 있을 때의 의사결정의 가치에서 해당 정보가 없을 때의 의사결정의 가치를 뺀 값으로 정의되기 떄문에 정보가치(IV)가 작을수록 해당 정보는 가치가 작아지므로 인간세상에 통용되는 일반적인 단어 정의에도 잘 부합됩니다. 

친절한 데이터 사이언스 강좌 글 전체 목차 (정주행 링크) -



댓글





친절한 데이터 사이언스 강좌 글 전체 목차 (정주행 링크) -