🆎

파이썬으로 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 테스트를 설계해야하는데, 비교를 위한 데이터는 얼마 정도 모아야 좋을까요?
→ 효과크기와 검정력 개념을 알아야합니다.
김문과의 데이터
직접 공부한 데이터 분석 · 활용법을 기록합니다.
포스팅에 대한 Q&A 및 다양한 논의를 기다립니다. contact or email