안녕하십니까 다제입니다.
오늘은 A/B test에 대해서 공부를 해보겠습니다.
과연 A/B test는 무엇이고, 왜 사용하며, 어떻게 설계를 해야하고, 평가는 어떻게 해야하는지에 대해서 알아보도록 하겠습니다.
사실 A/B 테스트를 조사하다보니 A/B 테스트가 생물학에서 파생되었더라구요.
조사를 하다보니 분자학 전공 시절이 떠올랐는데요. A/B 테스트는 로널드 피셔(통계학의 대가)에 의해 발명되었다는 설이 있습니다. 영국의 통계학자인 로널드 피셔가 동료들과 차를 마시다가 홍차에 우유를 넣는것이 맛있다 또는 우유 넣고 홍차를 넣어야 맛있다는 논쟁을 증명하기 위해 실험이 시작되었고, 이를 생물학에 적용하면서 사용되었다고 합니다.
최근에는 21세기에는 오마바 캠프에서 활용하면서 A/B 테스트가 매우 활성화 되었다고 합니다.
그럼 과연 A/B 테스트가 무엇인지 딥하게 공부해보겠습니다.
1. A/B 테스트 정의
임의로 나눈 두 집단에게 서로 다른 컨텐츠를 제시한 후 두 집단 중 어떤 집단이 더 높은 성과를 보이는지 정량적으로 평가하는 방식으로 "무작위 비교연구"라 불리는 방법을 서비스에 적용하는 방법론입니다.
2. A/B 테스트 설계
1) 대상선정 : 사용자 및 평가지표
-. 지표를 사용하기 전, 반드시 지표의 분포를 살펴보아야 합니다.
-. A/B 테스트 결과를 확인 할 수 있는 지표를 명확히 해야합니다.
-. 이 부분을 간과하는 경우가 많은데, 실험 전에 평가지표를 유관부서와 명확히 해야합니다.
-. 당연히 지표는 비율 단위로 계산할 수 있도록 선정 해야합니다.
-. 사용자 단위 또는 디바이스 단위로 비율을 계산하는 것이 좋습니다(한사람이 여러번 클릭 할 수 있기 때문입니다.)
ex) 좋은 지표 : 전환율, 기부상승율 등 / ex) 안좋은 지표 : 사람들이 좋아할 것이다 등
2) 실험환경 선정 : 실제/실제 예정 환경 구성
3) 무작위표집 : 사용자 무작위 선정
4) 무작위할당 : 추출된 표본을 무작위로 실험집단과 통제집단에 배치
5) 사전검사 : 실험하고자 하는 환경에 대한 이전 상황 확인
-. A/A 테스트
6) 실험조치 : 실험집단에만 실험조치 실시
7) 사후검사 : 실험 결과 확인
8) 비교 및 검증 : 사전, 사후 검사 결과 변수 간의 의미있는 변화 비교 & 분석
3. A/B 테스트 평가
1) funnel 분석을 통해 변화량을 확인
2) 분포확인하기
-. Shapiro-wilk test로 A, B group의 정규성(normality)를 확인합니다. 참고링크
Shapiro-wilk test : 정규성을 확인하는 방법이다.
해석
H0(귀무가설) : 데이터가 정규분포를 따르며, 결과값은 False이다. → p-value > α(alpaha)
H1(대립가설) : 데이터가 정규분포를 따르지 않으며, 결과값은 True이다. → p-value < α(alpaha)
* 만약 정규분포이다면, 다다음 단계에서 t-test를 진행할 수 있기 때문입니다. 참고링크
해석
H0(귀무가설) : A와 B의 평균이 같다면, 결과값은 False이다. → p-value > α(alpaha)
H1(대립가설) : A와 B의 평균이 다르다면, 결과값은 True이다. → p-value < α(alpaha)
* 만약 정규분포가 아니다고 확인되면, 비모수검정(Non-Parametric Test)를 진행합니다.
-. Shapiro-wilk test를 통과한다면 Levene Test를 활용하여 A,B group의 분산이 동일한지 확인합니다.
Levene Test : 분산이 같은지 확인하는 방법이다.
해석
H0(귀무가설) : A와 B의 분산이 같다면, 결과값은 False이다. → p-value > α(alpaha)
H1(대립가설) : A와 B의 분산이 다르다면, 결과값은 True이다. → p-value < α(alpaha)
* Levene Test 결과 분산이 같다면, T-Test를 진행합니다.
* Levene Test 결과 분산이 다르다면, WelchTest를 진행합니다. 참고링크
Welch Test : 표본의 평균차이 검정 (모집단의 분산이 같지 않을 수 있다는 가정하에 함)
해석
H0(귀무가설) : A와 B의 평균이 같다면, 결과값은 False이다. → p-value > α(alpaha)
H1(대립가설) : A와 B의 평균이 다르다면, 결과값은 True이다. → p-value < α(alpaha)
-. Shapiro-wilk test를 통과 못한다면 Mann Whitney U Test 활용하여 어떤 차이가 있는지 확인합니다. 참고링크
3) 가설 검정
-. 귀무가설과 대립가설 설정, 유의수준 설정
* 귀무가설이 맞을 경우에 얻을 수 있는 결과보다 더 극단적인 값이 관측될 확률
* p-value가 작을수록 귀무가설과 양립하는 데이터가 나타날 확률이 낮음
* p-value가 작은 경우 귀무가설을 기각함
* p-value의 경우, 표본 크기가 커짐에 따라 값이 달라지거나 특정 경우에 값이 커지는 등의 문제가 발생될 수 있음
→ 통계적 유의성과 현실 상에서의 문제를 고려해서 결과를 판단해야합니다.
-. 검정통계량 설정
-. 기각역 설정
-. 검정통계량 계산 : 1-sample-ttest, 2-sample-ttest 등
-. 결과 기반 의사 결정
4. A/B 테스트 고려사항
1) 테스트 하고자 하는 변수를 제외한 나머지 변수는 동일하도록 구성해야 합니다.
2) 고객들에게 자신들이 실험의 대상으로 인식될 수 있기 때문이다. A/B 테스트는 매우 신중히 운영을 해야한다.
3) 사용자에게 고지 의무가 있으므로 꼭 고지를 해야합니다.
4) 건강, 재정, 심리적, 사회적 불이익의 가능성이 있는 실험 요소는 배제되어야 합니다.
5. 코드
-. 프로젝트를 진행한 결과물을 공유드리오니, 자세한 내용은 참조링크 확인 부탁드립니다.
오늘도 긴 글 읽어주셔서 너무 감사드립니다.
앞으로도 좋은 글 많이 올릴테니 자주 방문하여 주세요
감사합니다.
'Code > 기타' 카테고리의 다른 글
윈도우에서 개발환경 세팅하기(feat. Linux, ubuntu, powershell) (0) | 2022.01.23 |
---|---|
Proxy Server 란 무엇인가? (feat. 프로시 서버) (0) | 2021.12.08 |
[Machine Learning] AI 면접 예상 질문 정리 (0) | 2021.06.12 |
[자료구조] 17. 최단 경로 알고리즘 이해하기(feat. codestates, self tutorial) (0) | 2021.05.17 |
[자료구조] 16. 그래프 탐색 이해하기(feat. codestates, self tutorial) (0) | 2021.05.17 |