안녕하세요. 꽁냥이에요~
이번 포스팅에서는 웹 마케팅 분야에서 많이 활용되고 있는 A/B 테스트에 대해서 알아보려고 합니다.
1. A/B 테스트란?
A/B 테스트는 기존 서비스(A)와 새로 적용하고 싶은 서비스(B)를 통계적인 방법으로 비교하여 새로운 서비스가 기존 서비스에 비해 정말 효과가 있는지를 알아보는 방법입니다.
2. A/B 테스트 방법
A/B테스트는 크게 가설 설정, 메트릭 정의, 실험 설계, 결과 도출 4단계로 이루어집니다.
각 단계별로 하나씩 살펴보겠습니다.
1) 가설 설정
가설 설정에서 가설은 과학적인 방법(여기서는 통계적인 방법)을 이용하여 참인지 거짓인지를 판별할 수 있는 명제로써 검증하고자 하는 것이 무엇인지를 문장형태로 구체화하는 것입니다.
예를 들어볼까요? 만약 어떤 홈페이지 운영자가 버튼의 색깔을 바꿔서 다운로드 횟수를 올리고 싶다고 해볼게요.
위 그림에서 검증하고자 하는 1차 가설은 다음과 같을 거예요.
다운로드 버튼의 색상을 바꾸면
기존 빨간색일 때보다 더 많은 사용자가 다운로드할 것이다!!
즉, 새롭게 적용해보고자 하는 것은 홈페이지 화면의 다운로드 버튼 색상을 바꾸는 것입니다. 이제 1차 가설을 구체화해야 합니다. 여기서는 버튼 색상을 무엇으로 할지 결정해야 합니다. 이때에는 색상 관련 전문가에게 사용자가 선호하는 색상이 무엇인지 조언을 구할 수도 있고요. 설문조사를 통해 사용자가 원하는 색상이 무엇인지 사전에 파악하여 바꿀 색상의 후보를 정할 수도 있습니다.
여기서는 설문조사를 해서 사용자가 가장 선호하는 색상이 초록색이라는 것을 알았다고 가정해볼게요.
그렇다면 구체화된 가설은 다음과 같아요.
다운로드 버튼의 색상을 초록색으로 바꾸면
기존 빨간색일 때보다 더 많은 사용자가 다운로드할 것이다!!
2) 메트릭 정의
가설을 설정했다면 이 가설이 참인지 거짓인지를 보이기 위한 측정 기준이 필요한데 이를 메트릭(Metric)이라고 합니다. 메트릭은 검증하고자 하는 가설에 따라 달라집니다.
예를 들어 위 가설에서 우리가 검증해야 할 것은 "버튼의 색상을 초록색으로 바꾸었을 때 다운로드 횟수가 빨간색이었을 때보다 더 많은가?"입니다. 따라서 여기서의 메트릭은 다운로드 횟수가 되겠지요.
메트릭은 하나의 가설에 대해서 두 개 이상이 될 수 있어요. 만약 실제로 사용자가 단순히 실수가 아닌 필요에 의해서 다운로드했는지를 확인하기 위해서 다운로드 취소 횟수를 메트릭으로 추가할 수 있지요.
3) 실험 설계
실험 설계에서는 기존 환경과 가설을 검증할 실험 환경을 준비하고 집단을 두 개로 나누어 하나는 기존 환경에 다른 하나는 실험 환경에 배정하게 됩니다. 먼저 실험 환경에 대해서 알아보겠습니다. 실험 환경은 검증할 요소 외 다른 요소들은 기존 환경과 모두 동일하게 만들어줘야 합니다.
만약 검증할 요소가 초록색 버튼이라면 버튼 색상 외 다른 요소들은 기존 환경과 실험 환경이 동일해야 합니다. 그 이유는 검증하고자 하는 결과(여기서는 다운로드 횟수 증가)와 바뀐 부분(버튼 색상)의 연관성을 정확하게 파악하기 위해서입니다.
아래 그림은 3가지 상황을 나타낸 것입니다.
먼저 가장 왼쪽 그림은 버튼 색상만 바뀌고 그 외의 요소들은 모두 동일하게 적용된 실험 환경입니다. 그리고 중간에 있는 그림은 버튼, 글자 색상이 바뀐 실험 환경이고요. 마지막 그림은 버튼의 색상과 위치가 달라진 실험 환경입니다.
만약 위 3가지 조건에서 환경 B에서의 다운로드 횟수가 더 많았다고 가정해볼게요. 그렇다면 첫 번째 그림의 경우에는 버튼 색상을 초록색으로 바꾼 것과 다운로드 횟수 증가 사이에 연관성이 있다고 말할 수 있지요.
하지만 두 번째의 경우에는 다운로드 횟수 증가라는 현상이 글자색과 연관이 있는 건지 아니면 버튼 색상과 연관이 있는건지 정확하게 알 수 없지요.
세 번째 또한 다운로드 횟수 증가가 버튼 배치와 관련이 있는 건지 버튼 색상과 관련이 있는건지 제대로 알 수 없습니다.
이렇듯 검증하고자 하는 결과와 바꿔준 요인 사이의 연관성을 제대로 파악하기 위해서 다른 요소들은 기존 환경과 실험 환경에서 동일해야 합니다.
실험 환경이 준비가 되었다면 다음은 두 집단을 하나는 기존 환경에 하나는 실험 환경에 배정해야 합니다. 집단을 배정할 때에는 반드시 랜덤 하게 배정(Random sampling)해주셔야 합니다. 그 이유는 실험 결과에 대한 해석을 정확하게 하기 위해서입니다.
만약 아래와 같이 랜덤하게 집단을 배정하지 않은 경우를 생각해볼게요.
여자는 기존 환경, 남는 실험 환경에 배정한 경우
오전에 접속한 사용자는 기존 환경, 오후에 접속한 사용자는 실험 환경에 배정한 경우
위의 예에서 여자는 기존 환경(빨간 버튼), 남자는 실험 환경(초록 버튼)에 배정했고 다운로드 횟수가 기존 환경에서 더 많이 나왔다고 가정해볼게요. 그렇다면 "버튼을 초록색으로 바꾸면 다운로드하는 사용자가 줄어든다"라는 잘못된 결론을 내릴 수 있습니다. 사실은 남자가 초록색을 별로 좋아하지 않아서 다운로드를 하지 않은 것이지 여자에게도 초록색 버튼을 보여줬다면 결과는 달라졌을지도 모를 텐데 말이죠.
즉, 실험 결과에 대한 정확한 해석을 하기 위해서는 반드시 랜덤하게 배정해야합니다. 랜덤하게 배정하는 방법, 즉 랜덤 추출(Random Sampling)에 대해서는 추후 따로 포스팅하겠습니다.
4) 결과 도출
실험 설계가 완료되면 이제 두 집단에 대하여 미리 정의한 메트릭을 계산합니다. 위의 예에서는 빨간 버튼일 때의 다운로드 횟수와 초록 버튼일 때의 다운로드 횟수를 계산하는 것이지요. 그리고 통계적인 방법을 이용하여 가설을 검정하여 이 두 집단에서 구한 메트릭의 차이가 유의미한지를 확인합니다. 검정의 결과 통계적으로 유의한 차이가 있다면 우리는 새롭게 적용한 서비스가 기존의 서비스보다 더 낫다고 판단하게 됩니다(상황에 따라 통계적 가설검정을 생략하고 그래프로 차이가 있는지 없는지를 판단하는 경우도 있는 것 같아요).
여기서 주로 사용되는 통계적 가설 검정방법은 2 표본 t-검정인데요. 이 부분은 추후 따로 포스팅하겠지만 궁금하신 분들을 위해 참고할만한 블로그를 링크했습니다.
2 표본 t-검정 :
만약 통계적으로 유의한 차이가 없다면 가설 설정에 문제는 없었는지, 실험 설계에서 잘못된 부분은 없었는지, 데이터는 충분히 확보되었는지를 확인하여 다시 가설 검정 절차를 수행합니다. 만약 이렇게까지 했는데도 유의미한 차이를 확인할 수 없다면 상사에게 "버튼을 바꾸는 것은 아무래도 의미가 없을 것 같다"라고 얘기하면 됩니다.
3. A/B 테스트의 장단점
- 장점
A/B 테스트는 새로운 방식이 과연 기존 방식에 비해서 효과가 있는가에 대한 답을 비교적 빠르게 제공한다는 장점이 있고요. 새롭게 적용할 서비스와 기존 서비스를 비교할 수 있는 모든 분야에 적용이 가능합니다(신약 개발, 웹 마케팅, 정책 효과 등). 특히 웹 서비스 분야에서 새로운 UX/UI에 대한 효과를 A/B 테스트를 통해 알아봄으로써 지속적으로 사용자의 편의성을 증대시키는 방향으로 웹 서비스를 개선할 수 있습니다.
- 단점
A/B 테스트는 실험 설계를 잘했다고 가설 검정에서 보고자 했던 결과와 요인 사이에 인과관계를 정확히 알 수없다는 단점이 있습니다. 위의 예에서 버튼을 초록색으로 했을 때 다운로드 횟수가 늘어난 경우 그 이유가 버튼 색이 초록색으로 바뀌었기 때문이라고 말할 수 없는 것이지요. 왜냐하면 그 시점에 경쟁 웹사이트가 없어졌거나 날씨 등의 이유로 집에서 인터넷을 하는 사람들이 일시적으로 증가해서 다운로드 횟수가 늘어난 것일 수도 있기 때문이지요.
또한 새로운 방식이 기존의 방식과 크게 차이가 난다면 A/B 테스트는 결과가 잘못될 수 있으며 리스크가 굉장히 커지게 됩니다. 예를 들어 웹페이지의 새로운 디자인이 기존의 디자인보다 바뀐 것이 많다면 사용자의 혼란을 가중시켜 이탈하게 만드는 요인이 될 수 있으며 사용자가 이탈함에 따라 결과도 잘못될 여지가 있는 엄청난 리스크가 있다는 것이지요.
이번 포스팅에서는 웹 마케팅에서 사용자 편의성 개선에 대한 연구에 많이 활용되는 A/B 테스트에 대해서 알아보았습니다. 궁금한 점, 잘못된 점, 그 밖에 하고 싶은 말은 댓글로 남겨주세요~
다음 포스팅에서는 A/B 테스트 실제 사례를 소개하려고 합니다. 많이 기대해주세요.
지금까지 꽁냥이의 글 읽어 주셔서 감사합니다.
이번 포스팅에서는 아래의 논문을 참고하였습니다.
'데이터 분석 > 데이터 분석' 카테고리의 다른 글
[회귀 분석] 1. Python을 이용하여 단순 선형 회귀 모형 적합해보기! (0) | 2020.09.14 |
---|---|
[A/B 테스트] 2. A/B 테스트 사례에 대하여 알아볼까요?! (0) | 2020.08.09 |
[RFM 고객 분석] 3. Python을 이용한 RFM 분석 - RFM 가중치 계산 (419) | 2020.06.28 |
[RFM 고객 분석] 2. Python을 이용한 RFM 분석 - RFM 점수 계산 (1490) | 2020.06.20 |
[RFM 고객 분석] 1. RFM 고객 분석이 무엇일까요? (2182) | 2020.06.15 |
댓글