본문 바로가기

PM의 일/데이터

A/B 테스트와 p-value

 

A/B 테스트는 뭘까?

 

  앞선 글에서 A/B 테스트를 정리하면서도 여러 질문이 떠올랐다. 지표 개선을 위해 과연 매번 A/B 테스트를 해야 하는 걸까? A/B 테스트는 결국 화면 설계 이상의 문제를 검증하긴 하는 걸까? 결과에 영향을 미치는 외부 변수는 어떻게 통제하는 걸까? 통계 분석에 필요 가정들을 실무 단계에서 어떻게 지키는걸까? 등등

 

  그래서 A/B 테스트가 어떨 때 활용되는지 좀 더 자세히 찾아보았다. 보통 A/B 테스트의 목적은 사이트 최적화와 전환율(conversion)을 높이는 것이라고 한다. 콘텐츠나 배너의 배치에 따른 유저 클릭수의 변화 측정이 A/B 테스트의 전형적인 예시이다. 보통 두 집단 비교가 많지만, 여러 변수를 비교하고 싶을 경우 multivariate testing을 실시하기도 한다. 하지만 여러 집단으로 나눠질 경우 샘플 사이즈 때문에 트래픽이 충분히 커야 한다.

 

 

  A/B 테스트를 설계 시 구체적으로 고려할 점은 1) A/B 그룹을 나누는 기준(주로 ID, cookie, event 세 가지가 많다고), 2) 타겟 표본(회원/비회원 중 누구? 한국인 한정? 등등), 3) 표본 크기와 4) 실험 기간이라고 한다.  

 

p-value는 무엇인가?

 

  실험 설계에서 알 수 있듯, A/B 테스트도 기본적으로는 표본에서 모집단을 추론하는 일이고, 따라서 통계적 유의도를 고려할 필요가 있다. , 표본이 실제 모집단과 얼마나 일치할 지는 확률의 문제라는 점에서, p-value는 가설의 기각, 채택을 결정할 수 있도록 하는 확률을 의미한다.

 

좀 더 구체적으로 A/B 테스트 시행으로 다음과 같은 결과가 나왔다고 가정해보자.

 

A 랜딩페이지 클릭수: 1000명 중 20명
B 랜딩페이지 클릭수: 1000명 중 23명

 

  B에서의 클릭수가 3명이 더 많다는 걸 알 수 있다. 하지만, 그렇다고 B가 더 효과적이라는 결론을 내릴 수는 없다. 1000명은 수많은 유저 중 일부일 뿐이고, 1000명이 모든 유저를 대표한다고 확신할 수 없기 때문이다. 다른 말로 하면, 인구통계학적 변수 혹은 다른 변수가 개입해서 저런 결과가 나올 수도 있다는 뜻이다.

 

  따라서 표본의 평균 차이가 실제 모집단에도 해당되는지 검증할 필요가 있다. 이를 위해 귀무가설(영가설)과 대립가설을 세우게 되는데, 보통 영가설은 일반적 사실이자 기각하고 싶은 가설이며, 대립가설은 귀무가설의 대립되는 가설이자 주장하고 싶은 가설이다.

 

H0:  A 클릭수 – B 클릭수=0 (A, B 랜딩페이지의 클릭수에 차이가 없다.)
H1:  A 클릭수 – B 클릭수 =/0 (A, B 랜딩페이지의 클릭수에 차이가 있다.)  

 

  문제는 가설을 검증하는 일도 모집단은 아니기 때문에 오차가 존재할 수밖에 없다는 점이다. 그래서 다시 확률의 문제로 돌아간다. 가령, 모집단(귀무가설 분포)의 클릭수 평균이 0이라고 가정하고 있는데, 실제 표본값이 0과 멀게 나오면 모집단 평균을 의심할 수밖에 없다. P-value는 여기서 나온 개념이다.

 

즉, p-value는 귀무가설이 맞다는 전제 하에, 관측된 통계값보다 큰 값이 나올 확률이다.

 

따라서 극단값이 나올 확률이 현저히 적은데도(보통 0.05로 합의함), 그렇게 적은 확률의 일이 발생한다면, 그 사실이 의심스럽기 때문에, 귀무가설을 기각하는 것이다.    

 

(예를 들어 내가 가진 100개 표본에서 평균이 3이 나왔고, 나는 이 평균이 모집단 평균이 0인 분포에서 나올 것이라는 가정을 하고 있다. 하지만 실제 모집단에서 표본 100개를 추출했더니, 평균이 3(통계값)이 나올 확률이 0.01밖에 안 된다. 그렇다면, 3이 나올 확률이 너무 낮기 때문에 우리 표본이 모집단에서 나왔을 것이라는 가정을 의심하게 된다.)

 

p-value 이해하려다 토할뻔 했다 :( 

  다만 통계적으로 유의하다 사실이 가설의 , 거짓을 반드시 보증한다는 말은 아니다. p<0.05라고 해도, p 자체는 확률이기 때문에 실제 귀무가설이 참일 수도 있다. 또한, 통계적 유의미성과 실직적인 유의미성은 다르다. 예시로 가설에서 있듯이, 가설검증은 집단 간의 차이가 있냐 없냐를 검증하는 것이지, 얼만큼 차이가 나는지, , 어느 정도의 효과가 있는지는 알려주지 않기 때문이다. 따라서 가설에서 p<0.001 수준으로 통계적으로 유의하다는 결과가 나와도, 실질적인 차이(효과) 1000 3명이라면, B 방안이 정말 효과적인 없다. 그런 점에서 p-value 함몰되기 보다는 내가 이걸 하고 있는지 목적을 상기하는 일이 중요할 같다.

 

 

A/B 테스트를 해야 될까? 해야 할까?

  A/B 테스트는 적어도 눈으로 직접 확인 가능한 결과를 보여준다. 이는 예측 불가능한 프로덕트를 안고 살아야 하는 PM에게 내 결정이 조금이나마 예측 가능할 수 있다고 위안을 주는 존재가 아닐까라는 생각한다. 그런 점에서 A/B 테스트는 프로덕트의 구체적이고 명확한 기능과 디자인에 한해서 이 테스트가 유용할 것 같다. 단순한 수준의 예측이니까 말이다. (물론 의사결정을 내리는 주체는 A/B 테스트 결과가 아니라 PM이겠지만..) 실제로 A/B 테스트 관련 대다수의 글들도 높은 수준의 의사결정과 문제 해결을 위해서는 웹로그 분석이나 사용성 테스트, 유저 인터뷰 등의 방법을 병행해야 한다고 말한다. 더불어 위에서도 잠깐 언급했듯이, p-value는 필요한 기준이지만, 여러모로 한계를 지닌다는 점에서 맹신하는 일도 위험해 보인다. 때문에 상대적으로 단순한 수준의 의사결정에서 A/B 테스트는 매우 유용하고 강력한 도구가 되겠지만, 그 이상의 복잡한 문제라면 A/B 테스트보다는 다른 방법도 함께 병행해야 되는 것 같다.

 

 

출처:

https://adnoctum.tistory.com/332

https://brunch.co.kr/@bumgeunsong/17

https://www.smashingmagazine.com/2010/06/the-ultimate-guide-to-a-b-testing/

'PM의 일 > 데이터' 카테고리의 다른 글

A/B 테스트의 모든 것 by. 핵클  (0) 2021.12.05
PM의 데이터분석  (0) 2020.10.05