데이터 분석에서 자주 사용되는 분석 기법 중에 코호트(동질 집단) 분석이 있다. Cohort란 ‘특정 기간 동안 공통된 특성이나 경험을 갖는 사용자 집단‘을 의미한다.
코호트 분석을 하면 특정 기간 내 사용자 그룹의 행동이 다른 기간의 사용자 그룹의 행동과 어떻게 다른지를 쉽게 파악할 수 있다. 예를 들어 할인 이벤트 기간에 유입된 구매자들은 다른 기간에 유입된 구매자들에 비해 재구매율이 매우 낮을 수도 있다. 이처럼 코호트 분석은 연말 세일이나 발렌타인 이벤트, 신규 상품 프로모션 등 단기적 혹은 시즌성 캠페인으로 유입된 사용자의 행동 패턴을 분석, 이해하고, 이를 활용하는 데 유용하다.
전체 사용자당 매출액 추이를 봤을 때는 비즈니스가 정체되고 있는 듯한 느낌도 있었지만 코호트 분석을 해보니 신규 사용자의 첫월 매출액이 꾸준히 증가할뿐만 아니라 이후 월별 매출액도 완만히 줄어들어 전반적으로 꽤 양호한 흐름을 보인다는 것을 알 수 있다.
import seaborn as sns import matplotlib.pyplot as plt import pandas as pd
a = ('2021-01','2021-01','2021-01','2021-01','2021-01','2021-02', '2021-02','2021-02','2021-02','2021-03','2021-03','2021-03','2021-04','2021-04','2021-05') b = ('2021-01','2021-02','2021-03','2021-04','2021-05','2021-02', '2021-03','2021-04','2021-05','2021-03','2021-04','2021-05','2021-04','2021-05','2021-05') c = (100,80,60,40,10,96, 55,33,11,90,20,10,120,5,1) cohort_data = pd.DataFrame({"first_visit_month":a, "revisit_month":b, "user_cnt": c}) print(cohort_data)
cohort_data["first_visit_month_dt"] = pd.to_datetime(cohort_data.first_visit_month, format='%Y-%m') cohort_data["revisit_month_dt"] = pd.to_datetime(cohort_data.revisit_month, format='%Y-%m')
cohort_data = cohort_data.copy() cohort_data['month_diff'] = (cohort_data['revisit_month_dt'].dt.to_period("M").view(dtype="int64") cohort_data['first_visit_month_dt'].dt.to_period("M").view(dtype="int64")) print(cohort_data)
cohort_pivot = cohort_data.pivot(index='first_visit_month', columns='month_diff', values='user_cnt') print(cohort_pivot)
retention_rate = cohort_pivot.divide(cohort_pivot[0],axis=0) print(retention_rate)
a = sns.heatmap(retention_rate, annot=True, fmt='.2%', cmap="Blues") a.figure.set_size_inches(9, 7) a.set_xlabel("month_diff", size = 12) a.set_ylabel("first_visit_month", size = 12) sns.set_theme(style="whitegrid", palette="pastel")
출처 : https://analyticsmarketing.co.kr/digital-analytics/google-analytics/1527/
파이썬 넘나 어려운것 ㅠㅠ