프로젝트 요약
•
목표 : 이커머스 서비스를 진행하고 있는 우리 회사 고객들의 데이터를 리텐션 분석을 한다. 여러가지 가설을 세우고 검증을 통해 고객들의 구매율을 높이기 위한 여러가지 방안을 제시한다.
•
결과 : 리텐션 차트를 바탕으로 가설을 세우고 검증하여 고객들의 재구매율을 높일 수 있는 여러 방안을 제시
•
역할 및 기여
◦
데이터 수집 및 전처리
◦
Tableau를 이용한 시각화
◦
Cohort/Retention 분석을 위한 쿼리 짜기
◦
가설 세우기 및 검증
◦
비즈니스 해결방안 제시
1. 문제 정의
2010년 12월 첫 런칭한 영국의 글로벌 이커머스 비즈니스, 1년 동안의 비즈니스 성과를 살펴보았다. 첫 런칭시 구매한 고객들의 재구매율은 높지만, 신규 고객들의 재구매율은 상대적으로 낮다. 어떻게하면 신규 고객들의 재구매율을 끌어올릴 수 있을까?
EDA HISTORY
전처리 → 분석 실행 가능한 파일 생성
1.
취소 주문 필터링 (drop cancelled order values)
2.
주문량 & 개별 가격이 0 이하인 품목들 필터링 (drop rows where quantity & unit_price < 0)
3.
비정상적인 상품명(description)들에 대한 필터링 진행 (drop abnormal description values)
Python 전처리 과정
카테고리화 작업
기존 정보로는 고객간의 차별성을 확인하는 것이 어려운 문제라고 판단
고유한 상품명(description) 총 4,022가지 상품에 대한 카테고리화 작업 시행
기존 | 4,022개의 분류되지 않은 상품 |
작업 후 | 225개의 category로 세분화 |
Python 전처리 과정
최종 전처리
카테고리 작업 후 만들어진 Retail.csv 테이블에서 분석에 필요한 정보들만 추출할 수 있는 최종 필터링 조건 완성
1.
customer_id 컬럼의 null 값 제거 → 회원 고객만 필터링
2.
country 가 United Kingdom → 분석 목적에 맞는 국가 선택
3.
마지막 달(2011-12) 제거 → 마지막 달의 경우 9일치 데이터만 존재하므로 분석 대상에서 제외
4.
unit_price 비정상 값 삭제 (최소 단위 이하의 가격정보 제거)
5.
각 고객의 첫 구매 월 (first_order_month) 칼럼 생성
최종 전치리 SQL 쿼리
2. 데이터 수집 및 분석
•
데이터 : 영국에 기반을 둔 등록된 비점포 온라인 소매에 대해 2010년 12월 1일과 2011년 12월 9일 사이에 발생한 모든 거래를 포함하는 다국적 데이터 세트입니다. 이 회사는 주로 선물용품을 판매하며 회사의 많은 고객은 도매상입니다. (출처: Kaggle)
컬럼 정보
•
일시 : 2010년 12월 ~ 2011년 12월
•
총 데이터 수 : 약 581587개 데이터
•
분석 방법 : EDA를 통해 데이터 전처리후, 리텐션 분석을 통해 우리 서비스를 이용하는 유저들의 주문에 관한 데이터를 분석한다. 가설을 세우고 검증을 통해 결과를 도출하고, 도출한 결과를 바탕으로 비즈니스 방안을 제시한다.
•
Tableau 대시보드 :
Tableau SoftwareOnline Retail 유저 리텐션 분석 대시보드
3. 분석 방법: Cohort / Retention
Retain 된 고객 정의
이커머스 서비스를 진행하고 있는 당사에서는 ‘우리 서비스에 가입한 후 재구매 경험 있는 고객’으로 정의합니다.
Retention의 기준은 ‘구매’를, 고객의 국가는 영국을 기준으로 합니다.
우리 서비스의 영국 시장 점유율 (Tableau 시각화)
Cohort 정의
서비스 런칭 직후인 2010년 12월부터 2011년 12월까지 *한 달 간격으로 ‘첫 구매 고객’을 동질 집단별(Cohort)로 하여 주문에 관한 리텐션을 분석할 계획입니다.
영국을 기준으로 진행하는 이유
: 첫 서비스 런칭 이후 국내시장(영국)에서 주문 건수, 매출이 가장 폭발적으로 성장중임을 확인. 국내시장 고객 분석을 통한 액션플랜 적용 후 글로벌 고객에게 적용시키는 것을 1차적인 목표로 하였음.
한 달 간격으로 리텐션 분석을 진행하는 이유
: 고객의 재구매 주기를 중앙값(median)으로 계산한 결과 약 26.5일로 집계되었으며, 매주 토요일 서버 점검으로 서비스 운영이 제한되는 여건(한 달에 4일)을 고려하여 고객의 재구매 주기를 한 달 간격으로 분석하기로 결정하였음.
(+ 평균값은 극단값에 취약한 단점으로 인해, 중앙값으로 재구매 주기를 구했습니다.)
리텐션 차트
2010-12 코호트
서비스 런칭 직후 첫 구매한 고객 수가 가장 많게 나타났으며, ‘첫 구매월별’ 리텐션(재구매율) 또한 타 코호트 대비 성과가 좋게 나타났습니다.
SQL 쿼리
4. 가설 설정
2010년 12월 구매자 코호트의 주문건수 기준 TOP 5 카테고리는 다른 코호트와 상이할 것이다.
•
매출액을 분석하지 않은 이유:
◦
일시적으로 한 곳에서 대량으로 구매한 경우도 있기 때문에 매출액보다는 주문건수를 분석하는게 좋을 것이라 생각
•
주문건수 vs 주문량:
◦
한 사람이 한 상품을 3개 구매하는 것보다 세 사람이 한 상품을 1개씩
첫구매에 크리스마스 상품이 있는 코호트는 다른 코호트보다 구매 리텐션이 낮을 것이다.
•
첫 구매에 set 카테고리 상품을 구매한 고객은 크리스마스 관련 상품 구매를 위해 일시적으로 유입된 고객일 가능성이 높다고 판단
문구류 상품을 구매한 적이 있는 코호트의 구매 리텐션은 다른 코호트의 구매 리텐션보다 높을 것이다.
•
2010-12 코호트에서 heart 카테고리 상품의 고객 비중이 set 카테고리 상품의 고객 비중만큼 많았기 때문에, 리텐션에 영향을 주는지 확인해볼 필요가 있다고 판단
set 카테고리를 크리스마스 상품으로 분류한 이유.
: GIRLY PINK TOOL SET(공구세트), SET 7 SCANDINAVIAN REDS RIBBONS(리본장식), SET 6 RIBBONS ELEGANT(리본장식)과 같이 set으로 분류된 것들이 크리스마스 상품들이 많아서 크리스마스 상품들로 판단.
heart 카테고리를 문구류 상품으로 분류한 이유.
: SWEETHEART WIRE MAGAZINE RACK(서류보관파일), SWEETHEART CAKESTAND 3 TIER(스탠드)과 같이 heart로 분류된 것들이 문구류 상품들이 많아서 문구류 상품들로 판단.
5. 분석 결과
주문건수 TOP5 카테고리 가설 검증
2010년 12월 구매자 코호트의 주문건수 기준 TOP 5 카테고리는 다른 코호트와 상이할 것이다.
결과: 두 집단 간의 주문건수 TOP5 카테고리를 비교했을 때 유의미한 차이를 발견.
•
주문 건수 → 주문한 고객 수 순서로 판단
<A 그룹> (2010년 12월 구매자 코호트) <B 그룹> (A 그룹을 제외한 나머지 코호트 )
category | cnt_order (주문 건수) | cnt_customer (고객수) | cusomer_pct (비중) |
set | 4172 | 711 | 87.35% |
red | 3710 | 688 | 84.52% |
heart | 3569 | 676 | 83.05% |
bag | 3085 | 577 | 70.88% |
pink | 2642 | 578 | 71.01% |
category | cnt_order (주문 건수) | cnt_customer (고객수) | cusomer_pct (비중) |
set | 5600 | 2414 | 78.61% |
heart | 4863 | 2186 | 71.18% |
red | 4402 | 2053 | 66.85% |
bag | 3798 | 1661 | 54.09% |
vintage | 3413 | 1785 | 58.12% |
SQL 쿼리
주문 건수를 기준으로 두 그룹의 TOP5 카테고리를 비교했을 때 순위 목록에서 큰 차이를 보이지 않았지만, 고객 비중을 비교하면 유의미한 차이가 발생함.
•
set 카테고리 상품의 경우 A그룹의 고객 비중이 B그룹에 비해 약 10% 높음
•
red 카테고리 상품의 경우 A그룹의 고객 비중이 B그룹에 비해 약 18% 높음
•
heart 카테고리 상품의 경우 A그룹의 고객 비중이 B그룹에 비해 약 12% 높음
•
bag 카테고리 상품의 경우 A그룹의 고객 비중이 B그룹에 비해 약 16%p 높음
→ A그룹에서 많은 주문 건수와 높은 비중의 고객이 구매한 set, red, heart, bag 카테고리 상품이 B그룹과 상이하게 리텐션에 영향을 끼쳤음을 알 수 있다.
크리스마스 상품 구매 코호트 가설 검증
첫구매에 크리스마스 상품이 있는 코호트는 다른 코호트보다 재구매율이 낮을 것이다.
결과: 첫구매 크리스마스 상품 구매 여부에 따라 두 집단의 리텐션이 상이함을 확인.
데이터 보기
SQL 쿼리 보기
첫구매에 christmas 상품을 구매한 코호트의 리텐션은 그렇지 않은 코호트보다 낮음
•
christmas 코호트의 리텐션은 최고 24.32%, 평균 17.95%
•
non_christmas 코호트의 리텐션은 최고 22.33%, 평균 18.41%
문구류 상품 구매 코호트 가설 검증
문구류 상품을 구매한 적이 있는 코호트의 재구매율은 다른 코호트의 재구매율보다 높을 것이다.
결과: stationery 카테고리의 상품 구매 여부가 재구매율에 유효한 영향을 미치는 것을 확인.
데이터 보기
SQL 쿼리 보기
stationery 카테고리 상품을 구매한 적이 있는 코호트의 리텐션은 그렇지 않은 코호트보다 확연히 높음
•
stationery 코호트의 평균 리텐션은 21.11%
•
non_stationery 코호트의 평균 리텐션은 8.47%
6. 제안 (Action Plan)
새로운 로열티 프로그램 적용
가설 3의 문구류 상품 구매 코호트를 통해 stationery 카테고리의 상품을 구매하는 충성 고객이 많이 있음을 확인. 이러한 고객들이 상품을 구매할 때마다 마일리지 등 포인트를 적립해 나중에 고객들이 원할 때에 상품 할인을 위해 사용하는 등의 로열티 프로그램을 이용하면 이러한 그룹들의 재구매율이 더 높아질 것으로 판단.
이커머스와 연동 가능한 ‘커뮤니티’ 베타기능 런칭
가설 1을 통해 높은 리텐션을 보이는 코호트에서 christmas, stationery카테고리 상품을 가장 많이 구매하는 것을 확인. 크리스마스 파티, 장식 관련 해당 상품들을 이용하여 고객들이 직접 꾸민 공간의 사진들을 컨텐츠로 공유할 수 있는 커뮤니티 기능 도입 제안.
예시 이미지 출처: 오늘의집
캔들 구매 고객이 꾸민 공간을 컨텐츠로 공유하는 커뮤니티 기능의 모습
버튼을 클릭하면 자사몰에 입점한 상품 구매 링크로 이동.
커뮤니티 기능 도입시 기대효과
1.
선물용품, 장식용품을 판매하는 당사의 브랜드 호감도를 높여 충성도를 이끌 수 있음.
2.
이미지에 상품 구매 링크를 태그하는 기능을 유도하여 고객들의 재구매 증가.
3.
컨텐츠 조회를 통한 행동 데이터를 수집하여 사용자에게 맞춤형 컨텐츠 & 상품 추천.
앱 푸시 알림 프로모션 제안
가설 2에 의하면 첫 구매에 christmas 상품을 구매한 코호트의 리텐션은 그렇지 않은 코호트보다 낮음을 확인. 시즌 상품을 첫 구매로 선택한 유저들의 재구매를 유도하기 위한 앱 푸시 알림 프로모션을 제안.
EX) 지난 겨울 크리스마스 장식 OOO는 유용하셨나요? 다가올 부활절 이벤트 상품 OOO을 구경하고 최대 30% 할인 쿠폰 받아가세요!
→ 데이터를 통해 검증된 고객 (첫 구매가 시즌 상품으로, 리텐션이 낮을 것으로 예상되는 고객)
→ 재구매 유도 프로모션 문구 및 혜택 제시 (프로모션 혜택 및 클릭 유도 문구를 통한 재구매 유도)
7. 회고(KPT)
Keep
•
문제 정의와 EDA를 잘했습니다.
분석의 목적을 정확히 하여, 여러가지 데이터 특성을 파악하고 불필요한 데이터는 삭제하고 필요한 데이터는 추출해 분석에 필요한 정보들만 추출했습니다.
•
가설 설정을 잘했습니다.
데이터를 받고 리텐션 분석 후 어떤 가설을 설정해서 어떤 인사이트를 도출할 수 있을까? 라는 생각을 많이 고민하고 생각했습니다. 3가지 가설을 세운 후 실제 분석하고 결과를 도출했습니다.
•
비즈니스 방안을 잘 제시했습니다.
분석 결과를 활용한 비즈니스 방안을 구체적으로 실행할 수 있는 계획으로 제시했습니다. 제시한 방안이 어떤 가치를 창출하고 어떠한 긍정적인 효과를 불러일으킬지 제시했습니다
•
공부했던 리텐션, 코호트 분석을 적용해서 개인 프로젝트를 했습니다.
얼마나 잘했는지는 모르지만, 스스로 데이터를 받고 리텐션/코호트 분석으로 여러 가지 과정을 통해 액션플랜까지 제시했습니다. 분석을 바탕으로 어떻게 비즈니스에 가치를 제공할 수 있는지 제시했습니다. 입사해서 이러한 업무를 맡으면 프로젝트 경험이 많은 도움이 될 것입니다.
Problem
•
카테고리화 작업에서 어려움이 있었습니다.
고객 간의 차별성을 확인하기가 어렵다고 생각하여 상품명에 대해 카테고리화 작업을 했습니다. Python의 scikit-learn 라이브러리를 사용하여 TF-IDF (Term Frequency-Inverse Document Frequency)를 계산하여 텍스트 데이터에서 상위 N개의 키워드를 추출하는 작업을 수행했습니다. 다른 카테고리화 방법을 찾아보았지만 쉽지 않았고 제가 원하는 대로 되지 않아서 TF-IDF를 계산하여 키워드를 추출하는 방식을 사용했습니다. 하지만 데이터 개수가 많고 키워드가 워낙 많기 때문에 키워드가 세분화되지 않았습니다.
•
데이터를 선정하고 EDA하는 과정에서 많은 시간을 할애했습니다.
인터넷에 너무 많은 데이터가 있기 때문에, 어떤 데이터를 분석하고 좋은 인사이트를 제공할 수 있을지 고민했습니다. 또한 데이터에서 주어진 정보로만 분석을 진행하는 데 어려움이 많아 어떤 방향으로 나아가야 할지 생각하는 부분에서 많은 시간이 들었습니다.
Try
•
카테고리화 작업에 다양한 방법을 시도해보는게 좋겠습니다.
scikit-learn 라이브러리가 아닌 다른 라이브러리를 통해 좀 더 세분화된 키워드를 추출하는 것이 리텐션 분석을 통해 고객들의 구매 정보를 더 정확히 살펴볼 수 있을 것 같습니다. 키워드를 직접 제작하는 방법도 있을 것 같다.
•
특정 카테고리가 재구매에 영향을 끼치는지 알아볼 때, 통계적인 접근이 필요한지 알아보자?
엄밀한 결과가 필요하다고 판단되면 특정 카테고리 구매 여부를 기준으로 집단을 분리해서 T-test와 같은 통계검정을 해볼 수도 있을 것 같다.
•
다른 방안을 제시해 볼 수도 있을 것 같다.
리텐션을 높이는 상품(ex 문구류)을 살만한 사람들을 새로 데려오는 마케팅 하기, 기존 고객들이 문구류를 사게 만들기(ex 할일 프로모션)와 같은 다양한 액션플랜을 제시할 수 있다.