🥐데이터분석

[CLV/LTV 예측] Pareto/NBD 모델

윤조이이 2021. 8. 18. 22:28

1. 비즈니스 상황

Pareto/NBD 모델은 'Non-Contractual'하고, 'Continuous purchases' 상황에서 사용된다.
이런 종류의 비즈니스로는 주로 아마존, 영화 대여, 숙박 등이 있다.
함께 협업 중인 기업도 이런 종류의 비즈니스를 하고 있다.

  • Non-Contractual setting ?
    • 고객의 이탈('Death')가 관측불가능하다.
    • 고객수명분포(Customer lifetime distribution)가 주로 지수분포(Exponential model)로 모델링한다.
  • Continuous purchases?
    • 어느 시점에서든 결제 및 구매가 발생할 수 있다.

 

2. CLV 식

CLV = 각 고객의 앞으로의 전체 구매 횟수 * 각 고객의 미래에 발생할 거래당 가치

두 부분에 대해 각각 모델을 만드는데, 더 어려운 파트는 전자인 '각 고객의 앞으로의 전체 구매 횟수'이며, 이걸 Pareto/NBD 모델을 사용해 구할 것.

 

3. Pareto/NBD Model

3-1. 필요한 데이터

  • 고객 거래 데이터(Customer Transactional Data) => RFM
  • Pareto/NBD 모델은 RFM 형태의 데이터를 요구함.

3-2. RFM

  • Recency : 마지막 구매일 - 첫 구매일 (t(last) - t(0)), 즉 마지막 구매가 언제 일어났는가.
  • Frequency(repeat transaction) : 전체 기간 동안의 구매횟수, 첫번째 기간은 제외한다.
  • Monetary : 전체 기간동안 사용한 전체 금액.
  • T : 마지막 구매일 - 첫번째 구매일, 즉 전체 기간.
    => Recency 와 Frequency가 높을수록 높은 가치를 지닌 고객이라 할 수 있음.

3-3. 파라미터

  • Purchase Count 'lambda'
    • 앞으로 구매할 횟수.
    • 포아송분포(Poisson Dist)를 따른다.
  • Lifetime 'mu'
    • 고객의 수명.
    • 지수분포(Exponential Dist)를 따르며, 분포의 기울기가 'mu'이다.
  • 위 두 모델을 합친 모델이 Pareto/NBD 모델.
    • Pareto(exponential-gamma mixture) timing model : time to dropout, 즉 고객이 언제 이탈할 지. 실제 구매발생과 독립적으로 모든 시점에 대해 이탈이 발생할 수 있다고 가정함.
    • NBD(poisson-gamma mixture) counting model : repeat-buying behavior while active, 즉 고객이 살아있는 동안의 구매횟수.
    • gamma gamma dist

3-4. 모델 가정 다섯가지

  • 고객이 살아있는 동안, 전체 기간 t동안 고객이 구매한 횟수는 평균이 lambda t 인 포아송분포를 따른다.
  • 고객 간 상이한 값을 가지는 단위기간 당 평균 구매횟수 lambda는 shape 파라미터 gamma, scale 파라미터 alpha를 갖는 감마분포를 따른다.
  • 각 고객은 관측불가능한 수명(lifetime) tau를 갖는다. 고객이 inactive 해지는 지점은 이탈율 mu를 갖는 지수분포를 따른다.
  • 고객 간 상이한 값을 가지는 이탈율은 shape 파라미터 s와 scale 파라미터 beta를 갖는 감마분포를 따른다.
  • 단위기간 당 평균 구매횟수 lambda이탈율 mu는 고객마다 다른 값을 갖는다.
  • Pareto/NBD 모델은 Hierarchical bayesian model으로, lambda와 mu에 대한 사전확률분포가 있으며, 여기서는 감마분포이다.

"COUNTING YOUR CUSTOMERS : WHO ARE THEY AND WHAT WILL THEY DO NEXT?(1987)"

3-5. 포아송분포(Poisson Distribution)

  • 이항분포의 특수한 경우로, 이항분포에서 시행횟수(n)가 무수히 많아지고, 발생확률(p)은 아주 작은 경우 이항분포의 모습은 기대값이 lambda인 포아송분포에 근사함.
  • 포아송분포는 n과 p를 각각 다루지 않고(n과 p를 정의할 수 없기 때문), 이항분포의 평균인 np를 다룬다. 이 값을 lambda로 놓는다. 즉, lambda는 단위시간당 어떠한 사건의 평균 발생횟수.
  • 예시 : 하루 동안 돌아다니며 길냥이를 평균 3회 마주칠 경우 오늘 하루동안 길냥이를 1번 마주칠 확률은?
    • lambda = 3, k = 1, p(1) = 3*e(-3)/1

포아송분포 식
나무위키 : 포아송분포 PDF

3-6. 지수분포(Exponential Distribution)

  • 지수분포는 포아송분포에서 유도된 분포이다.
  • 단위시간당 평균발생횟수가 lambda일 때, 사건이 처음 발생할 때까지 걸리는 시간이 T 이하일 확률은 얼마일까?
  • 예시: lambda = 0.2 => f(t) = 0.2e(-0.2t) 일 때(1년 동안 평균 고장횟수는 0.2번), 1년 내로 고장날 확률은 아래와 같다.
  • 아래 식은 지수분포의 누적분포함수 1-e(-lambda t)를 계산한 것과 같다.

1년 내로 고장날 확률
지수분포 PDF
나무위키 : 지수분포

3-7. 감마분포(Gamma Distribution)

  • 지수분포의 일반화된 형태.
  • 확률변수 X는 k개의 이벤트가 발생할 때까지 걸리는 시간( x > 0 )으로, alpha와 lambda 를 파라미터로 가짐.
  • alpha는 shape parameter(형상모수), lambda는 rate/scale parameter(척도모수).
  • Gamma(1, lambda) = Exponential(lambda) 
  • 각각의 확률변수 X1,...,X(alpha)는 파라미터 lambda를 갖는 지수분포를 따를 때, X = X1 + ... + X(alpha) 는 alpha와 lambda를 파라미터로 갖는 감마분포를 따른다. 여기서 alpha는 개별 지수분포의 개수.
  • 즉, 파라미터 lambda를 갖는 포아송분포가 있을 때, alpha개의 이벤트가 발생할 때까지 걸리는 시간은 alpha와 lambda를 파라미터로 갖는 감마분포를 따른다.

감마분포의 PDF와 감마함수
alpha, lambda 변경에 따른 분포 변화

3-8. 모델 피팅


참고문헌
https://hsm-edu.tistory.com/829?category=773067

https://rooney-song.tistory.com/43

https://www.youtube.com/watch?v=RNkT4YG8B3A 

https://www.youtube.com/watch?v=IYJFMjYRMgM