728x90
코호트 분석
- 특정 기간 동안 특정 경험을 공유한 집단 간의 행동 패턴을 비교 및 분석하는 방법
- 코호트
- 특징이 비슷한 사용자들을 그룹화하는 것
코호트 분석 사용
- 고객의 행동 파악
- 그룹의 특정 기간 동안의 행동 변화를 정량적으로 측정하고 서로 비교
- 이벤트 후에 고객의 행동 패턴이 어떻게 변했는지를 파악하고 빠르게 변화하는 시장 수요에 더 민감하게 반응 가능
- 고객의 유지율 개선 & 이탈률 감소
- 고객 유지율 개선에 기여하는 원인을 찾아내고 그 요소를 강화 가능
- 이탈을 초래하는 원인을 파악한 뒤 이에 맞추어 대응 가능
- LTV(고객 생애 가치)를 높이는데 도움이 됨
- 고객 맞춤형 마케팅 전략 수립
- 고객 그룹의 행동 패턴을 파악하여 더 효과적인 타겟 마케팅 전략을 진행 가능
코호트 분석 결과 활용 예시
- 유지율 분석
- 충성도 평가
- 유지율이 시간이 지남에 따라 높에 유지되거나 증거한다면, 고객 만족도가 높고 장기적인 고객 관계를 구축하고 있다고 해석할 수 있음
- 이탈률 분석
- 특정 시점에 이탈률이 급증한다면 그 시점의 서비스나 제품에 문제가 있을 수 잇으므로 개선 필요
- 시간 흐름에 따른 행동 변화
- 새로운 기능 출시가 고객 행동에 어떤 영향을 미쳤는지 분석 가능
- 세그먼트별 비교 분석
- 다른 코호트 간의 비교를 통해 특정 코호트가 다른 코호트보다 더 나은 성과를 보이는지 분석
- 재구매율이 급격히 떨어지는 코호트가 있다면, 왜 고객들이 이탈하는지 원인 분석이 필요
- 매출 및 수익 분석
- LTV를 계산하여 각 코호트의 장기적인 가치를 평가
코호트 분석의 6가지 단계
- 목표 설정
- 데이터 수집 및 정제
- 코호트 그룹 정의
- 코호트 그룹 별 분석
- 결과 해석 및 전략 수립
- 전략 실행 및 반응 피드백
코호트 그룹을 정의하는 방법
- 시간 기반 코호트
- 행동 기반 코호트
- 인구 통계학적 코호트
코호트 분석의 한계점
- 코호트 간 비교 객관성 X
- 코호트 분석은 각 코호트의 특성을 추적하고 분석하는 것을 목표함
- 하지만 서로 다른 코호트들을 비교하기 위해서는 여러 가지 변수들을 고려해야함
- 이는 분석의 불확실성을 증가시킬 수 있음
- 코호트 간 크기 차이
- 서로 다른 코호트들의 크기 차이는 코호트 간의 비교를 때로는 무의미하게 만들고, 분석에 편향된 해석을 가져올 수 있음
- 외부 요인의 영향
- 코호트 분석에서는 주로 내부 요인들을 분석하고 비교
- 외부 요인들을 고려하지 않으면 코호트 분석의 결과가 왜곡될 수 있음
간단한 코호트 분석
- 데이터
- 24년도 각 고객의 구매날짜와 구매금액
- 1000행
- 데이터 준비
# 날짜 형식 변환
df['purchase_date'] = pd.to_datetime(df['purchase_date'])
# 고객별 첫 구매 월 추가
df['cohort_month'] = df.groupby('customer_id')['purchase_date'].transform('min').dt.to_period('M')
# 첫 구매 후 몇 달이 지났는가
df['purchase_month'] = df['purchase_date'].dt.to_period('M')
df['m_since_first'] = (df['purchase_month'] - df['cohort_month']).apply(lambda x: x.n)
df
- 코호트
# 코호트와 구매 월 기준으로 데이터 집계
cohort_data = df.groupby(['cohort_month', 'm_since_first']).agg({'customer_id': 'nunique'})
cohort_data = cohort_data.rename(columns={'customer_id': 'num_customers'}).reset_index()
cohort_data
# 코호트별 피벗 테이블 생성
cohort_pivot = cohort_data.pivot_table(index='cohort_month', columns='m_since_first', values='num_customers')
# 코호트 사이즈 산출
cohort_size = cohort_pivot.iloc[:, 0]
# 유지율 계산
retention_matrix = np.round(cohort_pivot.divide(cohort_size, axis=0), 4)
retention_matrix
- 시각화
import seaborn as sns
import matplotlib.pyplot as plt
plt.figure(figsize=(12, 8))
sns.heatmap(retention_matrix, annot=True, fmt='.0%', cmap='YlGnBu')
plt.title('2024년도 고객 코호트 분석 - 고객 유지율')
plt.xlabel('첫 구매 후 경과 월')
plt.ylabel('코호트 월')
plt.show()
- 인사이트 도출
- 초기 구매 이후 대부분의 코호트에서 시간이 지남에 따라 고객 유지율이 점차 감소하는 경향을 보입니다.
- 첫 1개월 후의 유지율이 매우 낮습니다.
- 이는 첫 구매 후 고객들이 충분한 만족을 느끼지 못했거나, 후속 마케팅 활동이 부족했음을 의미할 수 있습니다.
- 첫 1개월 후의 유지율이 매우 낮습니다.
- 초기 구매 이후 대부분의 코호트에서 시간이 지남에 따라 고객 유지율이 점차 감소하는 경향을 보입니다.
- 대응 전략
- 웰컴 캠페인: 신규 고객을 대상으로 첫 구매 후 1개월 내에 특별한 혜택이나 할인 쿠폰을 제공하는 웰컴 캠페인을 강화합니다.
- 고객 만족도 조사: 첫 구매 후 고객 만족도를 조사하고, 피드백을 바탕으로 제품 및 서비스를 개선합니다.
- 맞춤형 추천: 첫 구매 후 고객의 관심사에 맞는 제품 추천을 통해 추가 구매를 유도합니다.
728x90
반응형
'데이터 분석 > Python 분석' 카테고리의 다른 글
AARRR 단계별로 알아보기 (0) | 2024.04.26 |
---|
댓글