Loading output library...

Bayesian Two sample Test

#Bayesian-Two-sample-Test

참고: Stucchio, C. (2015). Bayesian A/B Testing at VWO. Whitepaper, Visual Website Optimizer.

데이터 출처: https://github.com/lazyprogrammer/machine_learning_examples/tree/master/ab_testing

목차

  • Binomial - Beta
  • Poisson - Gamma
  • Simulation

1. Binomial - Beta

#1.-Binomial---Beta
  • 베이지안은 모수를 확률 변수로 보는 관점
  • @@0@@: A,B 사이트에서 각각 광고를 클릭한 수
  • @@1@@: A,B 사이트에서 각각 광고를 클릭할 확률

가정

데이터의 분포: @@0@@

사전 분포: @@1@@

사후 분포: @@2@@

베이지안 방법의 특징

  • 사전 분포 Beta는 Binomial 분포의 Cojugate prior로 사후 분포를 쉽게 계산할 수 있음
  • 데이터가 쌓일 수록 사전 분포의 힘은 약해짐
  • 이제 Frequentist와 같은 가설을 수립할 필요가 없어 p-value를 안 구해도 됨
  • @@0@@을 계산할 수 있음

Monte-Carlo Simulation

@@0@@은 구할 수는 있지만 상당히 복잡하기 때문에 Monte-Carlo Integration을 통해 추정

1) @@1@@

: 사후 분포

2) @@2@@

: 사후 분포에서 @@3@@ 샘플링

3) @@4@@

: 샘플링 된 @@5@@의 함수를 통해 추정 (샘플링 수가 많아질 수록 수렴)

  • 사전 분포에 대한 정보가 없기 때문에 @@0@@의 Non-informative prior 사용
  • B 광고를 더 클릭할 확률 @@1@@로 A 광고 보다 압도적으로 높음
  • 왼쪽 파랑색은 A광고를 클릭할 확률의 분포 오른쪽은 B 광고를 클릭할 확률의 분포

2. Poisson - Gamma

#2.-Poisson---Gamma

포아송 분포의 가정

1) 한 구간 (짧은 시간) 동안 0번에서 최대 K번의 사건 발생

2) 구간 간의 사건은 독립적

3) 두 가지 사건은 동시에 일어 날 수 없음

4) 사건의 발생이 매우 드뭄

모델

각 집단에 대해

데이터의 분포: @@0@@

Loading output library...

데이터 예제

  • 매년 프러시아 경기병이 말 발차기에 죽은 숫자
  • 1875년 부터 1894년 (총 20년)
  • 호위대(GC)와 15개의 군단 (C1~C15)
Loading output library...
Loading output library...
Loading output library...

=> 포아송 분포의 타당성

  • 데이터가 횟 수에 대한 데이터
  • 왼쪽으로 치우친 데이터이며 사건이 발생 안한 것보다 한번 발생한 횟수가 많음
  • 또한 사고가 발생 안한 경우가 상당히 많음
  • 이로 보아 포아송 분포를 따르는 것으로 보임

C14가 C11보다 사고가 많이 발생할 확률은 0.44

Loading output library...
Loading output library...

C11의 사후 분포가 약간 오른쪽에 있고 두 분포의 모양이 거의 비슷함

Loading output library...
Loading output library...
  • 각 군단의 사고가 발생할 확률의 분포(사후분포)를 비교하면 C14(주황색)의 대부분이 맨 오른쪽에 있음
  • C14의 사고 발생 확률이 가장 높음

3. Simulation

#3.-Simulation

데이터가 얼마나 있어야 광고 간의 차이를 알 수 있을까?

차이가 작아도 베이지안 방법으로 파악할 수 있을까?

:평균 클릭 수가 0.1인 집단과 0.11인 집단

실험 설계

1) 1,2 집단에 대해 클릭 했는지 안했는지에 대한 2by2 contingency table을 만듦

2) @@0@@

3) Uniform 분포에서 뽑은 @@1@@가 평균보다 작으면 클릭을 한 것으로 카운트 (0.1, 011 확률로 클릭함)

4) 클릭할 때마다 성공 횟수 혹은 실패 횟수 업데이터

5) 1,2 집단의 사후 확률 업데이트

6) 2번 집단이 높을 확률 구함

Loading output library...
Loading output library...
  • 약 700번 정도 클릭 했을 때 부터 2번의 확률이 계속 높아짐
  • 만 번을 넘었을 때 부터는 안정적으로 2번의 확률이 높은 쪽으로 수렴
  • 일정 수의 데이터가 쌓이면 2번의 확률이 계속 높음
  • 언제 테스트를 멈춰야 할지 알 수 있음

Frequentist와의 연관성

  • X를 동전을 던졌을 때 앞면이 나올 확률이라고 하면 X는 Bernoulli 분포를 따름
  • Frequentist에서는 데이터가 많아지면 CLT에 의해 @@0@@로 수렴함
  • Bayesian에서 Uniform 사전 분포를 이용했을 때 사후 분포는 @@1@@의 분포와 어떻게 차이가 날까?
Loading output library...
Loading output library...
  • 사후 분포가 데이터가 쌓일 수록 @@0@@와 거의 일치하게 됨
  • 데이터가 쌓일 수록 사전 분포의 힘이 약해지기 때문