A/B Test 연습기

JangWon·2023년 9월 21일
0

데이터분석

목록 보기
2/2
post-thumbnail

A/B 테스트란?

A와 B를 대조하여 가설을 검증하는 방법

주제 : 5천원 할인쿠폰 vs 5% 할인쿠폰, 주문전환율이 높은 것은?

목표 : 테스트 기반의 고효율 쿠폰 발굴 및 이탈고객 복귀율 제고

정액쿠폰(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%로 작은 차이를 보인다.
굳이 결과를 내자면 이중차분 값이 높은 정율을 선택하는게 맞지만 작은 차이이기에 무의미한 분석이 될 가능성도 있다.

<패스트캠퍼스 강의 내용을 복습한 내용입니다>

profile
이것저것 해보기

0개의 댓글