10 분 소요

그로스 해킹 2 :

A/B테스트

1. A/B 테스트

그로스 조직이 데이터를 활용하는 대표적인 과정으로 성장 실험이다.

1.1. A/B 테스트란?

  • 두 개의 변형 A와 B를 사용하는 종합 대조 실험
  • 통계적 가설 검정 / 2-표본 가설 검정의 한 형태
  • 두 가지 서로 다른 옵션에 대한 사용자의 반응 측정해서 더 효과적인 옵션이 어떤 것인지 검증

1.2. 테스트 설계

(1) 가설

  • A/B 테스트를 통해 확인하고 싶은 것이 무엇인지 명확해야 함
  • 독립 변수, 종속 변수 정의 → 종속 변수의 목표 수준 설정
    • 예) 일반 회원가입만 제공할 때보다 카카오톡 회원가입을 제공할 때 가입 전환율이 20% 더 높을 것이다.

(2) 실험 집단 / 통제 집단

  • 전체 모수 중 실험 조건에 할당되는 사용자들 구분하고 할당하는 기준 정의
  • 통제 변수 관리와 엄격한 기준에 따른 샘플링 중요

(3) 독립 변수

  • 인과 관계에서 원인이 되는 변수로 종속 변수에 영향을 줄 것으로 기대되는 예측 변수
    • 예) 회원가입 방식 - 일반, 카카오톡 계정, 구글 계정, 페이스북 계정
  • 독립 변수 정의 → 해당 변수의 구체적인 수준 설정 (2개 내외)

(4) 종속 변수

  • 인과 관계에서 결과가 되는 변수로 독립 변수에 의해 영향을 받을 것으로 기대되는 변수
    • 예) 가입 전환율
  • 측정 가능해야 하며, 사전에 어떤 기준으로 측정할 지 조작적 정의가 명확해야 함
  • 종속 변수 정의 → 현재 수준 측정 → 실험 후 기대하는 변화 설정

(5) 통제 변수

  • 독립 변수가 아니지만 종속 변수에 영향을 미칠 수 있는 제 3의 변수
    • 예) 가입 경로 - 친구 추천, 광고 클릭
  • 실험 결과에 영향을 미칠 수 있기 때문에 실험 집단 / 통제 집단 모두에서 동등한 조건을 가져야 함
  • A/B 테스트의 성패는
    • 통제 변수 관리에 따라 달림
    • 통제 변수를 잘 설정해서 실험 집단과 통제 집단을 잘 나눴는지에 따라 달림

(6) 샘플 크기

  • 가설 검증에 필요한 실험 참가자 수 설정
  • 통계적 유의도를 확보하기 위한 숫자 고려

(7) 실험 기간

  • 가설 검증을 위한 데이터 수집 기간 정의

1.3. 테스트 설계 시 유의 사항

(1) 실험 / 통제 집단 샘플링

  • 랜덤 샘플링 : 통제 변수가 잘 관리된 것을 전제로 모든 표본이 동일한 확률을 가진 상태에서 뽑는 무작위 추출
    • 단순히 회원 번호, 항공권 예약 번호, 가입 시간 홀/짝으로 구분하는 것은 랜덤 추출이 아님
  • 제 3의 변수가 종속 변수에 영향을 미칠 수 있다고 판단되면 이를 포함해서 샘플링해야 함
    • 예) 강의 추천 알고리즘 - 회원 번호 홀/짝 샘플링 (X)
    • 예) 강의 추천 알고리즘 - 같은 목적으로 강의를 듣는 그룹 내에서 샘플링 (O)

(2) 순차 / 동시 테스트

  • A/B 테스트 == 동시 테스트
  • A/B 테스트 != 순차 테스트
    • A 조건으로 테스트 → B 조건으로 테스트 → 결과 비교
    • 실험 기간이 다름에 따라 외부 효과가 개입할 여지가 있기 때문에 통제 변수 관리 제대로 할 수 없음
    • 불가피하다면 샘플링 오류 여부를 확인해봐야 함
    • 또는, A → B → A 수행해서 같은 시차를 두고 통제 조건을 다시 테스트해봐야 함

(3) 샘플 크기

  • A/B 테스트 진행 전에 미리 정해야 함 (엿보기 & 조기 중지 방지)
  • 다음과 같은 사이트에서 실험 설계 조건 입력 시 필요 크기를 계산해 줌
    • http://www.evanmiller.org/ab-testing/sample-size.html
    • https://docs.adobe.com/content/target-microsite/testcalculator.html

1.4. 테스트 결과 분석

