데이터분석/분석 이론
A/B 테스트
neonii
2025. 3. 30. 04:05
728x90
본 내용은 데이터리안 블로그(https://datarian.io/blog/a-b-testing)를 참고하였습니다.
A/B 테스팅이란
- 웹 사이트 방문자를 임의로 두 집단으로 나누고, 한 집단에게는 기존 사이트를, 다른 집단에게는 새로운 사이트를 보여준 다음, 두 집단 중 어떤 집단이 더 높은 성과를 보이는지 측정하여, 새 사이트가 기존 사이트에 비해 좋은지를 정량적으로 평가하는 방식
- 여기에서 성과는 새 사이트가 목표로 했던 바에 따라 다른데, 보통은 회원 가입율, 재방문율, 구매전환율 등의 지표를 본다.
- 과학 혹은 의학에서의 무작위비교연구(RCT, randomized-controlled trial)를 인터넷 마케팅에 적용한 것이라고 생각하면 된다.
- 주로 웹사이트와 관련해서 많이 쓰이지만 모바일 앱, 게임 등의 분야에서도 활발히 활용된다.
A/B 테스팅이 왜 필요한가?
- '결과'에 변화가 생겼을 때 이 변화의 '원인'이 우리가 했던 그 개입 때문이 맞는지 확인하기 위함이다.
- Corrleation does not imply causation: 모든 상관관계가 인과관계인 것은 아니다.
- e.g. 이런저런 조사를 통해 아이스크림 판매량과 물놀이 사고의 빈도 사이에 높은 양의 상관이 있다는 사실을 찾아냈다고 해보자. 그렇다고 아이스크림 판매량을 줄이면 물놀이 사고를 줄일 수 있을까? 그렇지 않을 것이다. 아이스크림 판매량이 물놀이 사고의 원인이거나 물놀이 사고가 아이스크림 판매량의 원인인 것이 아니라, '더운 날씨'라고 하는 또 다른 요인이 아이스크림 판매량과 물놀이 사고에 공통으로 영향을 주는 원인이기 때문이다. 이 예시는 누구나 이해할 수 있을만큼 명백하지만, 물론, 우리가 현실에서 겪게 될 대부분의 문제는 이보다 복잡하다.
- e.g. 어떤 쇼핑몰 웹사이트에서 3개월에 걸쳐 디자인을 개편했다고 해보자. 그랬더니 갑자기 그 전에 비해 일 매출이 10% 증가했다. 과연 매출 증가가 새로운 디자인 덕분이라고 할 수 있을까? 두 사건이 함께 일어났다고 해서 하나의 사건이 다른 사건의 원인이라고 가정하는 것은 위험하다. 하필 새 디자인이 적용된 바로 그 날, 경쟁 쇼핑몰이 문을 닫았을 수도 있고, 경쟁력 있는 상품이 입고되었을 수도 있다. 심지어는 다른 쇼핑몰들의 일 매출이 15%씩 향상되었는데 우리 쇼핑몰만 10% 향상된 것이라면 새 디자인이 매출에 악영향을 준 것일지도 모른다. 이럴 때 A/B 테스팅을 활용하면, 순수하게 디자인 변화로 인한 매출 차이만을 가려낼 수 있다.
A/B 테스팅 시 주의할 점들
- random assignment: 두 집단을 임의적으로 나눠야 한다.
- 한 집단은 남성만, 다른 한 집단은 여성만 포함할 경우 임의적이지 않으므로, 두 집단의 차이가 무엇 때문에 발생하는지 가려낼 수 없게 된다.
- random sampling: 실험에 참가한 집단이 모집단을 대표할 수 있어야 한다.
- 모집단을 대표할 수 없는 집단을 추출해 실험에 참가하도록 한다면, 추출된 집단의 성격과 모집단의 성격에 차이가 생겨, 기대와 다른 결과가 나올 수 있다.
A/B 테스팅의 단점
- 테스트를 너무 많이, 자주하면 단기적인 손해가 발생할 수 있다.
- e.g. 2주 동안 전체 방문자를 반으로 나눠 각각 기존 상품 이미지와 새로운 상품 이미지를 보여주고자 한다. 테스트를 3일 쯤 진행했더니, 새로운 이미지를 본 집단에서의 매출이 기존에 비해 절반 밖에 나오지 않았다면, 애초에 계획했던 2주 동안 테스트를 진행하면서 막심한 매출 손해가 발생할 것을 예상해볼 수 있다.
- 결과는 계절 변화나 취향 변화 등 시간의 흐름에 따라 바뀔 수 있다.
- 통제실험은 시공간의 보편성에 대한 가정을 깔고 있다. 이 가정은 물리학이나 화학 수준에서는 대단히 확실히 보장되고, 생물학을 거쳐 사회과학 분야로 가면서 점점 약해지며, 비즈니스 맥락에서는 대단히 약해진다.
- e.g. 작년 겨울에 시행한 A/B 테스팅의 결과는 언제까지 유효할까?
- A/B 테스팅만 해서는 지역최적점에 머물게 될 위험이 있다.
- A/B 테스팅은 결국 기존 상태에서 작은 변화를 가하며 점진적으로 더 나은 상태를 찾아가는 방식으로 진행된다. 하지만 이 방식으로는 지역최적점에 수렴할 수 있을 뿐, 전역적인 최적점을 찾을 수 없다.
게임에서의 A/B 테스트
- 무엇이 더 재미있는가에 대한 A/B 테스트를 할 수 있어야 게임에서의 A/B 테스트라고 말할 수 있을 것이다. 이를테면 다음과 같은 것들을 생각해볼 수 있겠다.
- 아이템 드랍률이 적절한가
- 특정 인던의 난이도가 지나치게 쉬운가
- 몹이 리스폰되는 장소나 간격이 적절한가
- 스테이지 난이도가 적절하게 증가하는가
- 총 10개의 스테이지가 있다고 해보자. 스테이지 1에서 시작해서 스테이지 10을 클리어하면 게임이 끝나는 것이다. 각 스테이지에 대해서 n^2 시간 만큼이 소요되게 하는 것이 디자이너의 의도였다.
로그를 분석해보니 나머지 스테이지는 의도대로 구현이 되었는데, 스테이지 3에 플레이어들의 평균 체류 시간이 예상했던 4시간 보다 33분 높은 4시간 33분이었다고 치자. 스테이지 3의 난이도를 낮추는 패치를 적용하고, 이에 대한 A/B 테스트를 다음과 같이 수행할 수 있을 것이다.- 이미 스테이지 3에 머물고 있는 플레이어들에게는 패치를 적용하지 않는다.
- 이제 스테이지 3에 집입할 플레이어들 중 90%에게는 패치를 적용하지 않고, 나머지 10%에게는 패치를 적용한다.
- 패치를 적용한 집단의 평균 체류 시간이 낮아졌다면, 패치의 방향이 적절했다고 볼 수 있다.
- 이때 몇 가지 주의할 점이 있다.
- 예상치 못했던 이유로 난이도가 지나치게 하향되거나, 오히려 난이도가 상향될 수 있다. 따라서 실험군과 대조군을 정확히 1:1로 나누기보다는, 1:9와 같이 편향되게 나누는 것이 안전하다.
- 플레이어들이 실험에 대해 인지하고, 자신이 어떤 집단에 속해 있는지 생각하기 시작하면 실험에 편향이 발생한다. 블라인드 테스트를 할 수 있도록, 대놓고 HP를 수정하기 보다는 보스 AI를 조정하는 식으로 접근하는 것이 좋다.
- 좀 전의 A/B 테스트는 '(패치가) 디자이너의 의도대로 되었는가?'라는 질문에 대한 답을 주었다. 하지만 '디자이너의 의도가 올바른가?'에 대한 답도 필요하다. → Verification and Validation 문제
- Verification: 패치로 인해서 스테이지 3의 체류시간이 4시간에 맞춰졌는가?
- Validation: 스테이지 3의 체류시간이 4시간이어야 게임이 가장 재미있어지는가?
- 재미라는 것은 직접 측정하기 쉽지 않으니, 재미와 관련이 있을 것으로 보이는 지표 중 측정이 가능한 후보들을 찾아야 한다. 각 스테이지별 포기율(Abandonment rate)도 괜찮은 후보가 될 것이다. 물론, '포기' 혹은 '이탈'을 무엇으로 정의할지도 고민을 해봐야 한다.
- 총 10개의 스테이지가 있다고 해보자. 스테이지 1에서 시작해서 스테이지 10을 클리어하면 게임이 끝나는 것이다. 각 스테이지에 대해서 n^2 시간 만큼이 소요되게 하는 것이 디자이너의 의도였다.
- Verification and Validation 문제
- Verification: 우리가 제품을 맞게 만들었는가?
- Validation: 우리가 맞는 제품을 만들었는가?
A/B 테스트에서 p-value에 휘둘리지 않기
- 실험의 결과 차이가 극명하게 갈리지 않을 때, 어떤 것이 좋다고 쉽게 결론 내리기 어렵다. 게다가 운이 좋아서 특정 결과가 일시적으로 좋은 것이라는 걱정도 떨칠 수가 없다. 이럴 때, 실험의 p-value를 참고하곤 하는데, 그렇다고 p-value에만 신경을 쓰느라 제대로 실험 결과를 해석하지 않아선 안된다. 실험의 목적은 얼마나 효과가 있는지 살펴보는 것이지 통계적 유의성만을 확보하는 것이 아니다!
- '없는데 있다고 할 오류'가 더 위험할까, '있는데 없다고 할 오류'가 더 위험할까? 일반적으로 '없는데 있다고 할 오류'를 더 위험하게 본다. 과헉적 증거를 발견하려는 실험에서 실제로 없는 증거를 있다고 오해하는 경우에 생길 위험성을 경계하기 때문이다. 물론, 경우에 따라서 다를 수 있다. 만약 암 환자를 진단하기 위한 실험을 한다면, '암이 없는데 있다'고 하는 것이 '암이 있는데 없다'고 하는 것보다 나을 것이다. 그렇게 우리는 '차이가 없는데 있다고 할 오류' 수준인 p-value를 (종종) 0.05로 실험 전에 정한다.
- 실험의 유의성을 확보하기 위해서 실험 기간을 과하게 연장하는 경우도 문제지만, 실험이 끝나기도 전에 결과를 확인하고 이를 확신하는 경우도 문제다. 이를 실험 결과 엿보기(peeking) 문제라고 한다. 전형적인 실험 담당자는 시간날 때마다 실험 결과를 엿보면서 p-value를 확인한다. 그러다가 우연히도 p-value가 0.05보다 작아지는 순간을 포착해서 '드디어 실험이 끝났다'고 선언하고 실험을 마무리한다. 만약 충분한 표본 크기가 확보되지 않았는데 이런 식으로 실험을 마친다면 그 결과는 신뢰하기 어렵다. 우연히 실험 초기에 p-value가 낮아질 수 있기 때문이다. 따라서 일단 적절한 실험 규모를 계산했다면, 실험이 끝날 때까지 기다리는 것이 중요하다. 섣불리 결론을 내리고 의사 결정을 하는 것은 위험하다.
728x90