inblog logo
|
hollyisyoon
    스터디

    [AB] Udacity A/B Test (2)

    Free-Screener 테스트를 실험설계서로 재정리해보자
    Jul 26, 2023
    [AB] Udacity A/B Test (2)
    Contents
    4. 실험 세팅5. 실험 결과
    이전 글에 이어 실험 세팅과 결과 분석을 해봅시다! 해당 kaggle 파일을 많이 참고했습니다. 작성한 코드 파일은 여기에서 볼 수 있습니다.

    4. 실험 세팅

    Sample Size Calculator
    • 확인하고자하는 지표의 유형에 따라 샘플 사이즈를 구하는 공식이 달라진다.
    AB 테스트 알아보기 - 1. 샘플 사이즈 계산 (with alpha, beta, power, critical value)
    https://jinwoo1990.github.io/statistics/ab-test-sample-size/#계산
    AB 테스트 알아보기 - 1. 샘플 사이즈 계산 (with alpha, beta, power, critical value)
    https://www.kasl.org/upload/lecture/201403_b3.pdf

    4.1. 실험 대상

    • Free Trial Btn을 누른 사용자들을 대상으로 진행하는 해당 실험의 분기 단위(Unit of Diversion)는 쿠키값으로 설정한다. 실험이 분기되는 시점이 비로그인 상태에서 이루어질 수 있기 때문에, User-id가 적합하지 않다.

    4.2. 실험 기간/규모

    • 본 실험의 가이드라인은 α=0.05(significance level), β=0.2(2종오류와 관련)을 따른다.
    • Sample Size Calculator를 바탕으로 각 지표별 필요한 Sample Size를 구한다. 이 때 필요한 것은 유의수준, 검정력, 베이스라인(기존 수치), MDE이다.
    • MDE를 작게 설정하면, 통계적으로 유의미한 효과를 감지하기 위해 필요한 Sample Size가 증가한다. 따라서 MDE를 다음과 같이, 재조정해주도록 하겠습니다.
      • Type
        Metric Name
        Metric Formula
        Dmin(MDE)
        Notation
        불변 지표
        Free Trial 버튼 클릭 수
        # unique daily cookies who clicked
        ㅤ
        unique
        성공 지표
        클릭>수업 등록 전환율
        수업 등록 수(enrolled) / 클릭 수
        0.01
        CTP
        성공 지표
        등록>결제 전환율
        결제 수(extend payment) / 등록 수(enrolled)
        0.01
        CTP
        보조 지표
        클릭>결제 전환율
        결제 수(extend payment) / 클릭 수
        0.01
        CTP
        보조 지표
        등록완료 페이지 진입 수
        # unique daily cookies on enrollment page
        17.32
        unique
        가드레일 지표
        결제 수
        # unique daily cookies who extend payment
        11.93
        unique
    • 성공 지표 감지에 필요한 샘플 사이즈
      • 클릭>수업 등록 전환율 : (Sample Size) 645,875
      • 등록>결제 전환율 : (Sample Size) 4,737,818
    • 실험기간 : 일일 수업상세페이지 진입 수는 40,000인 점을 고려할 때 등록>결제 전환율을 측정하기 위한 실험기간은 트래픽 100% 대상으로 실험하더라도 118일이 걸린다. (실험에 소요되는 리소스가 과다함) → 따라서 클릭>수업 등록 전환율을 기준으로 샘플 사이즈를 고정하고, 베이지안 확률을 바탕으로 결과를 추정하기로 한다.
    • 실험변수 + 사용자 군/변수 값
      • Free Trial 모달창의 팝업 여부와 input값에 따른 다른 flow
      • 실험군 : show 모달창
      • 대조군 : 기존 flow
     

    5. 실험 결과

    5.1. 온전성 검사(Sanity Check)

    • Invariant 지표인 클릭 수가 실험 중에도 실제로 두 그룹 사이에서 invaraint했는지를 확인한다.
      • Count : binomial test 수행한다.
      • Proportion : 합동확률을 이용해 합동표준오차 및 신뢰구간을 계산하고, 그룹간 확률차이가 해당 신뢰구간 내에 있는지를 확인하도록 한다.
     

    5.2. 효과 크기

    Evaluation 지표는 통계적으로 유의한 변화 뿐만 아니라, 실질적으로(비즈니스 측면의 최소 유의 경계) 변화가 반드시 있어야 한다.
    • 그룹 간 Evaluation 지표 차이 확인
    • 해당 차이에 대한 신뢰구간 계산
    • 계산된 신뢰구간이 통계적, 실질적으로 유의한지 확인
      • 신뢰구간이 0을 포함하지 않는다면 통계적으로 유의함.(즉, 변화가 있다고 확신할 수 있음)
      • 신뢰구간이 실질유의경계를 포함하지 않는다면 실질적으로 유의함(즉, 비즈니스 측면에서도 변화가 있다고 확신할 수 있음)
    • 클릭>수업 등록 전환율 : Exp -2.06 %, 통계적으로도 실질적으로도 유의미하다.
    • 등록>결제 전환율 : Exp -0.49 %, 통계적으로도 실질적으로도 유의미하지 않다.
    • 등록완료 페이지 진입 수 : Exp -9.56 % , 통계적으로는 유의미하나 실직저으로 유의미하지않다.
    • 결제 수 : Exp -4.32 %, 통계적으로도 실질적으로도 유의미하지 않다.
     

    5.3. 실험 평가 및 next iteration

    • 본 실험의 가설은
    팝업 모달을 띄울 때, 학생들에게 더 명확한 기대치를 제공할 수 있다. 수업 수강에 충분한 시간을 할애할 수 있는 학생(주당 5시간 이상)위주로 결제페이지 유도 시, 수업등록 전환율과 결제 전환율이 증가할 것이다.
    • 그러나 실제로 클릭>수업 등록 전환율은 떨어졌고, 등록>결제 전환율도 유의미한 증가를 보여주지 못했기 때문에 해당 실험은 rollback해야한다.
    🥲
    해당 실험은 설계 단계가 아쉽다. - 수강 완료율을 높이고 싶었다면, 수강신청 퍼널이 아니라 수강 신청 후 퍼널을 개선했어야 했다. 진도율 상승을 위한 적극적인 넛지를 넣고 실제로 해당 가설이 유효한지를 검증해볼 수 있다. (Push Message, 스터디 관리등 추가 프로그램) - 시간이 부족하여 무료 평가판을 떠난 좌절한 숫자를 줄이고 싶었다면 무료체험 종료 후, 결제 취소를 하는 단계에서 추가 연장이나 가격할인과 같은 넛지를 넣어볼 수 있다.
     
    My Next Step →
    https://github.com/renatofillinich/ab_test_guide_in_python/blob/master/AB testing with Python.ipynb
     
    추가로 참고한 자료
    1주 1개 실험하는 프로덕트 팀이 되는 여정
    안녕하세요 당근마켓 중고거래팀에서 데이터 분석가로 일하고 있는 매튜에요!
    1주 1개 실험하는 프로덕트 팀이 되는 여정
    https://medium.com/daangn/1주-1개-실험하는-프로덕트-팀이-되는-여정-b8a4c337a8e1
    1주 1개 실험하는 프로덕트 팀이 되는 여정
    notion image
    GitHub - baumanab/udacity_ABTesting: Project work for Udacity's AB Testing Course
    Project work for Udacity's AB Testing Course. Contribute to baumanab/udacity_ABTesting development by creating an account on GitHub.
    GitHub - baumanab/udacity_ABTesting: Project work for Udacity's AB Testing Course
    https://github.com/baumanab/udacity_ABTesting#summary
    GitHub - baumanab/udacity_ABTesting: Project work for Udacity's AB Testing Course
    베이지안 A/B 테스트 in Python
    베이지안 관점에서 AB Test를 하는 방법에 대해 정리했습니다. 전체 코드는 여기 에서 확인할 수 …
    베이지안 A/B 테스트 in Python
    https://playinpap.github.io/bayesian-abtest/
     
     
    Share article
    Contents
    4. 실험 세팅5. 실험 결과

    hollyisyoon

    RSS·Powered by Inblog