A/B 테스트와 통계적 가설검정
A / B 테스트
- 웹 사이트 만들 때 고객마다 다른 사이트 화면을 보여줄 수 있기 때문에 A안과 B안을 각 고객들에게 보여주고 어느 쪽 디자인에서 더 주문이 높은지 테스트
- 시제품 테스트에서 고객들에게 A와 B 상품을 사용하게 해본 뒤 반응을 조사해볼 수 있음
- 문제점
- A안에서 평균, B안에서의 평균은 데이터를 가지고 추정한 추정치이기 때문에 진짜 평균과는 차이가 있음
- 데이터가 적은 상황에서는 잘못된 결과가 나올 수 있음
- 이러한 문제가 있을 때 통계적 가설검정 방법을 쓸 수 있음
통계적 가설검정
- 오래된 전통적인 방법
평균이 50이고 표준편차가 10인 100건의 정규분포 데이터 생성
A = rnorm(100, 50, 10)
B = rnorm(100, 50, 10)
A의 평균
mean(A)
[1] 50.47555
B의 평균
mean(B)
[1] 51.67474
- A안과 B안의 실제 평균은 50이기 때문에 추정한 평균으로 비교해 A안과 B안 중 하나를 선택하는 것은 잘못된 의사결정임
$t$ 분포
평균이 같다고 가정된 두 데이터가 있을 때 평균 차이가 나올 수 있는지 없는지를 계산
t.test(A, B)
Welch Two Sample t-test data: A and B t = -0.83129, df = 182.57, p-value = 0.4069 alternative hypothesis: true difference in means is not equal to 0 95 percent confidence interval: -4.045445 1.647059 sample estimates: mean of x mean of y 50.47555 51.67474
- p-value
- 만약 두 데이터가 같은 확률분포일 때 일정한 범위 바깥에 차이가 날 가능성이 얼마나 되는가
- 실제로는 평균이 같다고 해도 극단적으로 차이가 벌어질 가능성이 얼마나 되는가
-
실제로는 두 데이터가 차이가 없어도 mean(A)-mean(B) 이상 차이가 날 가능성이 p-value(%)
-
통계학에서 관습적으로 사용하는 기준은 5%
- 5%보다 높으면 이 정도 차이는 우연히 나타날 수 있다고 생각하여 데이터를 더 많이 모음
- 5% 이하면 두 데이터가 같은데 우연히 나오기 어렵다고 판단하여 데이터를 신뢰함
평균이 다른 A와 B 생성
A = rnorm(100, 50, 10)
B = rnorm(100, 60, 10)
A의 평균
mean(A)
[1] 50.02107
B의 평균
mean(B)
[1] 59.17824
t-test
t.test(A, B)
Welch Two Sample t-test data: A and B t = -6.3974, df = 197.98, p-value = 1.117e-09 alternative hypothesis: true difference in means is not equal to 0 95 percent confidence interval: -11.979889 -6.334448 sample estimates: mean of x mean of y 50.02107 59.17824
- p-value
-
A와 B가 평균이 같으면 이 정도 차이(mean(A)- mean(B))가 날 확률은 아주 작음
-
p-value의 약점
- 기준이 5%라는 것은 20번에 1번은 우연히 차이가 크게 생길 수 있기 때문에 절대적인 기준은 아님
통계적 가설검정에서 주의할 점
- p는 같을 확률이 아님
- 두 데이터가 같다고 가정했을 때 우연히 이런 결과가 나올 확률을 p라고 함
- 5%는 절대적 기준이 아님
- 데이터가 충분한지 확인하는 용도로 쓸 것