A/B 테스트란?
A와 B를 대조하여 가설을 검증하는 방법
목표 : 테스트 기반의 고효율 쿠폰 발굴 및 이탈고객 복귀율 제고
정액쿠폰(5천원 할인쿠폰), 정률쿠폰(5% 할인쿠폰)
가설 -> 정액이 기재되어 있는 할인쿠폰의 주문전환율이 더 높을 것이다.
종속변수(독립변수에 영향을 받아 변화하는 변수)
주문전환여부 (1 : 실험기간 중 주문이 1번이라도 있는 경우 / 0 : 실험기간 중 주문이 없는 경우)
독립변수(종속변수 변화에 부분적으로 설명할 수 있는 요소, 다른 변수에 영향받지 X)
쿠폰유형 (5천원 할인쿠폰 vs 5% 할인쿠폰)
대조그룹 쿠폰 미지급 100명
실험그룹 5천원 할인쿠폰 100명 /5% 할인쿠폰 100명
--그룹별 샘플 사이즈
select "group", count(ctt.mem_no)
from coupon_target_table ctt
group by "group"
6/5 ~ 6/11 사이에 구매가 일어난 것을 '처치 전'
6/12 ~ 6/18 사이에 구매가 일어난 것을 '처치 후' 로 지정
select ctt.mem_no, "group",
ord_no,
case when ord_dt between '2023-06-05' and '2023-06-11' then '처치 전'
when ord_dt BETWEEN '2023-06-12' and '2023-06-18' then '처치 후' end as period
from coupon_target_table ctt
left join order_master_did omd on ctt.mem_no = omd.mem_no
mem_no = 3 인 데이터를 보면 처치 전이 4번, 처치 후가 2번 일어났는데,
종속변수 설정에서 특정기간동안 아무리 많이 구입해도 한번으로 카운트 하기로 했으므로,
WITH T1 as (
select ctt.mem_no, "group",
ord_no,
case when ord_dt between '2023-06-05' and '2023-06-11' then '처치 전'
when ord_dt BETWEEN '2023-06-12' and '2023-06-18' then '처치 후' end as period
from coupon_target_table ctt
left join order_master_did omd on ctt.mem_no = omd.mem_no )
select "group",
period,
count(distinct mem_no) as ord_cnt
from T1
where period is not null
group by 1,2
그룹별, period마다 order count가 집계된것을 한 눈에 알아볼 수 있다.
이를 CVR(클릭전화율) bar plot으로 나타내면,
이중차분이란? 독립변수와 종속변수 간 인과 효과를 측정하기 위한 인과추론법
여기서 Control의 처치후-처치전 -6%는 시간이 지남에 따라 자연스럽게 떨어지는 수치를 의미한다. 이 테스트에서 이중차분을 진행하는 이유는 테스트 결과가 오로지 쿠폰을 줬기 때문에 나타나는 결과값인지 믿을 수 없기 때문에 이중차분을 진행하여 판단한다.
이중차분 결과값을 보면, 3%로 작은 차이를 보인다.
굳이 결과를 내자면 이중차분 값이 높은 정율을 선택하는게 맞지만 작은 차이이기에 무의미한 분석이 될 가능성도 있다.
<패스트캠퍼스 강의 내용을 복습한 내용입니다>