최근 수정 시각 : 2021-09-28 21:07:08

리프트차트



1. 개요2. 주요 지표3. 시각화
3.1. 이익차트3.2. 리프트차트

lift chart

1. 개요

어떤 개인이나 모델, 검사도구, 알고리즘확률 예측 능력을 시각적으로 평가하는 그래프. 하술될 이익차트(gain chart) 또는 향상도차트 등의 다른 표현들과 혼용된다.

어떤 마케팅 담당자가 있고, 자사의 고객들에게 마케팅 메일을 발송해야 하는 상황에서 고객 호응을 예측하는 로봇을 활용해야 한다고 가정하자. 이제 이 로봇은 각 고객들의 데이터들을 검토하게 되며, 고객의 연령과 성별, 거주지역, 구매패턴, 선호하는 디자인 등을 종합적으로 고려하여, 최종적으로 로봇은 각 고객마다 '마케팅 메일에 호응할 확률' 을 일일이 계산해 보여준다. 호응 확률이 높은 고객들일수록 실제로 그 메일을 받으면 흥미를 보이고 새 프로모션을 이용하게 되겠지만, 호응 확률이 낮은 고객들은 길길이 뛰면서 찌라시 좀 그만 보내라고 따질 것이다. 그렇다면 이 로봇의 성능이 얼마나 좋은지, 다시 말해 로봇이 계산한 확률이 얼마나 믿을 만한지는 어떻게 평가할 수 있을까?

실제로 메일을 발송했다면, 고객 데이터마다 각각 '로봇이 산출한 호응의 확률', 그리고 '실제로 고객이 반응한 호응 또는 거부' 의 두 가지 데이터가 확보될 것이다. 이상적인 로봇이라면, 확률이 높게 산출된 고객들일수록 하나같이 호응하는 반응을 보이고, 확률이 낮은 고객들은 하나같이 거부하는 반응을 보일 것이다. 그렇다면 다음과 같이 접근할 수 있다. 로봇이 산출한 확률을 기준으로 하여 모든 고객 데이터를 내림차순 정렬했을 때, 실제로 호응한 고객들은 정렬된 스프레드시트의 위쪽에 깔끔하게 모이고, 실제로 거부한 고객들은 아래쪽으로 깔끔하게 모여야 한다. 물론 현실적으로는 위쪽에도 거부 고객들이 섞일 수 있고 아래쪽에도 호응 고객들이 섞일 수는 있다. 하지만 그런 사례가 많아질수록 그 로봇은 못써먹을 고철이 된다.

논의를 간편하게 하기 위해, 내림차순 정렬된 전체 데이터를 10개의 통(bin) 혹은 분위(percentile)로 균등하게 쪼개서 생각해 보자. 로봇의 성능이 좋다면 최상위 1~2분위, 적어도 3분위 정도까지는 실제로 호응한 고객들을 대부분 담아내고 있어야 한다. 실제로 호응한 고객들이 5분위 이하에 생뚱맞게 담겨 있다거나, 상위 분위에서 실제로 거부한 고객들이 섞여 있다면 그 로봇이 적용한 확률계산의 근거가 뭔가 잘못됐다는 얘기다. 그런 상황이 많아지면 많아질수록 최상위 분위만으로는 실제로 호응한 고객들을 담아낼 수 없게 된다. 극단적으로 보자면, 실제로 호응한 고객들이 모든 분위의 '통' 속에 10분의 1씩 똑같은 빈도로 담겨 있다는 랜덤모델(random model)의 가정보다 더 나은 게 뭐냐는 의심도 할 수 있다.

이상의 논리가 바로 리프트차트의 평가 논리다. 리프트차트는 예측 모델의 데이터가 확률의 형태로 제시될 때 그 모델이 얼마나 좋은 성능을 갖고 있는지를 실제로 확보된 데이터에 비추어 평가할 수 있다. 고객이 상품을 구매할 확률이나 자사의 서비스를 해지할 확률 등, 여러모로 경영학 및 실무 현장에서 적용하기 간편하다. 특히 일단 확률을 산출하는 모델링이 만들어져 있다면 그 모델링의 성능을 평가하는 계산 자체는 굉장히 단순하다. 계산기로도 금방 할 수 있고, 엑셀을 쓸 경우 기초함수만 활용해도 금방 결과가 나온다. 물론 실제 데이터가 확보되기 전까지는 리프트차트를 활용할 수 없고, 더 많은 정보량을 위해 10분위가 아니라 그 이상으로 분위를 쪼개거나, 심지어는 연속형 자료의 형태로 관리하기도 하는데 이때는 그만큼 더 고급스러운 평가기법이 된다.

2. 주요 지표

