
반갑습니다! A/B 테스트 강의를 맡은 한기용입니다. 제가 어떤 백그라운드를 가진 사람인지 설명드리도록 하겠습니다.
이번 A/B 테스트의 강의 목표와 강의 대상과 강의 내용에 대해 알아봅니다. 기본적으로 야후, 폴리보어, 유데미 등의 실리콘밸리 기업에서 일을 하면서 경험한 A/B 테스트에 대해 같이 학습해 봅니다.
A/B 테스트는 무엇인지 소개하고 잘못 사용하는 경우가 언제인지도 경험을 기반으로 설명합니다.
A/B 테스트 시스템은 큰 그림에서 어떻게 사용되는 것일까요? 또한 A/B 테스트와 밀접한 관련을 갖게 되는 데이터팀은 어떻게 가치를 만들어내고 어떤 직군들로 구성되어 있는지 알아 봅니다.
기본적으로 A/B 테스트는 데이터 기반 의사 결정의 최고봉입니다.
A/B 테스트가 왜 애자일해야하는지 소개합니다.
A/B 테스트를 어떻게 시작하고 어떻게 분석하는지 그 전체과정을 처음부터 끝까지 살펴봅니다.
A/B 테스트 결과를 분석한다는 것이 어떤 의미인지 큰 그림으로 설명해봅니다. 더 구체적인 내용은 이번 강의 후반부에서 자세히 살펴봅니다.
A/B 테스트를 운영하고 분석한다는 것은 과학이 아닌 예술입니다. 어떤 어려움들이 있는지 테스트 자체를 중심으로 살펴봅니다. 분석 관점에서 하기 쉬운 실수는 뒤 다른 섹션("A/B 테스트 결과 분석의 어려움")에서 더 살펴보도록 하겠습니다.
A/B 테스트 시스템을 구성하는 두 가지 컴포넌트에 대해 설명하고 앞서 한번 설명했던 A/B 테스트 프로세스를 다시 한번 정리해봅니다. A/B 테스트를 제안할 때 사용할 수 있는 가설 문서도 자료로 공유합니다.
유데미 때 추천엔진을 머신러닝으로 개발하면서 적용했던 A/B 테스트 과정에 대해 공유해봅니다
A/B 테스트를 실제로 적용하면 필요한 중요한 일 중의 하나가 사용자를 A와 B로 나누는 것입니다. 그 이론적인 이야기를 해보고 뒤에 이어서 Google Colab으로 실습해봅니다.
앞서 배운 A/B 테스트 사용자 버킷팅 방식을 실제로 Google Colab상에서 실습을 통해 학습합니다.
A/B 테스트 결과를 분석한다는 것은 과학이 아닌 예술의 영역이라 할 수 있습니다. 왜 그런지 다양한 과거 케이스들을 바탕으로 이야기해봅니다.
A/B 테스트 결과를 분석하는 방법에는 빈도 중심의 통계와 베이지안 계열의 통계 방식이 있습니다. 이번 강의는 전자로 진행이 되면 귀무가설을 사용하게 됩니다. 관련한 통계 이야기를 크게 정리해보고 뒤에서 하나씩 설명드립니다.
귀무가설을 통해 A와 B를 비교하려면 해당 그룹의 데이터가 정규분포를 따라야 합니다. 하지만 모든 데이터가 정규분포를 따르지는 않습니다. 중심극한정리를 사용하면 모든 데이터의 평균을 정규분포로 바꿀 수 있습니다. 이에 대해 소개하고 Google Colab을 기반으로 실습을 진행합니다.
A/B 테스트가 제대로 진행되러면 A와 B의 소속된 사용자의 비율이 통계적으로 이야기할 때 50:50이 되어야 합니다. 비율을 비교할 때 우리가 사용할 수 있는 것이 Proportions Z-test나 One-sample T-test입니다. 이에 대해서 살펴봅니다.
앞서 배운 Proportions Z-test를 테스트 데이터(aa_example)를 대상으로 적용해서 Z-score를 계산합니다. 실습은 Google Colab에서 진행합니다.
뒤에서 A/B 테스트 분석에 사용할 데이터들을 설명하고 DuckDB 상에서 실제로 그 내용을 살펴봅니다
user_event
user_variant
user_metadata
비율이 아닌 두 그룹 (A, B) 간의 값 (예를 들면 클릭 평균, 매출 평균)을 대상으로 둘 간의 차이가 통계적으로 유의미한 차이인지 계산해주는 Two-Sample T-test에 대해 알아보고 뒤 섹션에서는 실습을 해봅니다.
앞서 배운 Two-sample T-test를 가지고 A/B 테스트 가상 데이터를 바탕으로 Impression/Click/Purchase/Revenue을 대상으로 실제 테스트를 적용하여 A와 B간의 차이가 통계적으로 볼때 유의미한 차이인지 계산해 봅니다.
A/B 테스트 분석 결과를 대시보드로 보여준다는 관점에서는 통계적 유의성 (A와 B의 차이가 통계적으로 볼때 유의미하게 다른지 여부)을 보여주는 것이 중요합니다. 즉 통계적 유의성 계산을 해야하는데 이걸 구현하는 방법은 대시보드에 따라 다릅니다. Tableau와 Looker 중심으로 이야기를 해봅니다
Tableau를 중심으로 어떤 시각화툴들이 있는지 알아봅니다
대시보드를 통해 시각화하는 대상은 보통 지표(metrics)인데 어떤 지표가 좋은 지표인지 그리고 KPI는 무엇인지 알아봅니다
Tableau 제품군과 Tableau와 관련된 몇 가지 개념과 용어를 설명해보도록 하겠습니다.
A/B 테스트 분석 대시보드를 만드는 경우 필터의 선택에 따라 Z-score를 동적으로 다시 계산해야 합니다. Tableau의 특성상 이를 하려면 OLAP 큐브가 필요하다는 이야기를 앞서 했는데 이번에는 이를 DuckDB 기반으로 만들어보도록 하겠습니다.
Tableau Public은 각자 다운로드 받으세요
실제 Tableau Public으로 OLAP Cube 파일을 임포트하는 실습은 "Traffic Trend Chart 모양 만들기" 섹션에서 진행 예정입니다
Tableau Public으로 만들어볼 대시보드의 전체적인 구조를 설명하고 앞서 이야기했던 Z-score 계산방법을 다시 한번 요약해봅니다.
Tableau Public을 실행해서 앞서 다운로드받았던 CSV 파일을 임포트하고 Traffic Trend 차트를 만들어 봅니다.
앞서 만든 Traffic Trend 차트에 컬러 코딩을 통해 트래픽이 통계적으로 이야기했을 때 50:50이라고 할 수 있는지 표시합니다. 이때 Calculated Field를 사용해 Z-score를 계산하고 컬러 코딩에 사용합니다.
Impression Chart를 만들고 Calculated Field들과 Parameter를 통해 Z-score를 계산하고 이를 바탕으로 컬러 코딩을 합니다. 이어서 사용자 메타 데이터를 사용한 필터를 만들어 Impression Chart와 연동하도록 합니다.
앞서 Impression 차트를 복사하여 Click, Purchase, Revenue 차트를 만들고 최종 대시보드를 만들고 Tableau Public 웹 사이트로 업로드합니다.
강의를 전체적으로 다시 요약해보고 다음으로 학습해볼만한 토픽이 무엇이 있는지 알아보도록 하겠습니다. 수고 많이 하셨습니다.
이 강의에서는 가상 A/B 테스트 데이터를 DuckDB라는 데이터베이스 위에서 SQL로 처리하여 Tableau Public상에서 A/B 테스트 분석을 위한 대시보드로 만들어봅니다. 유데미, 야후 등의 실리콘밸리 회사에서 A/B 테스트에 관여했던 경험을 바탕으로 만든 강의라 실용적인 팁과 모범 사례들도 배울 수 있는 유용한 강의가 되리라 믿습니다.
이번 강의는 다음과 같은 섹션으로 구성되어 있습니다.
강의 소개
A/B 테스트 소개
A/B 테스트 시스템 구성 이해
A/B 테스트 관련 통계 이해
손과 코딩으로 해보는 가상 데이터 기반 A/B 테스트 분석
Tableau 기반의 A/B 테스트 분석 시각화
최종 요약과 다음 스텝
모든 실습에는 Google Colab과 Tableau Public을 사용합니다.