A/B Test
A와 B를 대조하여 가설을 검정하는 실험방법
즉, 결과와 상관성이 높다고 생각되는 변수를 테스트하여 검정하는 방법ex) 배너 위치를 변경하면 CTR(클릭전환율)이 증가할 것이다
- 독립변수와 종속변수 간 인과 효과를 측정하기 위한 인과추론법
- 실험군(Treatment): 실험자가 종속변수와 상관성이 높아 보이는 독립변수에 변화를 주는 그룹
- 대조군(Control): 실험군과 대조하기 위해 처치를 하지 않는 그룹
- 대조군과 실험군 두 그룹의 처치 시점 전후 지표 비교
처치 전 처치 후 실험군 a A 대조군 b B
이중차분: (A-a)-(B-b)
가설: 정액이 기재되어 있는 할인쿠폰의 주문전환율이 더 높을 것이다.
종속변수: 주문전환율(1: 실험기간 중 주문이 1번이라도 있는 경우/ 0: 실험기간 중 주문이 없는 경우)
독립변수: 쿠폰유형(5천원 할인쿠폰 / 5% 할인쿠폰)
대조그룹: 쿠폰 미지급 100명
실험그룹: 5천원 할인쿠폰 100명 / 5% 할인쿠폰 100명
관찰기간: 6/12 쿠폰발급(처치 이전: 6/5~6/11, 처치 이후: 6/12~6/18)
mysql에서 컬럼명이 예약어와 겹칠 경우
ex) group
백틱(``)을 감싸주면 인식 가능
쿠폰 데이터와 오더 데이터를 조인하여 집단별 처치 전후의 차이를 알아봤다
몇 번을 주문했냐가 문제가 아니라 주문을 했는지 안했는지 확인하기 위해
고유 배달 번호가 아닌 고유 멤버 번호를 distinct하여 주문했으면 1, 안했으면 0으로 집계
# 이중차분법을 위한 그룹별 주문 수 집계
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;
각 샘플마다 100명이여서 그냥 퍼센트 남긴 채로 계산
그룹/CVR | 처치 전 | 처치 후 | 처치 후-처치 전 | 이중차분 |
---|---|---|---|---|
Control | 62% | 56% | -6% | - |
Test1_정율 | 36% | 40% | 4% | 4%-(-6%)=10% |
Test1_정액 | 61% | 62% | 1% | 1%-(-6%)=7% |
정율쿠폰: 10%
정액쿠폰: 7%
3% 차이 밖에 나지 않기 때문에 유의미한 결과는 아니다