해당 게시글은 머신러닝을 활용한 웹 최적화 (한빛미디어, 이쓰카 슈헤이 저자)를 읽고 작성한 글이지만,
일부 예시만 인용하고 나머지는 제 생각이나 공부한 내용을 담은 글이라 실제 책의 내용과 다른 구성을 취하고 있습니다.
AB 테스트를 하는 상황
"웹"이라 함은 역시 뭐니뭐니해도 AB 테스트가 제일 베이직한듯 하다. 두 가지 다른 버튼 디자인(A안, B안)에 따라 클릭률(CPR)의 지표를 비교하는 상황이다.
앨리스의 보고서 | A안 | B안 |
표시 횟수 | 40 | 50 |
클릭 횟수 | 2 | 4 |
클릭률 | 5% | 8% |
밥의 보고서 | A안 | B안 |
표시 횟수 | 1280 | 1600 |
클릭 횟수 | 64 | 128 |
클릭률 | 5% | 8% |
앨리스와 밥의 보고서 모두 A안의 클릭률이 5%, B안의 클릭률은 8%이다.
이 때 단순히 B안의 CPR이 더 높기 때문에, B안이 정말 더 CPR이 높다고 말해도 되는지를 보려고 한다.
빈도주의 방법 - t-test
이 때 가장 스탠다드하게 쓸 수 있는 방법은 아마도 독립표본 t-test일 것이다. 유저의 클릭 여부를 확률 변수로 놓고 보면, (클릭한다 = 1, 클릭하지 않는다 = 0) 베르누이 분포(또는 이항분포)를 가진 2표본을 비교하는 전형적인(?) 상황이다.
독립표본 t-test를 사용할 때는 몇 가지 가정이 필요한데,
- 말 그대로 독립표본이기 때문에 A안과 B안의 표본이 독립적이어야 하고,
- 데이터가 정규성을 지닌 분포에서 나왔는지 확인해야 하고,
- 등분산을 가졌는지 체크해봐야 한다.
베르누이 분포를 가진 상태에서는 표본비율(success / trial)이 모수를 추정하는 estimator가 된다. estimator에 대해서도 할 이야기가 참 많은데, 다 쓸 수는 없고(사실 기억도 가물가물함) 까먹방지용으로 이게 뭔데 X덕아 라는 느낌으로 주절주절 써보면,
- 베르누이 분포는 exponential family이다.
- 특정 분포가 exponential family를 따르는 경우의 pdf(pmf)는 exp[p(θ)K(x) + H(x) + q(θ)]의 모양을 갖는데,\(Y_1 = \sum_{k=1}^K K(x)\)는 complete sufficient statistic이다.
- complete sufficient statistic는 UMVUE (uniformly minimum variance unbiased estimator, 유일한 최소분산비편향 추정량)을 만들 수 있다.
(아무튼 좋다는 뜻임)
밥과 앨리스의 결과 모두 베르누이 분포를 따르고, 정규성 분포에 가까운 결과가 나온다.
또한, 파이썬으로 간단히 돌려봤을 때 등분산 가정을 만족한다.
두 가지 안의 클릭률이 다르지 않다는 것을 귀무가설로 놓고 볼 때, 귀무가설이 맞다는 가정 하에서 검정통계량은 아래와 같이 나온다.
\( T = (\hat{p_1} - \hat{p_2}) - (0) / s_p (\frac{1}{n_1} + \frac{1}{n_2}) \) ,where \(s_p\) = pooled standared deviation
파이썬 코드를 가져다 쓰면
from scipy import stats
stats.ttest_ind(alice_a, alice_b, equal_var= True)
대충 요런 모양이 나온다. (pooled standard deviation 정도는 컴퓨터 손을 빌리면 금방이다. )
요약하면, t-test의 검정통계량을 구성하여 A안과 B안의 클릭률이 같은지 아닌지 검정한다.
검정 결과, 책에서 만든 예시라 그런지 sample이 적은 앨리스의 보고서는 A안과 B안 간의 차이가 통계적으로 유의하게 나타나지 않고, sample이 많은 밥의 보고서는 통계적으로 유의한 결과가 나온다.
베이지안 방법 - 켤레사전분포를 통한 사후분포 갱신
베이지안과 빈도주의의 가장 큰 차이는
- 베이지안은 연구자의 주관적인 믿음을 가진 사전분포(prior distribution)를 사용한다
- 빈도주의는 모수(parameter)는 고정되어 있지만, 단지 우리가 모르기 때문에 추정해야 하는 요소로 취급한다면,
- 베이지안은 모수 역시 확률변수로 보고, 데이터를 수집하며 값을 갱신해나갈 수 있다고 본다는 것이다. (posterior distribution, 사후분포 개념)
위에 간단히 말했듯 밥과 앨리스가 수집한 데이터 자체는 베르누이 분포를 따른다.
내가 수집한 데이터가 베르누이 분포를 따른다는 것을 sampling distribution이 베르누이 분포를 따른다고도 표현할 수 있다.
sampling distribution이 베르누이 분포를 따를 때 사전분포(prior distribution, 내가 조사를 진행하기 전의 모수에 대한 믿음을 수학적으로 표현한 것)가 베타 분포(beta distribution)를 따른다면 사후분포 역시 베타 분포를 따르게 된다.
이는 베르누이 분포(bernoulli distribution)와 베타 분포(beta distribution)이 conjugate 하다고 표현하는데 아무튼 sampling distribution이 베르누이 분포를 따를 때 사전분포를 베타 분포로 구성하면, 사후 분포는 별 계산 없이 바로 베타 분포로 구할 수 있어서 굉장히 용이하다.
사전분포와 sampling distribution을 통해 얻은 likelihood를 통해 사후분포(posterior distribution)를 갱신할 수 있고, 해당 사후 분포에서 모수를 샘플링하여 얻어낼 수 있다. 이를 몬테카를로 시뮬레이션이라고 하는데 아무튼 몬테카를로 시뮬레이션을 통해 얻은 A안의 클릭률(모수1)과 B안의 클릭률(모수2)를 각각 비교하여 클릭률의 차이가 있는지를 검정할 수 있다.
이 경우에도 샘플이 작은 앨리스는 클릭률의 차이가 있다고 보기에는 좀 긴가민가한 결과가 나왔다면,
밥의 보고서에는 A안보다 B안의 클릭률이 더 높다고 말할만한 유의미한 결과가 나온다.
'ML,DL' 카테고리의 다른 글
강화학습 뉴비의 강화학습 기초 개념 학습기 (2) | 2024.02.24 |
---|