본문 바로가기
카테고리 없음

LTV 모델링: 생존분석/코호트 기반으로 D30→D180 예측 만들기

by essay72110 2026. 2. 12.
반응형

D30까지는 관측이 끝났는데, D180 LTV를 지금 결정해야 하는 순간이 자주 있습니다. 문제는 “D30 매출을 6배 하면 된다” 같은 단순 스케일링이 거의 항상 틀린다는 점입니다. 유저는 시간이 지날수록 이탈하고, 잔존 유저의 결제 행동도 변하며, 캠페인/국가/플랫폼/온보딩 퀄리티에 따라 곡선 형태 자체가 달라집니다. D30→D180 예측을 제대로 만들려면 관측되지 않은 구간을 “시간에 따른 이탈(잔존) + 잔존 유저의 가치 생성”으로 분해해 모델링하는 게 핵심입니다.

가장 실무적인 분해는 다음입니다.
D180 LTV = ∫(0→180) [잔존확률 S(t) × 일평균 가치 v(t)] dt
여기서 S(t)는 t일까지 남아있는 비율(생존함수), v(t)는 남아있는 유저가 만들어내는 평균 매출(또는 마진)입니다. 많은 팀이 v(t)만 보거나, S(t)만 보는데, 둘을 나눠 생각하면 예측이 훨씬 안정적으로 됩니다.

  1. 코호트 기반 “확장(Extrapolation)”의 기본 형태
    가장 먼저 할 일은 과거 코호트에서 D30 이후의 “배수”를 관측하는 것입니다. 예를 들어 캠페인 A의 과거 코호트에서 D180/D30 비율이 중앙값 2.4, 캠페인 B가 1.6이라면 D30만으로도 초깃값(prior)을 설정할 수 있습니다. 하지만 이 방식은 “새 코호트가 과거와 동일한 곡선 형태”라는 가정이 강하므로, 코호트가 섞이거나 제품/가격/프로모션이 바뀐 시점에서는 오차가 크게 커집니다. 그래서 코호트 확장법은 반드시 (a) 유입 소스/국가/플랫폼/온보딩 세그먼트별로 나누고, (b) 곡선 형태를 파라미터로 잡는 생존모형으로 보강하는 방향이 좋습니다.
  2. 생존분석으로 “잔존”을 먼저 예측한다
    D30까지의 관측 데이터에는 “아직 이탈하지 않은 유저”가 다수 포함되어 있습니다. 이들은 D180 시점에서는 이탈할 수도 있고 남아있을 수도 있는데, 이런 데이터를 검열(censoring)이라고 부릅니다. 생존분석의 장점은 검열을 자연스럽게 처리하면서 잔존곡선을 추정한다는 점입니다.

실무에서 자주 쓰는 방법은 두 가지입니다.

  • 비모수: Kaplan–Meier로 세그먼트별 S(t) 곡선을 빠르게 얻는다. 제품 변화/캠페인 변화가 있을 때 진단용으로 매우 좋습니다.
  • 모수/반모수: Weibull, Log-logistic 같은 모수 생존모형 또는 Cox 비례위험모형으로 “코베리엇(국가, 캠페인, 디바이스, 유입채널, 첫날 행동지표)”이 잔존에 미치는 영향을 계수로 학습합니다.

실무 팁은 “이탈의 정의”부터 정확히 고정하는 것입니다. 구독 서비스는 해지가 이탈이고, 게임/커머스는 D7/D14 무활성 같은 규칙이 됩니다. 이탈 정의가 흔들리면 어떤 모델도 의미가 없습니다. 또한 잔존은 보통 초기 급락 후 완만해지는 형태이므로, 단순 선형 가정은 피하고 Weibull/Log-logistic처럼 형태를 유연하게 잡을 수 있는 모형이 안전합니다.

  1. 잔존 유저의 가치 v(t)를 따로 모델링한다
    잔존만 예측하면 “남아있는 비율”은 알 수 있지만, 그들이 얼마를 쓰는지는 별개입니다. 여기서 흔한 실수는 “남아있는 유저의 ARPU는 일정하다”고 놓는 것입니다. 실제로는 초기에 결제 성향이 높은 유저가 먼저 결제하고, 시간이 지날수록 결제빈도는 낮아지거나(일반적) 특정 이벤트/시즌에서 재상승하기도 합니다.

