Loading output library...

A/B Testing

#A/B-Testing
  • 광고 A와 광고 B 중 어떤 광고가 좋은 광고일까?
  • CTR (Click Through Rate): 사이트에 들어온 사람이 광고를 누르는 비율

=>CTR을 통해 사람들에게 광고가 얼마나 노출이 됐는지 알수 있음

  • Conversion Rate: 방문자중 실제 광고를 통해 구매하는 비율

=> Conversion Rate은 광고가 실제 구매로 이어지에 대한 척도

목차

  1. Review: Frequentist Approach
  1. t-Test
  1. Proportion Z-Test
  1. 시뮬레이션을 통한 P-value 문제점 확인

1. Review: Frequentist Approach

#1.-Review:-Frequentist-Approach

광고 A와 광고 B를 비교한다는 것은 두 그룹을 비교한다는 것

P-value

  • 귀무가설이 참일 때 실제 관측한 것 보다 더 극단적인 결과를 얻을 확률
  • p-value가 작다

=> 귀무가설이 참일 때 내가 관측한 데이터보다 더 극단적인 증거가 나타날 확률 적음

=> 내가 갖고 있는 데이터가 충분히 극단적임

=> 귀무 가설을 기각

Statistical Power

  • Power = P(reject @@0@@ is true)

  • Sensitivity와 같은 개념

  • 1-Power=P(Not reject @@1@@ is true)

  • (Not reject @@2@@ is true)을 Type2 에러라고 함 (FN)

  • Power가 높아지면 대립 가설이 참일 때 귀무가설을 기각하지 못할 확률이 낮아짐 (바람직)
  • @@0@@=P(Not reject @@1@@ is true)로 Type2 에러의 확률 (FP)
  • @@2@@=Power
  • 즉 Type2 에러 확률을 낮추기 위해 Power를 높이고 싶음

Power analysis

  • 실험을 위해 sample이 얼마나 필요한지 분석하는 방법
  • Power는 sample size와 effect size(두 그룹 간의 차이)에 영향을 받음
  • Sample size는 검정 통계량, p-value에 직접적인 영향
  • 또한 Sample size와 effect size가 클 수록 power가 높아짐

샘플 사이즈 정하는 방법 (Rule of Thumbs)

  • @@0@@
  • @@1@@: 데이터의 분산
  • @@2@@: 발견하고 싶은 최소한의 차이 (effective size)
  • 발견하고 싶은 차이가 작을 수록 필요한 샘플의 수가 늘어남

1) p-value 문제점: 유의 수준

  • 유의 수준을 5퍼센트로 설정했을 때 A그룹과 B그룹이 같은데도 5%의 시행에서는 유의하다고 오판할 수 있음
  • 예를 들어, 1번 시나리오에서는 500개의 샘플, 1000개의 샘플, 5000개의 샘플에서 모두 유의하지 않다고 하지만
  • 2번 시나리오에서는 유의하지 않다고 했다가 유의, 유의 하다고 할 수 있음

=> 5%의 시행에서는 유의하다고 오판 가능성

=> 일관 된지 않은 결론 내릴 수 있음

2) p-value 문제점: Type 2 에러의 가능성

  • p-value가 높다

=> 귀무가설이 참일 때 내가 관측한 데이터보다 더 극단적인 증거가 나타날 확률 높음

=> 내가 갖고 있는 데이터가 충분히 극단적이지 않음

=> 귀무 가설을 수용하지 않음 (Not reject @@0@@)

  • 하지만 귀무 가설을 수용하지 않은 것이 Type2 에러를 저질러서 일 수 있음

=> 즉 statistical power가 충분하지 않아서 대립가설이 참인데도 귀무가설을 기각하지 못 해버림

3) p-value 문제점: Sample size

  • 2번과 같은 맥락으로 샘플사이즈가 적으면 파워가 약해짐
  • 데이터의 분산이 클 수록 더 많은 데이터가 필요함
  • 하지만 샘플 사이즈가 안 커도 판단을 내릴 수 있을 때가 있음
  • 예를 들어 신약을 테스트할 때, 약에 대해 과학적으로 알기 때문에 확신이 있는 경우
  • 테스트 진행 후, 확실히 잘 작용했지만 테스트를 미리 끝내고 신약을 미리 배포할 수가 없음
  • Conversion rate를 비교할 때 B 사이트가 훨씬 구매로 많이 연결되는데도 중간에 실험을 중단 못함

