파이썬/파이썬-AI 기본

변화를 고려하고 있을 때는 AB테스트를 생각해보자

용사냥꾼69 2023. 2. 18. 20:05
728x90

AB 테스트란?


AB테스트

음식 선택은 자유다. 하지만, 비즈니스 선택에선 최소한 합리적인 설득력을 가진 의견이 있어야 한다.

데이터 중심의 의사 결정 과정으로, 기존의 상품에서 변화를 주려고 할 때 고려해볼 방법 중 하나다.

AB 테스트 자체는 하나의 가이드 라인이며 가설 설정, 데이터 수집부터 변수 설정까지의 실질적으로 수행해야 할 요소들에 대해서는 알려주지 않는다.

하지만, AB 테스트에는 기본 매개변수가 존재하며 이에 따라서 테스트가 설득력을 얻기 위한 최소한의 샘플 사이즈를 구할 수 있다.

샘플 사이즈 구하는 사이트

매개변수


AB 테스트에는 Baseline Conversion Rate, Minimum Detectable Effect(MDE), Significance, Power level의 매개변수가 존재한다.

이를 통해서 통계적으로 유의미한 정보를 얻기 위한 최소한의 샘플 사이즈를 구할 수 있다.

Baseline Conversion Rate

  • 기존의 고객이 얼마나 전환할지에 대한 예상치.

Minimum Detectable Effect(MDE)

  • 최소한으로 검출되야할 효과 크기.
    이는 기대하거나 원하는 정도를 말하는게 아니며 말그대로 최소한이다.
  • 테스트를 진행하기 위한 비용보다 전환 시에 얻을 예상 이익이 작다면 테스트를 하는 의미가 없을 것이다.
    이 경우 테스트를 진행하기 위한 비용에 해당하는 예상 이익만큼의 전환율이 MDE가 된다.

Significance(유의 수준)

Power level(검정력)

  • 일반적으로 95%의 유의 수준과 80%의 검정력이 사용된다.

  • 유의 수준은 실험군이 대조군보다 좋지 않아도 채택될 확률을 결정한다(1종 오류)
    즉, 더 좋지 않은 실험군을 채택할 경우의 비용을 제한할 수 있다.

  • 검정력은 실험군이 대조군보다 더 좋은 경우에도 실험군을 거부할 확률을 결정한다.(2종 오류)
    즉, 더 좋은 실험군을 거부할 때의 비용을 제한할 수 있다.

sm.stats.proportions_ztest 를 통한 파이썬으로 구현


공식 문서

AB 테스트를 시행하겠다고 판단했다면, 매개 변수를 설정하고 샘플 사이즈를 구한 뒤에 30일 이내의 "일정한 기간" 동안의 데이터 수집을 진행하여 가설을 검정한다.

import statsmodels.api as sm
z_score, p_value = sm.stats.proportions_ztest([old_convert, new_convert], [n_control, n_exp], alternative='smaller')

sm.stats.proportions_ztest의 매개변수

statsmodels.stats.proportion. ratios_ztest ( count , nobs , value = None , alternative = 'two-sided' , prop_var = False )

  • count
    실험군과 대조군 각각의 총 갯수

  • nobs
    실험군과 대조군의 각각의 크기

  • value
    단측 검정의 경우, 기준값

  • alternative
    대조군과 실험군을 대상으로 어떤 기준으로 검정을 진행할 것인지에 대한 것.
    'smaller' , 'larger' , 'two-sided'

참고 : https://towardsdatascience.com/finding-the-right-significance-level-for-an-ab-test-26d907ca91c9

https://towardsdatascience.com/how-to-set-the-minimum-detectable-effect-in-ab-tests-fe07f8002d6d