[GrowthHacking] 그로스 해킹 (2)
그로스 해킹 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 테스트가 유의미했다고 하더라도 오늘날도 유의미한가?
- 시장, 계절, 사용자층, 사용자 취향 등의 변화로 테스트 결과는 얼마든지 달라질 수 있음
- A/B 테스트에서 선택받은 B가 과연 최적의 조건인가?
2. 생각
- 그동안 변화를 준다거나 새로운 시도를 한다는 것은 리스크를 감수하는 것이라고 생각했다.
- 하지만, A/B 테스트를 통해 그 효과를 확실하게 파악할 수 있다는 점을 알았다.
- 앞으로, 새로운 알고리즘을 적용해보거나 아키텍처를 시도할 때 A/B 테스트 적극 활용해서 리스크를 최소화해야겠다.
- 그리고 A/B 테스트의 성공 여부를 판가름하는 통제 변수 관리를 위해 종속 변수에 영향을 미치는 것들을 다각도로 생각해 볼 필요가 있다.
REFERENCES
- [블로그] P-value란?
- [블로그] p-value란? / p-value 사용 시 주의할 점
- [서적] 그로스 해킹 (위키북스, 2021)