이번 포스팅은 고객의 lifetime 가치를 추정하는 2부작 시리즈의 1부입니다. 이 글에서는 2부에서 Python 코호트 분석 예제를 설명하기 위해 필요한 개념석 수준의 고객평생가치(lifetime value, LTV) 추정 방법을 설명합니다.
왜 LTV가 필요할까요? 고객 획득 비용(customer acquisition costs, CAC)에 대한 벤치 마크를 만들고, 고객을 비교하는 데에는 두 가지 이유가 있습니다.
LTV를 추정하기 위해 이탈 또는 retention을 사용하는 것에 대해 설명하는 여러 이론들의 핵심 아이디어는 동일하지만 계산 방식은 크게 다릅니다. 따라서, 어떤 분석가는 이번 포스팅을 읽으면 이익을 얻을 수도 있습니다. 하지만 이번 포스팅의 주요 목표는 과거 보유 데이터를 사용하여 고객의 LTV를 추정하는 방법을 설명하는 것입니다. 이탈을 추정하고 예측을 구축하기 위해 통계 기법을 사용하지 않을 것입니다. 대신, 우리는 다루기 더 쉬운 코호트 retention을 사용할 것입니다.
왜 retention인가? 고객 평생 가치의 문제는 고객으로부터 수익을 얻을 수 있는 수명과 같습니다. 구독 기반 서비스에 대해 이야기하는 경우 고객 도입 가치에 대한 추정치는 반복 수익(recurring revenue) 또는 고객이 구독에 대해 지불하는 금액입니다. 그러나 고객이 지불 기간을 건너 뛸 가능성이있는 경우, 평균 건너 뛰기 비율을 추정하여 이를 조정해야 합니다.
우리가 알고싶어 하는 것은 새로운 고객이 비즈니스 서비스에 얼마나 오래 머무를지 여부입니다. 따라서 우리는 이전에 획득 한 고객을 기반으로 추측을 시도하곤 합니다. 전체 고객 기반에 대한 전체 측정 항목으로 수명을 계산하는 것이 종종 제안되는데, 이는 혼란스럽기만 한 여러 평균 수치들을 제공합니다. 적어도 잠재적으로 비즈니스와 몇 년을 보냈을 수 있는 고객수, 지난주 가입한 고객수, 또는 어제 가입 한 고객수와 같은 수치입니다. 과거에 유입된 집단은 분석에 매우 적합합니다. 하지만, 우리는 분석 결과에 측정 액션을 취할 수 있는 최근 유입 고객에 대한 분석을 원합니다. Retention 매트릭스 또는 곡선은 유입된 고객 중 얼마나 많은 고객이 계속해서 수익을 창출하면서 비즈니스에 머물렀는지 시각적으로 나타냅니다. Retention 매트릭스는 실제 데이터를 기반으로하므로 패턴 식별을 시작하고 신규 고객의 패턴을 대략적으로 파악할 수 있습니다.
코호트 및 retention 매트릭스
고객은 서로 다른 시간에 비즈니스 서비스에 참여하기 때문에 retention를 "표준화"할 수있는 방법이 있어야합니다. 가령, 1 년 전에 가입 한 고객의 10%가 여전히 서비스를 사용하고 있습니다. 하지만, 지난달 고객의 90 %가 여전히 우리와 함께 있습니다. 이는 결코 지난달에 가입 한 고객이 작년의 고객보다 낫거나 나쁘다는 것을 의미하지는 않습니다. 그들은 당신의 서비스가가 자신에게 얼마나 "고정적"이거나 가치가 있는지를 보여줄 시간이 적었다는 것을 의미합니다.
이러한 이유로 고객이 가입 한 시간에 따라 고객을 집단(그룹)으로 나눌 수 있습니다(그리고 그래야만 합니다). 일반적으로 코호트와 그 retention는 retention 매트릭스 또는 유사한 유지 곡선으로 분석됩니다. 아래 매트릭스에서 각 사각형은 다음 달에 이동(재 주문, 재 구독)한 최초 획득 사용자의 비율을 나타냅니다. 간단하게하기 위해 아래 그림과 같이 색상으로 구분했습니다. 아래 그림은 색상에 대한 샘플 스케일을 나타냅니다. 노란색(0 ~15 %)에서 진한 녹색 (90 ~100 %)까지.
코호트 분석 결과 그림에는 두개의 축이 있습니다. 결합된 시간 또는 취득 월(=y 축)과 후속 기간 또는 임기(x 축, 주, 월, 년 등 비즈니스에 적합한 모든 축) 입니다. 대부분의 retention 매트릭스에서 가장 먼저 눈에 띄는 것은 비율이 다를 수 있지만 보유 기간이 증가함에 따라 보유가 사라지는 경향이 있다는 것입니다. 매트릭스 만 사용하여 코호트의 평균 실제 수명 또는 코호트의 고객이 제품을 사용한 평균 시간을 계산할 수 있습니다. 이 계산은 단순히 행별 합계입니다(예시보기: >>click). 그림에서 매트릭스가 반쯤 비어 있다는 것을 알 수 있습니다. 아래 그림에서 물음표 부분의 값은 왜 비어 있을까요?
물음표 부분의 값이 비어 있는 것은 신생 집단의 실제 수명이 짧았기 때문입니다. 이상적으로는 이들의 평생(및 가치)을 알고 싶습니다. 그래도 어떻게?
Extrapolation
쉬운 접근 방식 중 하나는 이전 집단의 성과 평균을 기반으로 신규 고객의 가치를 채우는 것입니다. 평균 retention은 직접적으로 너무 거칠고 새로운 코호트의 실제 데이터와 단절 될 수 있으므로 marginal retention을 활용할 수 있습니다. 이는 기간별 retention(예: 월별 또는 주별)라는 점에서 코호트 retention과 다릅니다. 기간은 비즈니스주기에 따라 다릅니다.
가치가 실현된 코호트의 marginal retention을 알고 나면, 요소별로 신생 코호트를 추정하기 위해 "드래그"합니다. 옵션으로, 가장 이른 코호트부터 시작하여 마지막 N 코호트의 단순 평균을 사용하거나 아래 행렬의 첫 번째 행을 사용할 수 있습니다. 이렇게하면 행 번호 N 이상에 대해 N 개 행의 이동 평균과 N-1 이하 행에 대한 모든 이전 값의 평균을 얻게됩니다. 이를 청사진으로 사용하고 계절성 측면, 향후 변경에 대한 가정 등을 포함하여 더 복잡하게 만들 수 있습니다.
결과적으로 행렬은 대각선 위의 한계 유지율과 대각선 아래의 추정치로 채워집니다. 우리의 경우 후자는 행 번호에 따라 최소 1, 최대 N의 윈도우로 이동 평균입니다.
전체 정사각형 행렬을 채운 후 retention을 추정 할 수 있습니다. "오른쪽으로 드래그"하여 요소별로 수행 할 수 있습니다. 1) 유지 매트릭스의 마지막 값에 marginal retention 매트릭스의 다음 열 값을 곱하면 retention 매트릭스에서 retention 추정치를 업데이트합니다. 2) 반복 전체 행에 대해 동일한 절차를 수행하여 한 행에서 마지막 retention 추정치를 취하고 한계 retention 매트릭스의 다음 값을 곱합니다.
이런 식으로 우리는 대각선 위의 실제 값과 대각선 아래의 추정치로 완전히 채워진 retention 매트릭스를 얻을 수 있습니다. 코호트의 평균 lifetime 추정치는 코호트에 대한 retention의 합계 일뿐입니다.
값Value
이상적으로는 우리가 말하는 가치는 고객에게 서비스 또는 제품을 제공하는 것과 관련된 운영 비용을 제외한 고객이 생성하는 반복적인 금액을 반영해야합니다. 예를 들어 배송 업체가 필요한 경우 배송비를 제외 할 수 있습니다. 고객을 위해 인프라를 유지해야하는 경우이를 제외합니다. 일반적으로 지불에 적용되는 모든 할인을 고려하여 총 마진에 도달 할 수 있습니다. 하지만 처음 고객이 제안하는 경우 평생 가치를 크게 낮출 수 있으므로 이러한 할인을 미래로 추정하지 않도록 주의하십시오.
위의 내용이 복잡해 보이면 마진 대신 총 수익으로 시작하고 거기에서 작업하십시오. 저는 최상위 라인에서 시작하여 총 마진에 도달하는데 있어 가치가 있다고 생각합니다. 마케팅 또는 제품 개선 노력의 영향을 가정하려는 경우 LTV 모델링을위한 좋은 시작점이 될 수도 있습니다.
평생 가치(Lifetime Value, LTV)
위의 사항을 고려한 평생 가치 추정치는 집단 기반의 평생 가치와 가치의 산물일 뿐입니다. 단순 또는 가중 평균을 사용하여 더 많은 고객이 있는 새로운 코호트 또는 코호트에 더 많은 가중치를 부여 할 수 있습니다.
본질적으로 우리는 코호트 retention와 marginal retention을 사용하여 전자를 새로운 코호트로 추정했습니다. 항상 분명하지는 않지만 흥미로운 사실은 수명이 임기 축 전체에 걸쳐 코호트의 유지 합계가 될 것이라는 것입니다.
원문 읽기: >>click
'데이터과학 > 업계 이야기' 카테고리의 다른 글
인공지능(Artificial Intelligence)의 4가지 유형 (0) | 2020.12.13 |
---|---|
시계열 데이터 분석 및 예측을 위한 완벽한 가이드 (0) | 2020.12.11 |
Deep Few-Shot 이상탐지 (0) | 2020.11.11 |
디지털 광고에서 데이터 과학자의 역할 (0) | 2020.11.11 |
영어를 매개로 하지 않고 100개 언어를 직접 번역하는 AI 모델 (0) | 2020.11.11 |