PROJECT GOAL : SQL만 이용하여 데이터에서 인사이트 도출하기
[프로젝트 개요]
- 프로젝트 명 : [SQL 분석 프로젝트] 이커머스 이벤트 히스토리 분석
- 기간 : 2024년 12월 2일 ~ 2024년 12월 6일
- 인원 : 팀 (4명)
- 역할 : 질문 및 가설 아이디어 디벨롭, 분석 쿼리 작성, 최종 PPT 제작 및 발표
- 작업 도구 : SQL
[데이터 개요]
출처 : https://www.kaggle.com/datasets/mkechinov/ecommerce-events-history-in-cosmetics-shop
eCommerce Events History in Cosmetics Shop
This dataset contains 20M users' events from eCommerce website
www.kaggle.com
- 온라인 스토어의 5개월(2019년 10월~2020년 2월) 동안의 행동 데이터 포함
- 파일의 각 행은 이벤트를 나타냄
- 각 이벤트는 제품과 사용자 간의 다대다 관계와 같음(같은 (사용자,제품) 조합에서 여러 이벤트 발생 가능)
Columns | 설명 | |
evnet_time | 이벤트 시간 | 이벤트가 발생한 시간(UTC) |
event_type | 이벤트 유형 (고객 행동 유형) |
‐view : 사용자가 제품을 봄
‐cart : 사용자가 장바구니에 제품을 추가함
‐remove_from_cart : 사용자가 장바구니에서 제품을 제거함
‐purchase : 사용자가 제품을 구매함
|
product_id | 제품 아이디 | |
category_id | 카테고리 아이디 | |
category_code | 카테고리 코드 | 주요 카테고리에 대해 제공, 다양한 액세서리 유형은 생략 |
brand | 제품 브랜드 | |
price | 제품 가격 | |
user_id | 사용자 아이디 | |
user_session | 사용자 세션 | 사용자의 온라인 스토어 접속 단위 |
※ 데이터의 용량이 너무 커서(한 파일당 백만 행이 넘어감) 샘플링 된 데이터로 분석
→ 2020년 2월 이벤트가 가장 많이 발생한 유저 상위 1% (3,000명)의 5개월 간의 로그 데이터 추출
[분석 목적 및 방법]
1. 분석 목적
- 1차 분석 : 시간대별 고객 행동 특징 및 특이 패턴 파악
- 2차 분석 : 서비스 성장하고 있는가?에 답하기
2. 분석 방법
- 데이터 EDA 및 전처리 : 데이터의 기본 개요와 컬럼별 통계 등을 확인하여 이상치, NULL값 처리 등 고민
- 질문 및 가설 확인을 위한 SQL 쿼리 작성
[분석 과정 및 결과]
1. EDA 및 전처리
- 카테고리 코드와 브랜드명에서 빈 값이 너무 많아 브랜드별, 품목별 자세한 분석은 어려울 것으로 보임
- 가격에서 음수가 있긴 하나 1건이고, purchase에서 발생한 것으로, 환불건이라고 생각됨
- purchase를 제외한 행동에서 가격이 0인 경우가 있는데, 이것은 무엇으로 해석할 것인가?
2. 시간대별 특징 파악
- 시간대별 총 이벤트 발생 건수 비교 결과, 저녁 시간에 고객 행동이 가장 몰려있음
- 시간대별 많이 발생하는 이벤트 순서로 정렬, 대부분 view - remove_from_cart - cart - purchase 순으로 이벤트 발생 (purchase를 제외하면 발생 건수도 뭐 그렇게 차이가...?)
- 새벽 시간에 remove_from_cart가 1위로 올라왔지만, 이 또한 발생 건수만 놓고 비교해보면 크게 의미있는 특이점은 아니라고 판단
특이 패턴이 없어서 흥미 파사삭
그런데!!!
여기서 세션(한 고객이 사이트를 접속하는 단위) 당 발생한 모든 이벤트 수를 비교하는 방법이 적합할지, 세션당 발생한 이벤트를 한건으로 치고 비교하는 방법이 적합할지 고민이 필요하단 것을 알았음세션... 숨어있던 빌런같은 새...ㄲ.....
이 때 부터 모든 생각이 꼬이고 머리가 아파지기 시작... 그래서 세션 중복을 제거해야하나..? 아니면 유저 중복을 제거한 건수를 봐야해...? 어리둥절
3. 서비스 성장 척도 파악
고민하던 우리 팀원의 질문에, 매니저님이 그래서 이걸 왜 알고싶은거죠? 라고 하셨다.오.... 그러게요?질문 및 가설 설정부터 명확하지 않았던 우리의 분석은 시작부터 잘못되었음
그래서, 비즈니스 시각에서 무엇이 궁금할까 고민, '그래서, 이 서비스는 성장하는 서비스인가?' 로 노선 변경
- 월별 이용자 수 변화와 월별 매출 변화를 확인한 결과, 지속적인 증가 경향 확인(2월 매출은 특히 폭발적 증가)
- 가격대별 분포를 살펴보니 해당 온라인 사이트는 10 이하 가격의 물품이 매출의 주를 차지함
- 물품별 매출 확인 결과, 알수 없는 카테고리(아마도 기타 잡화 예상)의 매출 증가액이 상당히 크고, vaccum, bath, cabinet에서 1월 대비 n배 이상의 증가율을 보임
4. 결론
- 종합적으로 이용자 수와 매출액 모두 2020년 2월에 상당히 큰 폭을 증가한 것을 보아, 성장의 전환점으로 예상할 수 있음 (물론 더 정확한 판단을 위해서는 앞뒤 추가적인 달의 데이터 필요)
- 사이트 내 프로모션 적용 여부, 판매 물건의 자세한 카테고리 등을 알아야 구체적인 성장 이유를 예상해볼 수 있음
[배운 점]
데이터 분석을 위한 질문 방향 설정은 매우 중요함
- 우리는 질문 또는 가설의 정확한 목표가 없었고, 그저 특징이 있을거 같은데? 재밌을거같은데?의 시각에서 출발
- 결국은 온라인 스토어 데이터이므로, 성장율 체크, 매출 증대, 마케팅 계획 등과 같은 비즈니스 목적이 있어야 함
- 비즈니스 관점에서, 내가 오너나 담당자라면 어떤 것이 궁금할지 고민해야 분석의 방향을 계획할 수 있음
즉석에서 원하는 질문을 던지고 그에 맞는 쿼리 구조를 생각해내는 연습을 함
- 분석에서 루틴화 하여 사용할 수 있는 구조가 보이는 듯 함 (앞으로 그런 쿼리를 따로 정리해보면 좋겠다!)
[향후 보완점]
- 단순 이용자 수 변화나 매출 변화가 아닌, 성장 여부와 그 정도를 평가 할 수 있는 새로운 지표를 정의해서 추가 분석을 해보면 좋을 것 같음
- 세션을 고려한 다양한 분석을 시도해보면 좋을 것 같음
'데이터 부트캠프 - Project' 카테고리의 다른 글
[파이썬 기초 분석 프로젝트] 프로모션 성과 분석 및 향후 프로모션 제안 (0) | 2025.01.07 |
---|