A/A 테스트

A/A 테스트에서 실험군과 대조군은 동일한 제품 경험을 합니다. A/B 테스트의 목표가 실험군 대비 대조군에서 유의미한 지표 변화가 있는지 확인하는 데 있다면, A/A 테스트는 두 그룹 사이에 차이가 없는 것을 기대하고 이를 검증하기 위해 진행합니다.

A/A 테스트를 하는 이유

A/A 테스트는 주로 A/B 테스트를 본격적으로 시작하기 전이나 새로운 A/B 테스트 플랫폼을 도입하기 전에 진행합니다. 조직은 A/A 테스트를 통해 A/B 테스트 도구의 신뢰도를 평가하고, 이후 A/B 테스트를 진행할 때 활용할 수 있는 전환율 기준치나 최소 표본 크기를 결정할 수 있습니다.

핵클의 고객사들 또한 핵클의 A/B 테스트 플랫폼이 실험 도구로써 신뢰할 수 있는지 확인하기 위해 도입 과정에서 A/A 테스트를 진행하는 경우가 있습니다.

A/A 테스트 진행시 주의해야 할 점

A/A 테스트를 하다보면 우리의 기대와는 다르게 실험군과 대조군에 유의미한 차이가 있다는 결과가 나오기도 합니다. 주의해야 할 점은 결과가 유의미하다고 해서 항상 실험에 문제가 있는 건 아니라는 것입니다.

가설 검정에서 통계적 유의성은 확률입니다. 95% 신뢰도에서 검정을 한다는 건 실험을 20번 했을 때 1번은 우연에 의해 유의미한 차이가 있는 결과가 나올 수 있다는 걸 의미합니다 (1종 오류). 그렇기 때문에 이 결과가 통계적 유의성 내에서 충분히 일어날 수 있었다는 걸 확인하면, 실험에 문제가 있다기보다 확률에 의해 발생한 거라고 볼 수 있습니다.

수십만 번의 A/A 테스트를 해보고 직접 확인해 보는 건 시간 낭비입니다. 대신 A/A 테스트에 참여한 유저들을 반복해서 2개의 그룹으로 재분배하여 p-value나 베이지안 확률 분포를 계산해 보면 실제로 실험을 해보지 않아도 검증해 볼 수 있습니다.

4892

위 실험은 실제로 핵클에서 진행한 A/A 테스트 중 실험군과 대조군 데이터에 유의미한 차이가 있다고 나온 결과 페이지입니다. 해당 실험에 참여한 유저들을 반복해서 2개의 그룹으로 재분배한 후 95% 신뢰도에서 첫 번째 목표 지표인 구매전환율을 비교해 보겠습니다.

p-value 분포

가설 검정에서는 p-value가 유의수준보다 작으면 귀무가설(그룹 간에 차이가 없다)을 기각합니다. 유의수준은 귀무가설이 참일 때 귀무가설을 기각하고 대립가설(그룹 간에 차이가 있다)을 채택할 확률이기 때문에 p-value가 유의수준보다 작을 확률은 유의수준이 되어야 합니다.

2240

귀무가설이 참일 때 검정 통계량 T는 F(t) 분포를 따릅니다. P-value를 P라 하면 P=F(T)이고, 유의수준이 어떤 값을 가지든 위 관계가 성립하려면 F(⋅)는 균등분포여야 합니다. 이때 F(⋅)는 역함수를 가지는 가역 함수입니다.

839

위에서 소개한 A/A 테스트 데이터로 10,000번 시뮬레이션해서 얻은 p-value로 히스토그램을 그려보았습니다. 실험군과 대조군 데이터에 유의미한 차이가 있다고 나왔지만, p-value는 0에서 1사이의 값을 골고루 갖는 균등 분포의 모양을 보입니다. 해당 실험 결과는 통계적 유의성 내에서 우연에 의해 충분히 나올 수 있었다는 걸 의미합니다.

베이지안 확률 분포

846

실험군과 대조군의 사후 분포를 추정한 후 대조군의 목표가 실험군보다 높게 나올 확률을 계산합니다. 시뮬레이션을 500번 반복해서 얻은 확률로 히스토그램을 그려보면 0.5를 중심으로 하는 정규 분포 모양을 보입니다. 대조군의 목표가 실험군보다 높게 나올 확률이 0.5에 가깝다면 두 그룹 사이에 차이가 없다는 결론을 내릴 수 있습니다.

A/A 테스트를 진행했는데 p-value나 베이지안 확률 분포가 위 그래프에서 살펴본 분포 외의 모양을 보이거나, 몇 번 반복해도 계속해서 실험군과 대조군 사이에 유의미한 차이가 있다는 결론이 나오면 실험 설계나 집계하는 데이터에 문제가 있을 수 있습니다.

상황에 따라 문제의 원인은 다양하지만 주로 다음과 같은 이유에 의해 발생합니다.

  • 데이터에 극단치가 있는 경우입니다. → 핵클에서는 극단치 제외 기능을 통해 제거할 수 있습니다.

  • 실험 분배 트리거에 오류가 있어 의도 하지 않은(실험에 포함되어서는 안되는 유저)가 노출 데이터에 포함된 경우입니다. → 핵클에서는 실시간 노출 현황에서 그룹 별로 분배가 잘 되고 있는지 확인할 수 있습니다. 이때 실험 분배가 이루어져야 하는 페이지 이전 단계나 이후에 분배(노출) 데이터가 생성되거나 실험 타겟이 아닌 사용자에게 실험이 분배가 되는지 확인 가능합니다.

  • 균등 분배에 오류가 있어 실험군과 대조군에 할당된 유저 수에 큰 차이가 있거나 비슷한 특징을 가진 유저들이 같은 그룹으로 할당되는 경우입니다.→ 핵클에서는 해시 함수를 활용한 버켓팅 방법으로 유저를 분배하기 때문에 실험 설계에 문제가 없다면 균등 분배를 보장합니다. 자세한 설명은 테스트 그룹 분배 페이지를 참고해 주세요.

A/A/B 테스트 진행시 주의해야 할 점

A/A/B 테스트는 A/A 테스트와 A/B 테스트를 동시에 진행하고 싶을 때 사용합니다. A/A/B 테스트는 트래픽을 세 그룹(A, A 또는 B)으로 나누기 때문에 한 그룹에 할당되는 유저 수가 적어져 검정력이 낮아집니다. 그렇기 때문에 A/A/B 테스트에서 충분한 검정력을 확보하기 위해서는 트래픽을 늘리거나 실험을 길게 진행해야 합니다. 이러한 이유로 핵클에서는 A/A/B 테스트보다는 A/A 테스트를 권장하고 있습니다.