데이터 분석 기법들

joonfly·2021년 10월 24일
0

분석기법

  1. 퍼널 분석
    : 목표를 이루기 위한 단계 중에 어떤 단계에 집중해야하는지 찾아보는 것
  2. 코호트 분석
    : 시간이 흐름에 따라 고객은 어떻게 변하는지
  3. 리텐션 (일정 시간 이후 얼마나 많은 사용자가 재사용하는지)
    : 리텐션의 종류
  4. RFM 분석
    : 고객 행동 기반 segmentation 방법

퍼널 분석

목표 까지의 고객 여정을 단계별로 나눠 단계별 전환,이탈을 측정하는 분석. (깔때기의 형태로 단계별로 나누어 분석함)

  • 고객 여정 : 사용자가 우리가 원하는 행동을 하기까지를 고객여정이라 함.
  1. 어디가 문제인지, 어디에 집중해서 개선을 해야하는지 알 수 있음
  2. 그룹 별 퍼널 비교를 통해 우수한 퍼널을 보이는 그룹을 찾을 수있음
  3. 퍼널에서 이탈하는 고객의 이후 행동을 통해 개선 포인트 도출

퍼널분석 적용해보기

  1. 최종 목표, 비즈니스에서 가장 중요한 메트릭 설정
  2. 목표까지의 단계, 시나리오 생각해보기
    1. 고객 여정이 선형적이지 않은 경우가 많다.
    2. 앞선 행동이 항상 뒤로 이어지지 않음. 장바구니에 담지않고 바로 구매를 하는 등.
    3. 핵심적이고 필수적인 요소만 생각해야함.
  3. 전환율 기준 정하기
    1. 기간 기준 (장바구니에 담고 바로 구매 vs 2일뒤에 구매)
    2. 클릭 수 vs 유저 수 (한사람이 5개상품 본것은 상세페이지 5개클릭? 1명이 클릭?)
  4. 전환율 데이터 산출 (세그먼트 별)
    1. 기간
    2. 유저속성 (신규,재구매,성별,연령대)
    3. 유입경로 (오가닉,논오가닉, 채널별)
  5. A/B 테스트로 지표 개선

실습

SELECT page, COUNT(user_id) AS user_count, COUNT(DISTINCT user_id) AS check_user_count
FROM 고객 데이터
GROUP BY page
ORDER BY page

전환율 구하기 = 현재단계 / 전단계 %

코호트 분석

시간 흐름에 따라 growth와 retention을 측정하는 방법

고객을 segementation해서 그룹별로 시간에 따라 지표의 변화를 측정함

  • time 코호트
  • behavior 코호트
  • size 코호트

TIME 코호트

  • 1월 첫구매 한 사람들 → 2,3,4 월...
  • 2월 첫구매 한 사람들 → 3,4,5 월...
  • 3월 첫구매 한 사람들 → 4,5,6 월...

코호트 실습

최초 구매일자 구하기

SELECT customer_id, DATE(MIN(invoice_date)) AS cohort_day
FROM 구매 데이터
GROUP BY customer_id

최초 구매일 이후 구매 일 month로 차이 계산 (cohort_group으로 구매 월 확인) → 차이를 cohort_index로 설정

WITH first_purchase AS (
SELECT customer_id, DATE(MIN(invoice_date)) AS cohort_day
FROM `taling-excercise.data_pre.sales`
GROUP BY customer_id
)

SELECT s.*, f.cohort_day, DATE_DIFF(DATE(invoice_date), cohort_day, MONTH) AS cohort_index, DATE_TRUNC(cohort_day, month) AS cohort_group
FROM `taling-excercise.data_pre.sales` s LEFT JOIN first_purchase f
ON s.customer_id = f.customer_id

cohort_index 별로 고객 수 확인 (중복은 삭제)

WITH first_purchase AS (
SELECT customer_id, DATE(MIN(invoice_date)) AS cohort_day
FROM `taling-excercise.data_pre.sales`
GROUP BY customer_id
)

SELECT cohort_group, cohort_index, COUNT(DISTINCT customer_id) as customer_count
FROM (
    SELECT s.*, f.cohort_day, DATE_DIFF(DATE(invoice_date), cohort_day, MONTH) AS cohort_index, DATE_TRUNC(cohort_day, month) AS cohort_group
    FROM `taling-excercise.data_pre.sales` s LEFT JOIN first_purchase f
    ON s.customer_id = f.customer_id
)
GROUP BY cohort_group, cohort_index

다음 코호트 테이블로 보는건 액셀이 더 편리함!

액셀은 자신있지...

피벗테이블로 열에 cohort_index, 행에 chort_group, 값에 customer_id 넣기

리텐션 % 로 구하기 (index 0, 첫구매 가 100% 기준)

오랜만에 글을남기네,,, 이미 공부는 다 했는데 벨로그에 잘 안올리게 된다...

0개의 댓글