[그로스해킹] AB테스트 (4)
▶︎ AB 테스트란 무엇인가?
: 두 가지 서로 다른 옵션에 대한 사용자의 반응을 측정함으로써 어떤 옵션이 더 효과적인지를 검증하는 과정
: 정량적으로 검증하는 것. 특정 지표에 대한 원인을 파악하기 위한 cost를 최소화하고 가설 설정하여 검증하며, 그 결과를 통해 개선하는 것 최대한 자주 반복하는 것도 중요
: 가설을 검증하면서 성장해나가는 것. 그런 가설을 보다 체계적으로 보다 신속하게 보다 효과적으로 할 수 있게 증명해내는 방법
▶︎ 가설 설정하는 법
→ 실험을 통해 확인하고 싶은 것이 명확해야 한다.
→ 1 )독립 변수(인과관계에서 원인이 되는 변수)와 종속변수(인과관계에서 결과가 되는 변수)를 정의하고, 2) 종속 변수의 목표 수준을 정하는 형태로 이뤄진다. 3) 통제변수를 확인하고 랜덤하게 잘 나눈다 4) 샘플 크기와 실험 기간을 정한다.
→ 예) 가설 : 서비스 소개를 텍스트로 보여주는 화면보다 이미지로 보여주는 화면에서의 가입 전환율이 높을 것이다. 실험에 필요한 샘플 크기를 구하기 위해 가설 수립 단계에서 목표 수준을 정해야 하는데 그러기 위해 '이미지 화면의 가입 전환율이 10% 더 높을 것이다' 처럼 구체적인 목표 수준을 포함하는 것이 좋다. 가입 전환율은 종속 변수가 되고 측정 가능해야 하며, 어떤 기준으로 측정할 것인지에 대한 정의가 명확해야 한다. 종속 변수의 현대 수준을 측정하고 실험을 통해 어느 정도의 변화를 기대하는지 정의하는 것이 필요하다. 또한 실험 결과에 영향을 미칠 수 있기 때문에 실험/대조군에서 동등한 조건을 가져야 하는 변수를 통제 변수라고 불리는데 가입경로(유료 광고, 친구 추천 등)를 통제 변수로 들 수 있다.
→ 실험군과 대조군을 나눌 때 고객 번호의 홀짝, 가입 시간의 홀짝으로 나누는데 가입 경로라는 통제 변수가 샘플링 과정에 반영함으로써 종속 변수에 미치는 영향을 차단해야 한다. 회원번호가 홀수인 가입자 중에 친구 초대를 통해 유입된 사용자가 더 많을 수도 있기 때문이다. 따라서 독립 변수 이외에 종속 변수에 영향을 미칠 것으로 보이는 변수가 있다면 이를 통제 변수에 포함해야 한다.
→ 예를 들면 두 개의 추천 알고리즘 중 효과적인 것을 찾고 싶다. 그러나'휴가'와 '출장'을 목적으로 항공권을 예매한 사람들의 여행 상품 추천에 다르게 반응할 수 있다. 또한 방콕으로 가는 배낭여행자와 몰디브로 신혼여행 가는 사람도 여행 상품 추천에 다르게 반응할 것이다. 그렇기 때문에 같은 목적으로 여행을 가는 사람들 안에서 진행해야 정확한 테스트 결과를 얻을 수 있다.
→ 테스트하고 싶은 독립 변수 외에 종속 변수에 영향을 미치는 나머지 요소들을 얼마나 잘 식별하고 통제하느냐가 AB테스트를 설계하는 과정에서 대단히 중요하다.
→ 실험 설계 과정 : 모집단을 잡는 것, 랜덤으로 집단을 나누는 것, 날짜, 요일, 시간, 유입 경로나 기기 , 운영체제 즈라우저 등 사용자 환경, 시간, 대상에 따라 결과가 달라질 수 있으니 최대한 통제
▶︎ 어쩔 수 없이 순차 테스트를 해야 한다면?
→ 기간이 달라짐에 따라 기대하지 못한 외부 효과가 개입될 수 있다. (예를 들어 A알고리즘으로 1주일 돌리고, 1주일 뒤에 B 알고리즘으로 돌렸는데 방학 기간이라 여행 상품을 많이 가입했을 수도 있다.) 어쩔 수 없이 순차테스트를 해야 한다면 샘플링 오류에서 정말 자유로운가를 꼼꼼히 검증하고 ABA테스트와 같이 시차를 두고 통제 조건을 재차 테스트라는 것도 보완 방법이다.
▶︎ 샘플 크기
→ 검증하고자 하는 가설, 검정력, 유의수준 등에 따라 샘플 수를 계산할 수 있다. (샘플 크기 계산기 사용)
▶︎ 기간 설정
→ 어떤 실험이냐에 따라 다름. 예를 들어 쿠폰 마케팅은 1일, 상품 마케팅 같은 경우는 3일, UIUX 변경은 다양한 사람들이 들어와서 사용해보고 결정해야하니 2~4주 등 설정. 그러나 요일별 편차가 있을 수 있다는 것을 알아야 함
▶︎ 결과 분석하는 법
→ 실험의 유의 수준을 판단하기 위해 P-value를 사용한다. AB테스트 결과를 판단하기 위해서는 p값과 함께 실험의 실질적인 성과, 비용, 가치 등을 종합적으로 고려해야 한다.
→ p값 이해하기 (p값은 귀무가설 하에서 관찰된 검정통계량만큼의 극단적인 값이 관찰될 확률을 의미한다.)
- 우리가 검증하고 싶은 것은 A조건의 클릭율이 B조건의 클릭율보다 높다는 가설이다
- 하지만 통계학에서는 이러한 직접 비교를 통한 검증은 불가능하다.
- 이 경우 우선 통계학에서는 A조건과 B조건의 클릭율 차이가 없다고 가정한다.
- 표본을 추출해서 검정해봤더니 검정통계량이 매우 극단적인 값이 나온다. (검정 통계량 : t통계량, F통계량 등)
- 귀무가설 하에서 (A조건과 B조건의 클릭율 차이가 없다) 극단적인 검정통계량이 관찰될 확률은(p값)은 5%미만이다.
- 그러면 A조건과 B조건의 클릭율 차이가 있다고 판단할 수 있다.
- 검정 통계량이 극단적인 값일수록 귀무가설을 반박하는 목소리를 크게 낼 수 있다.
→ 통계적 유의성 확인 계산기 (종속변수가 범주형(클릭 여부, 가입 여부)이면 카이제곱, 이산형(클릭 횟수, 결제 금액)이면 t검정 또는 분산분석)
▶︎ p 해석시 주의할 점
→ 샘플의 크기가 크면 p값이 낮아지는 특성이 있기 때문에 실험 집단의 규모가 매우 크면 p값이 왜곡될 수 있다.
→ p값이 충분히 낮더라도 집단 간 차이 자체가 미미하다면 실질적으로는 사업적 관점에서 의미가 없을 수도 있다. (A조건의 클릭율이 5.22% B조건이 5.225% 이면 p값이 엄청 작아 통계적으로 유의미하다고 해도 이 결과가 현실적으로 가치있다고 말하기 어렵다. 그럴 때는 실질적으로 효과를 미치는 크기나 영향력을 가치로 환산해서 판단해야 한다.)
▶︎ AB테스트 시 주의해야할 것
→ AB테스트를 통해 어떤 가설을 검증하고 싶은지 명확해야 한다. 가설이 명확해야 독립/종속/통제 변수가 정의되고 실험이 진행된다.
→ 통제 변수를 식별하고 통제 변수를 통제한 샘플링을 해야 한다.
→ 종속 변수의 평균 비교 외에도 분포, 유의수준, 효과 크기를 종합적으로 판단해야 한다.
→ 실험 초기 p값이 안정화되지 않은 시점에서 테스트를 조기 중지하면 효과가 있는 것처럼 판단할 수도 있다.
→ 시간의 흐름에 따라 종속 변수가 어떻게 변화했는지 보는 것도 중요하다. 실험에 따라 초기에 실험군의 효과가 안정화되지 않을 수도 있다. 신기해서, 또는 낯설어서일수도 있고 집단 샘플링에 실패했거나 특정 시점에 기능 오류가 발생했더나 데이터 수집 과정에서의 오류일 수도 있으므로 시간의 흐름에 따라 꼼꼼하게 확인해야 한다.
→ 과거의 AB테스트 경험을 지나치게 신뢰하면 안된다. 시장의 변화, 계절 등 외부 환경의 변화, 사용자층의 변화, 사용자들의 취향 변화 등 다양한 요인에 의해 얼마든지 달라질 수 있다. 어제의 최적화는 오늘의 레거시가 될 수 있다.
→ 주어진 조건의 성과를 비교하는 실험이지, 가장 좋은 조건을 의미하지는 않는다. AB테스트는 전역 최적화가 아닌 국지적 최적화를 찾는 실험이다.
참고 : 그로스해킹 (양승화, 위키북스) 를 요약 정리한 것입니다.