🆎

파이썬으로 AB 테스트하기 (코딩 모르는 ver. 추가!)

예제 1. 디자인 시안 A,B에 따른 유저의 체류 시간 테스트하기
👎
'디자인 A의 평균 체류 시간이 조금 더 기네? → A 디자인이 더 좋네!' — 🚫
👍
'디자인 A의 시간이 더 긴 것은 우연의 결과가 아니었을까? → 검정해봐야겠다!' — 🅾️
1.
파이썬을 이용해 검정하기
from scipy import stats # 데이터 담기 design_A = [16.4, 12.6, 17.5, 18.8, 12.1, 13.2, 14.5, 12.4, 17.5, 25.4, 9.3, 10.4] design_B = [12.1, 11.8, 14.7, 13.1, 13.8, 10.1, 9.1, 13.5, 11.2, 13.7] # 검정 코드 실시 stats.ttest_ind(design_A, design_B, equal_var=False) # 결과 보기 >>> Ttest_indResult(statistic=1.933374622222914, pvalue=0.07227304704557012)
Python
2.
결과 해석하기
👊 한 줄 요약 버전 : pvalue0.05보다 높으면 디자인 시안 A가 더 낫다고 말할 수 없다
👀 통계적으로 해석하는 버전 (읽어보길 권장합니다. 어렵지 않아요!)
3.
equal_var = True, False 의 의미를 알고 쓰기
디자인 시안 별 유저 체류 시간은 평균과 분산값을 갖고 있습니다.
이때 A와 B의 분산이 너무 다르거나, 혹은 수집된 데이터의 개수 차이가 너무 크면 계산 방법을 달리 적용해야 합니다.
🤯 이때 여러분이 통계학적 개념에 익숙지 않으면 그냥 equal_var = False 를 사용하길 권장합니다!
자세한 설명 읽기
🧐 데이터가 DataFrame 형식이고, 중간 중간에 null이 있다면?
예제 2. 디자인 시안 A,B에 따른 유저의 전환율(클릭) 차이 테스트하기
클릭 = 1, 클릭 안 함 = 0
👎
'디자인 B의 클릭 전환율이 2~3% 높네? → B 디자인이 더 좋네!' — 🚫
👍
'디자인 B의 클릭 전환이 더 잘 된 것은 우연의 결과가 아니었을까? → 검정해봐야겠다!' — 🅾️
1.
파이썬을 이용해 검정하기
import pandas as pd from scipy.stats import chi2_contingency def click_abtest(a_click, total_a, b_click, total_b): click = [a_click, b_click] # A와 B의 클릭한 유저 수 no_click = [total_a - a_click, total_b - b_click] # A와 B의 클릭 안 한 유저 수 cont_table = pd.DataFrame([click, no_click], columns=['A', 'B'], index=['click', 'no_click']) chi2, p_val, d_f, expected = chi2_contingency([click, no_click]) print("카이제곱 통계량 :", format(chi2, '.5f')) print("pvalue :", format(p_val, '.5f')) # A의 클릭수(13)와 A의 데이터 전체 개수(244), B의 클릭수(23)와 A의 데이터 전체 개수(287)를 정의한 클래스에 넣어줍니다. click_abtest(13, 244, 23, 287) # 결과 >>> 카이제곱 통계량 : 1.11053 >>> pvalue : 0.29197
Python
2.
결과 해석하기
👊 한 줄 요약 버전 : pvalue0.05보다 높으면 디자인 시안 B가 더 낫다고 말할 수 없다
👀 통계적으로 해석하는 버전 (읽어보길 권장합니다. 어렵지 않아요!)
알면 알수록 더 궁금해지는 것들
1.
🤔 AB 테스트는 아니지만, 광고 집행에 따른 효과를 검정하고 싶어요. 일종의 'A' 테스트랄까...?
→ 아래의 방법론을 소개합니다! (파이썬 활용)
2.
😢 AB 테스트가 아니라 ABC 테스트는 어려울까요?
새로 시도할 디자인 시안이 2개가 아니라 3개인데...
→ ANOVA (분산분석) 방법론을 써야하지만 그 절차가 AB 두 개의 비교에 비해 급격히 복잡해집니다.
3.
🙄 AB 테스트를 설계해야하는데, 비교를 위한 데이터는 얼마 정도 모아야 좋을까요?
→ 효과크기와 검정력 개념을 알아야합니다.
4.
👀 여기서 배운 내용 외에 주의해야하는 사항들이 있을까요?
→ p값을 배운 당신, 이제 다음 스텝을 고민해봐야 합니다.
🙋‍♂️ 김문과의 데이터
직접 공부한 데이터 분석 · 활용법을 기록합니다.
포스팅에 대한 Q&A 및 다양한 논의를 기다립니다. contact or email
Today