(1) p-value 활용

  • 단순 평균, 합계 지표 차이는 실제 효과라고 볼 수 없음!
    • 우연에 의해 나온 값이거나, 샘플링이나 실험 설계에 따라 얼마든지 달라질 수 있기 때문
  • p-value, 실험의 실질적인 성과, 비용, 가치 등 종합적으로 고려
  • 대립가설 : 내가 확인하고 싶은 연구와 관심의 대상이 되는 가설
    • 효과가 있다 / 차이가 있다 / 서로 다르다
    • 예) A 조건의 가입율이 B 조건의 가입율보다 높다. (X)
    • 예) A 조건의 가입율과 B 조건의 가입율에 차이가 있다. (O)
  • 귀무가설 : 대립가설과 상반되는 가설
    • 효과가 없다 / 차이가 없다 / 서로 다르지 않다
    • 예) A 조건의 가입율과 B 조건의 가입율에 차이가 없다.
  • p-value : 관측된 검정통계량의 값이 귀무가설 하에서 관찰될 확률
    • 검정통계량이 극단적인 값일수록 p-value는 작아짐
    • 즉, 귀무가설 주장과 내가 관측한 데이터(검정통계량) 간의 괴리가 크다는 뜻
    • 즉, p-value가 작아질 수록 귀무가설을 반박할 여지가 생긴다는 뜻
    • 즉, p-value는 귀무가설 지지 정도를 의미하기도 함
    • 단, 샘플 수를 늘릴수록 작아지기 때문에 절대적인 지표는 아님
      • ASA에서는 모든 가설이 타당하다는 전제 하에서, 관찰된 데이터의 통계량이 그 이상으로 극단적인 결과를 얻을 확률이라고 보는 것이 더 정확
      • 통계적 유의성 지표로 사용 시 실험 규모, 실험 기간 등 여러 요소를 고려해서 해석

(2) A/B 테스트 계산기

  • A/B 테스트 계산기 활용하여 통계적 유의성 확인
  • 종속 변수의 형태에 따라 계산 방식이 다름
    • 범주형 (클릭 여부, 가입 여부) - 로지스틱 회귀, 카이 제곱 검정
      • https://www.evanmiller.org/ab-testing/chi-squared.html
      • http://www.abtestcalculator.com
    • 이산형 (클릭 횟수, 결제 금액) - T검증, 분산분석
      • https://www.evanmiller.org/ab-testing/t-test.html
      • https://mathcracker.com/t-test-for-two-means

(3) 테스트 비용과 효과 크기

  • p-value 유의
    • 표본 크기가 클 수록 p-value 낮아짐
    • p-value 가 충분히 낮아서 통계적으로 유의미하더라도 집단 간 차이 자체가 미미하면 현실적 가치가 낮음
      • 통제조건 A - 구매 전환율 3%
      • 실험조건 B - 구매 전환율 3.5%
      • p < .01 - 99% 유의수준에서 통계적으로 유의미
  • p-value 이외에도 실험의 실질적 영향력을 고려해서 판단
    • 구매 전환율 0.5% 개선 시
    • Case1. DAU 1천 명, ARPPU 1만 원 → 일 5만 원 매출 상승
      • 추가 매출 = 1,000 * 0.005 * 10,000
    • Case2. DAU 100만 명, ARPPU 1만 원 → 일 5,000만 원 매출 상승
      • 추가 매출 = 1,000,000 * 0.005 * 10,000

1.5. 테스트 진행 시 체크

  • 설계 시
    • **무가설이 아닌가? ** 가설이 명확한가?
    • 통제 변수 관리를 잘 했는가? 독립 변수 외에 종속 변수에 영향을 미치는 다른 변수가 없는가? 이를 바탕으로 샘플링을 진행했는가?
  • 진행 시
    • p값이 0.05 이하로 내려간다고 실험을 중단하지는 않았는가?
    • 엿보기 / 조기 중지를 하지 않고 지정한 샘플 크기대로 실험을 진행했는가?
  • 해석 시
    • 단순 평균 비교만 하지는 않았는가?
    • 분포, 유의수준, 효과크기 등 종합적으로 고려했는가?
    • 기간 전체의 평균 비교뿐 아니라 시간의 흐름에 따른 종속 변수의 변화도 살펴보았는가?
      • 실험 초기에 조건별 차이가 나는 듯 하다가 후반부에 차이가 없는 경우 혹은 그 반대의 경우 종종 발생
      • 샘플링 실패, 특정 시점 기능 오류, 데이터 수집 과정에서 오류 등일 수 있기 때문에 실험 과정 시간 흐름에 따라 꼼꼼하게 재확인 필요
  • 그 이후
    • A/B 테스트에서 선택받은 B가 과연 최적의 조건인가?
      • A/B 테스트는 전역 최적화가 아닌 국지적 최적화
      • A와 B 조건 자체가 최선이 아니었다면 만족하면 안 됨
    • 이전의 A/B 테스트가 유의미했다고 하더라도 오늘날도 유의미한가?
      • 시장, 계절, 사용자층, 사용자 취향 등의 변화로 테스트 결과는 얼마든지 달라질 수 있음

2. 생각

  • 그동안 변화를 준다거나 새로운 시도를 한다는 것은 리스크를 감수하는 것이라고 생각했다.
  • 하지만, A/B 테스트를 통해 그 효과를 확실하게 파악할 수 있다는 점을 알았다.
  • 앞으로, 새로운 알고리즘을 적용해보거나 아키텍처를 시도할 때 A/B 테스트 적극 활용해서 리스크를 최소화해야겠다.
  • 그리고 A/B 테스트의 성공 여부를 판가름하는 통제 변수 관리를 위해 종속 변수에 영향을 미치는 것들을 다각도로 생각해 볼 필요가 있다.

REFERENCES