일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 내일배움
- hackerrank
- 파이썬 철저 입문
- 내일배움캠프
- SQL
- 프로젝트
- 파이썬 머신러닝 완벽가이드
- wil
- 회귀분석
- 미세먼지
- harkerrank
- 스파르타코딩
- 어쩌다 마케팅
- 텍스트 분석
- 파이썬 철저입문
- MySQL
- TiL
- 티스토리챌린지
- R
- 프로그래머스
- Cluster
- 중회귀모형
- 웹 스크랩핑
- 내일배움카드
- 파이썬
- 파이썬 머신러닝 완벽 가이드
- 스파르타 코딩
- 실전 데이터 분석 프로젝트
- 스파르타
- 오블완
- Today
- Total
OkBublewrap
2025-07-25 TIL (AB test) 본문
📅 2025-07-25 | TIL (Today I Learned)
📋 하루 요약
- 오늘 36도까지 올라갔다. 어우.. 무더위 조심하길
- AB test 첫번째 실습 진행
🧪 전환율 개선을 위한 웹페이지 A/B 테스트
배경 및 목적
- 목표: 새 디자인 웹페이지가 기존 대비 전환율을 개선하는지 검증
- 목적: 사용자 더미 데이터를 기반으로 정량적 검증
데이터 소개
https://www.kaggle.com/datasets/putdejudomthai/ecommerce-ab-testing-2022-dataset1
Ecommerce AB Testing 2022 Dataset1
www.kaggle.com
- 총 29만건의 실험 로그 데이터
- control vs treatment 그룹으로 무작위 배정
- 전환 여부(converted: 1 or 0) 기록
- user_id별 국가 정보 포함
- 파일: ab_data.csv, countries.csv
컬럼명 | 설명 |
user_id | 사용자 고유 ID |
timestamp | 페이지 노출 시각 |
group | 실험 그룹 (control, treatment) |
landing_page | 실제 본 페이지 (old_page, new_page) |
converted | 전환 여부 (1 = 전환됨) |
실험 설계
- control(기존) 그룹 ➜ old_page
- treatment(실험) 그룹 ➜ new_page
- 각 유저는 한 번만 페이지를 보도록 설계
데이터 전처리
1. 실험 설계 오류 제거
- 일부 유저는 control 그룹인데 new_page를 보거나, 그 반대도 있었음
- 총 3,893건 제거
2. 중복 유저 제거
- user_id가 중복된 사용자 발견 ➜ 제거
3. 국가 정보 병합
- 모든 사용자에 대해 국가 정보 병합
4. 최종 분석 대상 수
- 290,586
가설 수립
이번 프로젝트의 목표는 새롭게 디자인된 웹페이지가 기존 페이지보다 더 높은 전환율을 유도하는지 검증
이에 따라 A/B 테스트의 가설은 다음과 같이 수립.
기존 페이지를 새로운 페이지로 바꾸면 전환율이 증가할 것이다.
$ H_0 : p_{\text{new}} \leq p_{\text{old}} \quad $ (새로운 웹페이지는 기존 페이지보다 전환율이 높지 않다)
$ H_1 : p_{\text{new}} > p_{\text{old}} \quad $ (새로운 웹페이지는 기존 페이지보다 전환율이 높다)
목표 KPI
전환율 (Conversion Rate): converted 비율
사용자가 랜딩페이지에 도달한 후 특정 행동을 수행한 비율
샘플 사이즈 설정
얼마나 많은 사람이 이 실험에 참여해야 결과를 신뢰할 수 있을까?
이를 판단하기 위해 통계적 검정력 분석 활용
전환율 차이를 5%p의 효과를 가지고 싶고,
그 경우를 검출하기 위한 최소 샘플 수는 12,558명이다.
이 데이터는 29만명 이상의 데이터를 확보하고 있어, 충분한 검정력이 확보된 상태이다.
전체 전환율 분석
그룹 | 샘플 수 | 전환 수 | 전환 수 (CVR) |
Control | 144,300 | 17,349 | 12.02% |
Treatment | 144,390 | 17,166 | 11.89% |
차이 | 90 | 183 | 0.13%p |
통계적 검정 수행
Converted는 0또는 1로 이뤄진 이항 변수
따라서 두 그룹의 전환율 차이는 두 이항 확률 분포의 차이를 검정하는 문제이며
이때 사용한 검정법이 z-test입니다.
통계적 검정 결과
- Z-stat: 1.1115
- p-value: 0.2664
p-value가 0.8668로 귀무 가설을 기각할 수 없다.
즉, 새로운 페이지의 전환율이 기존 페이지보다 유의하게 높다고 말할 수 없다.
전환율 차이는 0.00134로 새로운 웹페이지가 기존보다 0.13% 높은 전환율이 보였다.
신뢰구간은 95%으로 [-0.0033, ∞ ] 0을 포함되므로 통계적으로 유의미한 차이가 없다.
두 그룹 간 전환율이 차이가 우연으로 발생 되었다라고 할 수 있고,
현재 데이터 상에서는 새로운 웹페이지가 기존보다 유의미하게 전환율을 높인다고 보기는 어렵다.
추가적 분석
현재 데이터 상에서 쓸 수 있는 요소들은 유저의 국가가 있다.
실험 데이터를 국가 기준으로 나누어 세그먼트별로 통계 분석 시도.
국가별 샘플 분포
국가 | Control | Treatment | 전체 |
US | 101,012 | 101,257 | 202,269 |
UK | 36,138 | 35,880 | 72,018 |
CA | 7,150 | 7,253 | 14,403 |
전환율 차이 및 신뢰구간(편의상 양측 신뢰구간으로 계산)
국가 | 전환율 차이 | 95% 신뢰구간 |
US | - 0.0019 | [−0.0174, +0.0035] |
UK | + 0.0012 | [−0.0035, +0.0060] |
CA | - 0.0069 | [−0.0174, +0.0035] |
현재 상태에서는 새로운 웹페이지의 전환율 개선 효과를 입증하기 어렵습니다.
오히려 특정 국가(US)에서는 기존 페이지가 더 좋은 성과를 보이기도 했습니다.
향후에는 국가 또는 사용자 행동 기반의 정교한 세그먼트 분석을 통해
개선 효과가 클 것으로 기대되는 집단을 중심으로 맞춤형 실험 설계가 필요합니다.
✔️ 회고
이번 프로젝트는 비교적 단순한 구조의 A/B 테스트였다.
실험 설계를 할 때만 해도, 신경쓸게 별로 없었다.
하지만 실무에서는 테스트를 설계할 때 통제해야 할 변수들이 매우 많을 것이다.
실험군과 대조군 간 무작위성이 잘 유지되고 있는지,
데이터 수집 과정에서 노이즈가 유입되진 않았는지,
한 사용자가 여러 번 실험에 참여하지는 않았는지 등 실험의 신뢰도를 보장하기 위한 조건이 복잡하게 얽혀 있습니다.
게다가 사용자 특성은 단일하지 않기 때문에, 국가·기기·시간대·유입 채널과 같은 다양한 세그먼트 변수를 고려해야 실험 결과를 제대로 해석할 수 있을 것이다.
밑에 있는 파일은 간단하게 ab 테스트를 할 수 있는 VWO의 엑셀 파일이다.
해당 홈페이지를 방문하면 파일을 다운 받을 수 있다.
파이썬 코드를 작성한 계산식이 조금 달라서 수치가 다르게 나오지만
어느 신뢰구간이든 귀무가설을 기각할 수 없다고 나온다.
'Today I Learning' 카테고리의 다른 글
2025-07-27 TIL (데이터 엔지니어링) (3) | 2025.07.27 |
---|---|
2025-07-26 TIL (데이터엔지니어링 기초) (1) | 2025.07.26 |
2025-07-24 TIL (AB 프로젝트 설계, Docker 환경설정, Bigquery) (0) | 2025.07.24 |
2025-07-22 TIL (BigQuery-DBeaver) (2) | 2025.07.22 |
2025-07-21 TIL (면접 준비, 계획) (1) | 2025.07.21 |