4) p-value 문제점: 직관적인 해석의 문제

  • 집단 간의 비교를 할 때 p-value는 2 그룹이 차이가 없다고 했을 때 차이를 발견할 확률이라고 할 수 있음
  • 이미 집단 간의 차이가 없는 상황에서 차이가 있는 것을 발견해야 하는 확률이라고 하여 비전공자와의 소통이 어려움

2. t-Test

#2.-t-Test

1) 가설, 가정, 통계량

가설

  • @@0@@

두 그룹 간의 차이가 있는가를 확인하는 방법

가정

  1. @@0@@

:두 집단이 모두 정규 분포를 따름

  1. 두 집단 간의 분산의 차이가 없음

통계량

  • @@0@@
  • @@1@@
  • @@0@@의 차이가 커질 수록 T 값이 커짐 => 두 집단이 다를 가능성이 커짐
  • @@1@@가 커지면 T는 급격히 감소 => 두 집단이 같을 가능성이 커짐
  • N(sample size)가 작아질 수록 T가 감소 => Sample Size가 작으면 기각할 확률이 줄어 들음
  • Test static의 분포에서 극단적인 값이면 귀무가설을 기각

2) 정규성 검정

Shipro Test를 통해 정규성 검정

  • @@0@@: 데이터가 정규성 분포를 따름

=> 해석

  • 첫번째 값은 T값, 두번째 값은 p-value
  • 남자 집단과 여자 집단 모두 p-value가 높음
  • @@0@@을 기각 못해 두 데이터 모두 정규성을 따름

Levene Test를 통한 동분산 검정

  • @@0@@
Loading output library...
  • Levene Test를 했을 때 유의하지 않음
  • 귀무가설을 기각하지 못함 => 동분산성을 가정할 수 있음

=> 해석

  • p-value가 거의 0에 가까움
  • 귀무가설이 참일 때 내가 관측한 데이터보다 더 극단적인 증거가 나타날 확률 적음 => 내가 갖고 있는 데이터가 충분히 극단적임
  • @@0@@기각
  • 남자 집단과 여자 집단의 차이가 있다

3) 만약 두 집단의 분산이 다르면?

Welch's t-test

  • 절차는 똑같지만 T 값과 자유도가 다름
  • @@0@@
  • @@1@@
  • 자유도 복잡

=> 해석

  • p-value 매우 작아 귀무 가설 기각 (유의하다)
  • 두 집단 간에 차이가 있다

4) 분포 가정을 사용하지 않을 때

Nonparametric Test

  • Kolmogorov-Smirnov Test
  • Kruskal Wallis test
  • Mann-Whitney U test
  • 가정이 적기 때문에 파워가 작아짐
  • 따라서 유의하기 위해서는 p-value가 더 극단값이어야 됨
Loading output library...
Loading output library...
  • Kolmogorvo, Mann-Whitney U test 모두 귀무 가설 기각

5) 데이터 예제

  • 데이터: 광고 A와 광고 B의 클릭 횟수
  • 접속자가 광고 A나, B 둘 중에 하나는 무조건 클릭 (현실과는 거리가 있음)
  • 광고 A와 광고 B는 차이가 있을까?
Loading output library...
Loading output library...
Loading output library...
  • 클릭을 했는지 안했는지의 이산형 데이터이기 때문에 정규성을 만족 안 함
  • t-Test는 연속형 데이터에서 가능하지만 연습을 위해 그냥 진행
Loading output library...
  • Shapiro Test 결과 광고 A와 광고 B가 모두 p-value 매우 낮음
  • 정규성 가정을 기각 (정규성 따르지 않음)
Loading output library...

Lenven Test 결과 두 집단 간의 분산에 차이가 있음

Loading output library...

p-value는 0.0013으로 두 집단 간에 차이가 있음

3. Proportion Z-Test

