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에 대한 사전확률분포가 있으며, 여기서는 감마분포이다.
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
3-6. 지수분포(Exponential Distribution)
- 지수분포는 포아송분포에서 유도된 분포이다.
- 단위시간당 평균발생횟수가 lambda일 때, 사건이 처음 발생할 때까지 걸리는 시간이 T 이하일 확률은 얼마일까?
- 예시: lambda = 0.2 => f(t) = 0.2e(-0.2t) 일 때(1년 동안 평균 고장횟수는 0.2번), 1년 내로 고장날 확률은 아래와 같다.
- 아래 식은 지수분포의 누적분포함수 1-e(-lambda t)를 계산한 것과 같다.
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를 파라미터로 갖는 감마분포를 따른다.
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
'🥐데이터분석' 카테고리의 다른 글
MCMC를 이용한 베이지언 추정(Bayesian Estimation) (0) | 2021.08.19 |
---|---|
Markov Chain Monte Carlo (MCMC) Sampling, MCMC 샘플링 (0) | 2021.08.18 |
Bayesian Theorem(베이즈 정리), 베이즈 통계학 기초 (0) | 2021.08.18 |
Light GBM (0) | 2021.07.25 |
[시계열] 지수평활법(Exponential Smoothing) (0) | 2021.07.25 |