COMENTO 직무 부트캠프 <SQL 입문부터 활용까지 - 데이터 분석 보고서 작성과 대시보드 개발> 수강생 자격으로 제공받은 Redash 프로그램을 사용했습니다.
Redash 활용 - (2) NorthWind Data 분석 : 가설 설정 및 검증 1
https://velog.io/@torchho/Redash-%ED%99%9C%EC%9A%A9-2-NorthWind-Data-%EB%B6%84%EC%84%9D-%EA%B0%80%EC%84%A4-%EC%84%A4%EC%A0%95-%EB%B0%8F-%EA%B2%80%EC%A6%9D-1
지난 게시물에서 NorthWind의 2006년 1분기와 2분기 카테고리별 매출 추이가 상이하게 나타나는 것을 확인할 수 있었다. 따라서 매출에 가장 큰 비율을 차지하는 Beverages 상품에 대해 좀 더 살펴 보기로 하였다.
먼저 Beverages 상품별 매출 추이를 살펴보자.
(1) 1분기에 Beverages 매출의 큰 비중을 차지한 Coffee 상품의 2분기 판매량이 크게 감소하였다.
(2) 이와 반대로, Beer 매출은 2분기에 크게 상승하였다.
다음은 1분기/2분기 전체 & Beverages 상품 매출 지표이다.
1분기 총 매출 : $38,686.75
2분기 총 매출 : $29,450.25
1분기 Beverages 매출 : $32,612.25
2분기 Beverages 매출 : $5,648.00
1분기 Beverages 매출 비율 : 84.3%
2분기 Beverages 매출 비율 : 19.2%
이 데이터를 통해 다음과 같은 궁금증이 생겼다.
(1) 1분기에 Coffee를 구매한 사람들은 2분기에 다시 Coffee를 구매하지 않았던 게 아닐까?
(2) 1분기에 Beer를 구매한 사람들은 2분기에 Beer를 다시 구매한게 아니었을까?
매출의 추이가 달라진 이유로 매출의 큰 지분을 차지한 Coffee 상품과 Beer 상품에 대한 의문점이 생겼다. 매출의 가장 큰 영향을 준 부분이 '재구매율', 즉 1분기에 상품을 구매한 소비자들이 2분기에도 구매하는 정도라고 생각하여 다음과 같은 가설을 사우게 되었다.
가설 1. Coffee 상품의 재구매율은 낮을 것이다.
가설 2. Beer 상품의 재구매율은 낮을 것이다.
Coffee 상품의 재구매율이 낮기에 2분기의 Coffee 매출이 감소하였고, Beer 상품의 재구매율이 높기에 2분기의 Beer 매출이 증가였다고 생각했다.
또한 1분기 Beverages 매출의 큰 비중을 차지한 Coffee 상품의 재구매율이 낮아 2분기에 급격하게 감소하였기에 2분기의 Beverages 매출이 절대적/상대적으로 감소한게 아닌가 생각하였다.
가설 검증을 위해선 재구매율의 데이터적 지표와 재구매율 지표의 유의 여부를 판별할 임계값을 설정해야 한다.
(1) 재구매율
- 1분기에 상품 A를 구매한 고객의 2분기 상품 A 총 구매량 / 2분기 상품 A 총 구매량
(2) 임계값
- 신규 유입 구매율
1분기에 상품 A를 구매하지 않은 사람의 2분기 구매량 / 2분기 상품 A의 전체 구매량- '재구매율 > or < 신규 유입 구매율' 일 경우 가설이 유의하다라고 판단
1-(1) Coffee 구매자 id 및 구매 수량
select quarter(order_date) as quarter,
orders.customer_id,
products.product_name,
sum(quantity) as total
from order_details
inner join orders on orders.id = order_details.order_id
inner join products on order_details.product_id = products.id
where products.product_name = 'Northwind Traders Coffee'
group by quarter, customer_id, product_name
order by quarter, customer_id
1분기에 Coffee 상품을 구매한 customer와 구매수량, 2분기에 Coffee 상품을 구매한 customer와 구매수량을 확인할 수 있다.
1-(2) Coffee 상품의 재구매율, 신규 유입 구매율 지표
select 2_quarter.customer_id as '고객번호',
case ifnull(1_quarter.total, 0) when 0 then 'x' else 'o' end as '1분기 구매여부',
2_quarter.total as '2분기 구매량'
from
(
#1분기에 Coffee를 구매한 사람
(select quarter(order_date) as quarter, orders.customer_id, sum(quantity) as total
from order_details
inner join orders on orders.id = order_details.order_id
inner join products on products.id = order_details.product_id
where products.product_name = 'Northwind Traders Coffee' and quarter(order_date) = 1
group by quarter, customer_id
order by quarter) as 1_quarter
right outer join
#right outer join을 통해 1분기에 Coffee를 구매한 사람 중 2분기에도 구매한 사람과 2분기에만 Coffee를 구매한 사람을 구함
(select quarter(order_date) as quarter, orders.customer_id, sum(quantity) as total
from order_details
inner join orders on orders.id = order_details.order_id
inner join products on products.id = order_details.product_id
where products.product_name = 'Northwind Traders Coffee' and quarter(order_date) = 2
group by quarter, customer_id
order by quarter) as 2_quarter
on 1_quarter.customer_id = 2_quarter.customer_id
)
(1) 1분기에 구매한 사람만이 2분기에도 Coffee를 구매함
(2) 따라서 재구매율은 100%, 신규유입 구매율은 0%
(3) <가설 1. Coffee 상품의 재구매율은 낮을 것이다>는 기각됨
2-(1) Beer 구매자 id 및 구매 수량
select quarter(order_date) as quarter,
orders.customer_id,
products.product_name,
sum(quantity) as total
from order_details
inner join orders on orders.id = order_details.order_id
inner join products on order_details.product_id = products.id
where products.product_name = 'Northwind Traders Beer'
group by quarter, customer_id, product_name
order by quarter, customer_id
1분기에 Beer 상품을 구매한 customer와 구매수량, 2분기에 Beer 상품을 구매한 customer와 구매수량을 확인할 수 있다.
2-(2) Beer 상품의 재구매율, 신규 유입 구매율 지표
select 2_quarter.customer_id as '고객번호',
case ifnull(1_quarter.total, 0) when 0 then 'x' else 'o' end as '1분기 구매여부',
2_quarter.total as '2분기 구매량'
from
(
#1분기에 Beer를 구매한 사람
(select quarter(order_date) as quarter, orders.customer_id, sum(quantity) as total
from order_details
inner join orders on orders.id = order_details.order_id
inner join products on products.id = order_details.product_id
where products.product_name = 'Northwind Traders Beer' and quarter(order_date) = 1
group by quarter, customer_id
order by quarter) as 1_quarter
right outer join
#right outer join을 통해 1분기에 Beer를 구매한 사람 중 2분기에도 구매한 사람과 2분기에만 Beer를 구매한 사람을 구함
(select quarter(order_date) as quarter, orders.customer_id, sum(quantity) as total
from order_details
inner join orders on orders.id = order_details.order_id
inner join products on products.id = order_details.product_id
where products.product_name = 'Northwind Traders Beer' and quarter(order_date) = 2
group by quarter, customer_id
order by quarter) as 2_quarter
on 1_quarter.customer_id = 2_quarter.customer_id
)
(1) 1분기에 구매하지 않은 사람만이 2분기에 Beer를 구매함
(2) 따라서 재구매율은 0%, 신규유입 구매율은 100%
(3) <가설 2. Beer 상품의 재구매율은 낮을 것이다>는 기각됨
가설과 정반대의 분석 결과가 나타났다. 그렇다면 과연 가설이 기각된 이유는 무엇일까?
크게 2가지로 나눌 수 있다.
1. 재구매율이 높아서 판매량이 늘어난 게 아님
실제 데이터 상에선 신규유입 구매자가 늘어난 Beer의 구매량이 늘어났으므로 재구매율보다 신규 유입 구매율이 매출 증가에 영향을 주는 것일 수 있다.
2. 구매자 표본이 적음
실제 데이터 상에서 2개 분기만 존재하고 Coffee, Beer 상품을 구매한 고객이 5명 이하였다. 가설 검증이 어려운 표본 집단 환경이라 가설이 기각이 되었을 수 있다.
2개의 포스트를 통해 기업 내 데이터베이스를 이용하여 매출 실적에 대한 가설 설정 및 검증 과정을 진행해보았다. 표본이 적어 분석을 진행하는 데 어려움이 있었지만 다음과 같은 과정을 진행해보았다는 데 의의가 있지 않을까싶다.