8. A/B 테스트
1. 실제 대상자를 반으로 나눈 후
2. 두 가지 포맷의 테스트 자료(버튼, 이미지 등을 바꿈)를 만들어서
3. 이를 A, B 그룹 각각에 제공
4. 이에 따라 각 그룹이 얼마나 반응했는지를 판단
5. 결과가 우수한 내용을 실전에 반영
9.
10. A/B 테스트의 배경
● 내생성 vs. 외생성
○ 내생성: 해당 시스템 내에서 결정되거나 생성되는 것
○ 외생성: 시스템 밖의 요소로 결정되거나 생성되는 것
● 사용자의 행동
○ 많은 경우 여러 가지 요소가 복합적으로 작용함 -> 외생성 및 고려하는 변수의 영향으로 명확한 요인
및 원인 분석 어려움
○ 많은 실제 상황(실무)의 경우 내생성을 위한 시스템을 일부 요소만으로 구축하기 어려움
● 상관관계는 인과관계를 나타내지 않는다
○ 최대한 다른 요인을 제거함으로써 인과관계에 최대한 가까운 근거를 만들고자 함
11. A/B 테스트 실제 사용 사례
● Highrise
(출처: https://signalvnoise.com/posts/2977-behind-the-scenes-highrise-marketing-site-ab-testing-part-1)
18. 유사실험설계의 특징
● 사회 현상에서의 인과관계 판단용
● 순수실험설계만큼의 통제가 불가한 환경에서 대안적인 방식으로 통제 집단을
구성함
● 외생변수의 개입 가능성이 높음
● 실험에 대한 통제가 적으므로 외적 타당성이 상대적으로 높아 현실 문제 해결에
유용함
19. 실험 설계 과정
● 대상선정: 연구대상을 선정
● 실험환경 선정: 실험실, 실험도구 등의 실험환경을 선정
● 무작위표집: 연구대상을 무작위로 표본추출
● 무작위할당: 추출된 표본을 무작위로 실험집단과 통제집단에 배치
● 사전검사: 두 집단에 종속변수에 대한 사전검사를 실시
● 실험조치: 실험집단에만 실험조치를 실시
● 사후검사: 두 집단에 종속변수에 대한 사후검사를 실시
● 비교 및 검증: 사전, 사후검사 결과 변수 간의 의미있는 변화를 비교
20. A/B 테스트 설계 과정
● 대상선정: 연구대상을 선정 -> 사용자 및 지표
● 실험환경 선정: 실험실, 실험도구 등의 실험환경을 선정 -> 실제/실제 예정 환경
● 무작위표집: 연구대상을 무작위로 표본추출 -> 사용자 무작위 선정
● 무작위할당: 추출된 표본을 무작위로 실험집단과 통제집단에 배치
● 사전검사: 두 집단에 종속변수에 대한 사전검사를 실시 -> 실험 환경 확인
● 실험조치: 실험집단에만 실험조치를 실시 -> 분기
● 사후검사: 두 집단에 종속변수에 대한 사후검사를 실시 -> 실험 환경 재확인
● 비교 및 검증: 사전, 사후검사 결과 변수 간의 의미있는 변화를 비교 -> 결과 분석
21. 목적 지표 선정
● 가설 검정에 가장 직관적이면서 구하기 용이한 지표 선정
● 양적으로 확인 가능한 실질적 지표
○ 감정 정도(사용자 만족도 등) 같은 모호한 지표는 제외함
○ 실험을 통해서 기록되지 않는 데이터가 필요한 수치는 제외함
● 비율 : 사용 흐름상 전 후
○ 퍼널의 실험 참여 단계 -> 실험 결과 반응 단계
○ 예) CTR (Click-Through Rate) : 클릭 수 / 페이지 뷰 수
● 실험 대상 : 사람 -> 지표 대상도 사람이 되어야 보다 정확한 결과를 얻을 수 있음
○ 예: 클릭한 사용자 / 페이지를 본 사용자
22. 지표 관련 대푯값
● 대푯값: 집단의 특성을 반영하는 요약값.
● 평균
○ 지표 생성 시 가장 많이 사용되는 값
○ 전체 집단에서의 분포상 기댓값
○ 소수의 이상치 값에 대한 민감도가 높음
● 중앙값
○ 전체 집단에서 중앙에 위치하는 값
○ 이상치 값에 대한 민감도가 낮음
○ 분포가 쌍봉형으로 되어 있는 경우 한 쪽에 치우쳐서 적당한 대푯값이 되지 않는 경우 발생
● 최빈값
○ 전체 집단에서 가장 많이 나타나는 값
○ 다양한 값을 가지는 경우 적절하지 못함
23. 지표 관련 분포
● 히스토그램
○ 값의 분포를 막대그래프로 나타낸
것
○ 대푯값만으로 판단이 어려울 때
같이 확인할 수 있음
○ 이상치로 인해 대푯값이 기울어진
경우 파악 후 보정할 수 있음
26. 목적 지표의 해석
● 비교 전 확인
○ 실험군과 대조군(A군과 B군)의 사용자 집합 크기가 동일한가?
○ 실험군과 대조군의 사용자 분포가 크게 다르지 않는가?
● 확인 방법
○ 집합 크기가 다름: 1:1 비교 대신 집합 크기를 통한 비교의 유의성 판단
○ 분포 파악: 성질이 다른 집합끼리의 비교는 무의미할 수 있음
● 유의 사항
○ 실험으로 얻은 값은 항상 그와 동일한 결과를 담보하는 것이 아님
○ 실험 크기가 통제가 되지 않을 경우에는 사후 추정으로 판단할 수 있음
27. 이항 분포
● 이항 분포: 매회 사건 X가 일어날 확률이 동일한 독립시행의 경우에 있어서
확률변수X가 따르는 분포
● 클릭 등 간단한 단일 이벤트 대상 A/B 테스트의 경우 다른 서비스 내의 요인은
동일하게 통제된 상태로 사용하므로 해당 이벤트가 발생할 확률은 동일하다고
가정하고, 사용자는 모두 독립적으로 이에 반응한다고 할 때, 이는 이항 분포의
조건에 들어맞는다.
28. 가설 검정
● 통계적 가설
○ 특정 주장을 특정 변수(모수)에 대해서 나타낸 것을 뜻함. (예: 이 수업을 듣는 사람들의 평균 만
나이는 28살이다)
● 절차
○ 귀무가설과 대립가설 설정, 유의수준 설정
○ 검정통계량 설정
○ 기각역 설정
○ 검정통계량 계산
○ 결과 기반 의사 결정
통계적 추측의 하나로서, 모집단 실제의 값이 얼마가 된다는 주장과 관련해, 표본의 정보를 사용해서 가설의
합당성 여부를 판정하는 과정
29. A/B 테스트에서의 가설 검정
● 귀무가설과 대립가설
○ 귀무가설(영가설): 실험군(Pexp)의 결과와 대조군(Pcont)의 결과의 차이가 없을 것이다.
○ 대립가설: Pexp <> Pcont / Pexp>Pcont (two-sided / one-sided )
● 유의수준
○ 95%의 경우 (일반적으로 많이 사용) (1-0.95) = 0.05가 유의수준이 됨
● 유의확률 (p-value)
○ 귀무가설이 맞을 경우에 얻을 수 있는 결과보다 더 극단적인 값이 관측될 확률.
○ P-value 가 작을 수록 귀무가설과 양립하는 데이터가 나타날 확률이 낮음
○ P-value가 작은 경우 귀무가설을 기각함.
○ P-value의 경우 표본 크기가 커짐에 따라 값이 달라지거나 특정 경우에 값이 커지는 등의 문제가
발생할 수 있음 -> 통계적 유의성과 현실 상에서의 문제를 고려해서 결과를 판단함.
30. 결괏값 비교
● 이항 분포의 상태 비교
○ 해당 집단의 크기가 np>5, n(1-p)>5인지를 확인 (일반적으로 정규 분포에 적용하기에 무난한
정도의 확인)
● 비교군의 해당 지표에 대한 신뢰구간을 구한 뒤 실험군의 지표의 크기가 이 신뢰
구간에 들어가는지(유사), 벗어나는 지를 확인함
○ 간단하게 독립 t-검정 등을 사용해서 유의성 및 차이 비교 가능
○ R, 파이썬, Excel 등의 함수 사용 (t.test 등)
○ A/B test calculator 사이트들(예: https://neilpatel.com/ab-testing-calculator/) 에서는 기본적으로 이를
기반으로 함
34. Shopping Mall Case
● 목적: 판매량 증대
● 가설: 구매 시점에 신뢰도 및 결제
정보 등을 사용자에게 제공하면
사용자가 더 구매를 하게 될 것이다
● A/B 테스트: 기존의 사이트와 신뢰
및 결제 정보를 구매 버튼 근처에
추가한 사이트를 사용자에게
임의로 제공
● 기간: 7일
36. 실험 설계 시 유의점
● 목표와 가설의 애매함
○ A/B 테스트 같은 실제 환경에서의 실험에서는 실험 연구법과 같이 확정된 데이터와 연구환경이
존재하는 것이 아니라서 문제와 가설이 애매할 수 있음
○ 선행연구, 최대한 수치로 표현할 수 있는 정확한 목표 및 가설 설정, 관련 분야의 전문가의 자문 필요
● 데이터 수집
○ 사회윤리에 반하는 자료수집의 금지
○ 정확한 도구 제작의 어려움
○ 사회윤리에 반하지 않아도 사생활 관련 데이터 수집은 실험에 적절하지 않음
37. 실험 설계 시 유의점
● 자료의 정리와 구조 설정
○ 데이터의 집계 기준을 실험 전에 명확하게 설정해 놓아야 함
○ 데이터의 사용 방식 및 수집 절차 등에 대한 명확한 정의 필요
● 해석설계의 문제
○ 실험 전에 해석 방식 및 기준을 명확하게 마련해 두는 것이 좋음
○ A/B 테스트를 반복할 수 있으면 반복하는 것이 좋으나 일반적으로는 어려움
○ 데이터 수집 후 해석 방식을 부득이하게 변경해야 하는 경우 최대한 원래 실험의 목적과 지표를
해치지 않는 선에서 활용
● 자료의 해석문제
○ A/B 테스트의 결과는 해당 시점에서의 결과일 뿐이므로 작은 숫자 등에 너무 집착하지 않는다
○ 서비스의 특성에 따른 시계열성이나 사용자 특징 등을 고려해서 결과를 해석
○ 최종 결과는 서비스의 목적이나 운영 방식 등을 반영해서 사용한다.
38. 서비스 실험 설계 시 사용자 대상 주의점
1. 사용자에게 서비스에서 기본적으로 주어지는 것 이상의 위험을 감수하게 해야 할
가능성이 있는가?
a. 건강, 재정, 심리적, 사회적 불이익의 가능성이 있는 실험 요소는 배제되어야 함
2. 사용자가 해당 서비스 및 실험을 통해 어떤 데이터가 수집되고 있는 지를 이해하고
있는가?
a. 사용자 고지 의무
3. 실험 사용자 데이터가 식별 가능한가?
a. 개인 식별이 아니라 서비스 내에서의 사용자 식별도 실험 윤리에 어긋날 수 있음
4. 데이터는 어떤 식으로 처리되고 있는가?
a. 공개 범위 및 사용 범위 명시 및 관리
39. 실험 후 서비스 운영시 주의점
● 실험 관련 내용은 기록으로 남겨두도록 함
● 한 번에 과하게 많은 실험은 가능한 한 피하도록 함
○ 실험 간에 영향을 미칠 수 있음
○ 데이터 기록에 문제가 생길 수 있음
○ 사용자를 모두 구분하는 경우 모수가 불충분한 경우가 발생할 수 있음
● 사용성이 불안정적이 되지 않도록 유의함
● 이후 여러 데이터 분석 시에 이전 실험 내용으로 인한 영향이 미치지 않도록 함
○ 실험 사용자는 따로 목록을 만들어 둔 후 이후에도 확인할 수 있도록 함
○ 사용자에 대한 추적 분석을 통해서 이후 사용성에도 실험 내용이 영향을 미칠 수 있는 지를 확인해
두는 것 필요
● A/B 테스트를 자주 할 경우 관련 API 등을 구성해 두는 것도 필요
41. MAB 알고리즘
● 강화학습의 하나로, 결과를 보면서 집단을 선택적으로 조절하는 알고리즘
● Exploration-Exploitation Trade off 문제를 위해 성과와 테스트 효과 모두를
최적으로 가져올 수 있게 하는 방법론 및 알고리즘을 총칭함
● A/B 테스트에서의 집단의 크기를 지속적으로 조율함
42. MAB 알고리즘
● ε-greedy
○ MAB 알고리즘 중 가장 직관적이어서 널리 쓰이는 알고리즘
○ 1−ε의 확률로 지금까지 관측한 arm 중에 가장 좋은 arm을 고르고 (exploitation), ε의 확률로
나머지 arm 중에서 임의로 arm을 골라서 실행하는 (explore) 알고리즘
■ 1−var(ε)의 확률로 지금까지 empirical reward가 가장 좋은 arm을 고른다.
■ var(ε)의 확률로 임의의 나머지 arm을 고른다.
○ 알고리즘을 수정해서 활용 가능
● UCB
○ empirical mean이 가장 좋은 arm을 실행하는 대신, 시간 t마다 과거의 관측결과와 확률 계산을
토대로 구한 각각의 arm i의 upper confidence bound (UCB)를 구하고 이것이 가장 좋은 arm을
고르는 알고리즘
■ i=arg maxi
μi
+Pi
. 에 해당하는 arm i를 고른다.
■ Pi
에 따라 UCB가 다양하게 만들어짐
43. MAB 알고리즘
● Thompson Sampling
○ Probability matching이라고도 하며, GA의 MAB 기능에서 사용되는 알고리즘
○ 각각의 시간 t마다 정책에 따라 action a를 선택하고, 그에 상응하는 reward r을 받는다고 가정했을
때, 관측값 observation (at
,rt
)과 parameter θ를 사용해 likelihood function Pr[r | a,θ]를 설계한
다음, prior를 가정해 MAP 문제를 해결
■ Maximize 𝔼[r | a]=∫𝔼[r | a,θ]Pr[θ | D]dθ.
○ m-1개의 arm은 empirical result가 제일 좋은 arm을 고르고, 마지막 m번째 arm만 Thompson
sampling으로 푸는 방법 등 여러 arm을 고르는 방식으로 확장 가능
44. Summary
● A/B 테스트란?
● A/B 테스트를 사용한 주변 사례
● A/B 테스트 설계 (유사실험설계 중) 방법
○ 주제 선정 -> 지표 및 관련 기준 설정 -> 실험 환경 설정 -> 사용자 분기 및 데이터 수집 -> 지표 확인
● A/B 테스트 결과 확인
○ 이벤트의 형태 및 분포 확인
○ 퍼널을 통한 지표값 수집 -> 집계 -> 가설 검정을 통한 확인
● 유의사항
○ 실험 설계 및 사용자 대상 유의사항, 서비스 운영 시의 유의사항 확인
● 그 외 테스트
○ MAB 알고리즘, 다변량 테스트