실무적으로는 두 레이어가 가장 관리하기 쉽습니다.

  • 결제 여부/빈도: t 구간에서 결제 발생 확률 또는 결제 횟수(예: 주 단위 purchase count)를 모델링
  • 결제 금액: 결제 발생 시 금액 분포(로그정규, 감마 등) 또는 평균 AOV를 모델링

이 레이어를 복잡하게 만들기 어렵다면, 최소한 “D0–2, D3–7, D8–30, D31–90, D91–180” 같은 구간별 v(t)를 세그먼트별로 추정해 붙이는 것만으로도 예측 안정성이 크게 올라갑니다.

  1. D30의 “초기 신호”를 피처로 넣어 D180을 앞당긴다
    D30까지 기다릴 수 없을 때는 D1/D3/D7 신호로 D180을 예측해야 합니다. 이때 생존모형과 결합하면 성능이 좋아집니다. 예: D1 튜토리얼 완료, D1 세션 수, D3 잔존, 첫 결제 여부, D7 누적 매출, 주요 컨텐츠 진입 여부 등을 코베리엇으로 넣어 “잔존곡선의 형태”와 “가치 생성”을 동시에 앞당깁니다. 실무에서는 모델이 복잡해질수록 해석이 어려워지므로, 피처는 “의미가 설명 가능한 행동지표” 위주로 제한하고, 세그먼트(국가/채널/플랫폼)와 상호작용을 최소 범위로만 허용하는 편이 좋습니다.
  2. 검증은 ‘시간 기준’으로 해야 한다
    LTV 예측은 랜덤 스플릿 검증이 아니라, 반드시 시간 기준(rolling/forward validation)으로 해야 합니다. 예를 들어 2025년 1–9월 코호트로 학습하고 10–12월 코호트로 평가하는 식입니다. 시즌성, 프로모션, 제품 업데이트가 모델 성능을 깨뜨리는 대표 요인이라서, 시간 기반 검증을 통과하지 못하면 운영에 넣기 어렵습니다. 또한 최종 지표는 RMSE 같은 평균 오차뿐 아니라, 예산 의사결정에 중요한 “순위 정확도(어떤 캠페인이 더 좋은가)”와 “하방 리스크(예측 대비 실제가 크게 낮아지는 케이스)”를 따로 보세요. 실제 운영에서는 평균 오차보다 하방 리스크가 더 큰 비용을 만듭니다.
  3. 운영 적용: ‘단일 숫자’가 아니라 ‘범위와 업데이트 규칙’
    D180 LTV를 단일 숫자로 박아두면, 불확실성이 큰 구간에서 의사결정이 과감해져 리스크가 커집니다. 권장 방식은 예측치를 P50(중앙값)과 함께 P10/P90 같은 범위로 제공하고, 관측 윈도우가 늘어날 때(D7→D14→D30) 자동으로 업데이트되는 룰을 만드는 것입니다. 즉, “초기에는 넓은 범위로, 시간이 갈수록 좁아지는” 운영 구조가 건강합니다.

정리하면, D30→D180 예측의 본질은 “미관측 구간을 추측”하는 게 아니라, 잔존(S(t))과 가치(v(t))를 분리해 각각을 통제 가능한 구조로 만드는 것입니다. 코호트 확장으로 빠르게 기준선을 만들고, 생존분석으로 잔존곡선을 안정화하며, 잔존 유저의 가치 생성 패턴을 구간/세그먼트로 붙이면, 어트리뷰션이 흔들려도 예산 재배분에 쓸 수 있는 LTV 예측이 됩니다.

반응형