지표 계산의 예를 들기 위해, 위의 마케팅 메일 발송의 사례에서 총 2,000명의 고객들에게 메일을 발송했고 그 중의 381명이 실제로 호응했다고 가정하자. 그리고 호응 확률이 가장 높았던 최상위 1분위에서는 174명이 실제로 호응했다고 가정하자. 일반적으로 말하면, 어떤 사례에서 아래 지표들을 계산하기 위해서는 먼저 ① 전체 데이터 수, ② 전체 반응 데이터 수, 그리고 ③ 분위별 반응 데이터 수가 알려져 있어야 한다.
  • 기저리프트값(baseline lift): (전체 반응 데이터 수)/(전체 데이터 수)
    모든 데이터 중에서 실제로 반응한 데이터의 비율로, 리프트차트를 만드는 데 필요하다. 전체 데이터 세트에서 단 하나의 숫자로 얻어진다. 랜덤모델은 모든 분위의 반응률이 기저리프트값과 같다. 위 사례에서는 381/2000=0.19, 즉 19%가 된다.
  • 반응검출률(% captured response): (분위내 반응 데이터 수)/(전체 반응 데이터 수)
    각 분위별로 전체 반응 데이터에서 얼마나 큰 조각을 가져가는지에 대한 비율로, 이익차트를 만드는 데 필요하다. 각 분위마다 하나씩 산출된다. 위 사례에서 1분위 반응검출률은 174/381=0.46, 즉 46%가 된다.
  • 반응률(% response): (분위내 반응 데이터 수)/(전체 데이터 수÷분위의 개수)
    각 분위에 담긴 데이터 중에서 실제로 반응한 데이터가 얼마나 많은지의 비율로, 이익차트와 리프트차트를 만드는 데 필요하다. 각 분위마다 하나씩 산출된다. 위 사례에서 1분위 반응률은 174/200=0.87, 즉 87%가 된다.
  • 리프트값(lift): (분위별 반응률)/(기저리프트값)
    각 분위별로 나타나는 반응률이 기저리프트값과 비교할 때 몇 배나 더 큰지에 대한 값으로, 리프트차트를 만드는 데 필요하다. 각 분위마다 하나씩 산출된다. 리프트값은 비율이 아니므로 0~1 사이의 값에 한정되지 않는다. 위 사례에서 1분위 리프트값은 0.87/0.19=4.57이 된다. 즉 1분위에서의 반응률은 기저리프트값에 비해 4.57배 더 크다.

3. 시각화

이하의 그림 자료는 위의 마케팅 메일 발송의 사례와 동일한 데이터를 바탕으로 작성되었다.

3.1. 이익차트

파일:gain-chart.png

여기서 초록색 막대그래프는 각 분위별 반응률을 % 단위로 나타낸 것이며, 주황색 꺾은선그래프는 누적된 반응검출률을 % 단위로 나타낸 것이다.

좋은 모델은 초록색 막대그래프의 왼쪽 최상위 분위들이 상대적으로 높게 나타나면서 이후의 분위 지점이 가파른 감소세를 보인다. 현실에서 1분위의 반응률은 95%를 넘기는 경우도 많고, 기저리프트값이 클수록 가파른 감소세의 지점은 오른쪽으로 밀릴 수 있다. 한편 주황색 꺾은선그래프를 볼 경우, 모델이 좋든 나쁘든 간에 그래프 오른쪽 끝부분은 무조건 100% 지점에 닿아 있기는 하지만, 좋은 모델일수록 왼쪽 최상위 분위를 포함하여 그래프가 전반적으로 높이 들려 있다. 즉 이때는 상위 분위에서 이미 충분히 많은 조각을 가져갔기 때문에 아래 분위들이 추가로 뭘 더 가져갈 것이 없는 것이다.

3.2. 리프트차트

파일:lift-chart.png

여기서 파란색 막대그래프는 각 분위별 리프트값을 정수로 나타낸 것이며, 적갈색 직선은 완전한 랜덤모델에서 수학적으로 기대되는 일정한 리프트값을 나타낸 것이다.

좋은 모델일수록 각 분위별 반응률이 기저리프트값과 큰 차이를 보이게 되고, 따라서 막대그래프의 길이 형태가 랜덤모델이 그리는 완전한 직선과 다르면 다를수록 그 모델의 가치가 확실하게 입증된다고 할 수 있다. 적갈색 직선은 각 분위별 반응률이 전체 데이터의 기저리프트값과 다를 바가 없음을 의미하는데, 리프트값이 이와 달라진다는 것은 예측모델이 산출하는 확률이 단순한 우연이나 무작위보다 더 우월한 정보임을 의미한다. 분위를 10보다 더 잘게 쪼개거나 아예 연속적으로 취급할 경우, 파란색 막대그래프는 이제 부드러운 곡선의 형태로 다시 시각화될 필요가 있다. 이때 나타나는 곡선을 리프트곡선 혹은 향상도곡선이라고 하며, 실무에서는 이걸 바탕으로 의사결정을 하는 경우가 많다.