#3.-Proportion-Z-Test

위와 같이 횟 수에 대한 데이터일 때는 집단 간에 비교를 어떻게 할까?

1) 가정, 가설, 통계량

@@0@@: A 사이트에서 광고를 클릭한 횟수

@@1@@: B 사이트에서 광고를 클릭한 횟수

A와 B는 독립


@@0@@

@@3@@

@@0@@

@@1@@

Test statistic: @@2@@

Loading output library...

=> p-value가 낮아 귀무 가설 기각 (두 집단의 평균에는 차이가 있다)

3. Pearson Chi-squared Test

#3.-Pearson-Chi-squared-Test

Conversion rate가 A를 선택하는지 혹은 B를 선택하는지에 차이가 있을까?

Pearson Chi-squared Test는 Contingency table을 통해 이 문제를 접근

@@0@@: Group A와 Group B는 독립이다 => A를 선택하든 B를 선택하든 차이가 없다

@@1@@: Group A와 Group B는 독립이 아니다 => A를 선택하든 B를 선택하든 차이가 있다

@@0@@: A 사이트에서 광고를 클릭한 횟수

@@1@@: B 사이트에서 광고를 클릭한 횟수


@@0@@

Chisquare test

  • 통계량: @@0@@ Test statistic
  • 독립이라고 가정했을 때의 예상 빈도수와 실제 관측 된 빈도수의 차이가 커져 통계량 역시 커짐
Loading output library...
  • p-value가 0.001f로 매우 낮아 귀무가설 기각
  • A,B의 선택 여부가 차이가 있음

여러 집단 간의 비교

1) Post Hoc Testing

  • N개의 그룹이 있으면 Nx2 contingency table을 만듦
  • 거기에 바로 Chi-square test
  • 유의한 p-value가 나오면 다음의 post-hoc test 진행

2) Pairwise Testing (Bonferonni)

  • 두 집단씩 비교
  • @@0@@
  • P-value < @@1@@ => 유의하다 (차이가 있다)

3) One vs Rest

  • 나머지 그룹의 카운트를 다 더함
  • N개의 그룹이 있으면 N번의 테스트
  • @@0@@
  • P-value < @@1@@ => 유의하다 (차이가 있다)

4. 시뮬레이션을 통해 P-value의 문제점 확인

#4.-시뮬레이션을-통해-P-value의-문제점-확인

Conversion rate 0.1퍼센트의 차이가 중요할 수 있음

  • 예를 들어, 1백 만명이 홈페이지에 방문할 때 20원 짜리 상품을 1%의 고객이 구매하면 20만원의 수익
  • 이때 conversion rate은 1%
  • 만약 conversion rate을 1.1%로 늘리면 10퍼센트의 수익이 증가하게 됨

데이터가 점점 늘어날 때 p-value는 어떻게 변할까?

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

실험 설계

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

2) @@0@@

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

4) 클릭할 때마다 contingency table 업데이트

5) 카이스퀘어 통계량 계산하여 p-value를 구해 두 집단의 평균이 같은지 확인

6) 클릭 횟수에 따라 p- value의 변화 관찰

Loading output library...

분석 결과

  • 주황색 선은 유의 수준 0.05, 파란색 선은 p-value
  • 두 집단의 평균은 0.1, 0.11로 다르기 때문에 유의하다는 결론에 도달 해야 됨
  • 즉 p-value는 총 시행 중 최대 5%가 주황색 선 밑에 있는 것을 허용
  • 하지만 시뮬레이션 결과 많은 구간에서 주황색 아래(시뮬레이션 할때 마다 크게 변동)
  • 또한 어떤 구간에서는 두 집단의 차이가 있다가 없다고 했다가 그 결론이 계속 변함

시뮬레이션을 통한 p- value의 문제점

  • 평균이 다르다는 것을 아는 상태로 시뮬레이션 했는데도 일관된 결론을 못 내림
  • 유의하지 않다는 것이 두 집단간의 차이가 없는 것인지 데이터가 아직 부족한지 알 수가 없음
  • 데이터가 얼마나 많아야 되는지 알기가 어려움 (언제 테스트를 멈출지 알 수 없음)