1. AB Test란 무엇인가
자사 서비스를 운영하는 IT 기업은 높은 확률로 서비스의 UX/UI 개선을 중요하게 생각한다. 매출 증대와 같이 회사의 존속을 위해 중요한 키 메트릭을 끌어올리기 위해선 서비스의 UI 개선보단 거시적인 비즈니스 전략이 더 중요할 수도 있지만, 서비스의 편의성이 낮아 고객 경험이 낮은 경우엔 밑 빠진 독에 물 붓기와도 같다.
여러 상품을 판매하는 이커머스 서비스를 예로 들어보자. 유저는 서비스에 진입 후 이런저런 행동들을 통해 상품을 탐색하고, 그러다가 원하는 상품을 클릭해 상품 페이지에 진입하고 결국 구매를 하게 될 것이다. 이처럼 앱에 진입 후 구매까지의 일련의 행동들이 발생하는 과정을 고객 여정이라고 한다. 유저는 구매에 이르기까지의 고객 여정 중 여러 경험들을 하게 되는데 여기서 고객에게 부정적인 경험을 주는 무언가를 감지하고 개선하기 위해 퍼널의 단계별 전환율을 확인하게 된다.
홈 > 카테고리 클릭 > 상품 클릭 후 상품 상세 페이지 진입 > 구매 클릭 > 결제 완료-라는 퍼널이 있을 때, 각 단계로 넘어가는 전환율을 보는 것이다. 프로덕트 분석에서 가장 많이 보는 일반적인 데이터라고 할 수 있다. 특정 단계에서 전환율이 급격히 하락할 경우, 해당 단계의 전환율 상승을 목표로 여러 일감을 발굴할 수 있게 된다.
이러한 관점에서 AB 테스트는 프로덕트(서비스) 상의 고객 경험을 개선하기 위해 진행하는 실험이다. 인과 관계를 보기 위해 진행하는 AB 테스트는 특정한 기능의 변화가 목표로 하는 지표에 원인으로서 영향을 미치는지를 확인하기 위해 진행한다. 예를 들어, 상품들의 리스트가 노출되는 페이지에서 상품의 클릭률(=상품 상세 페이지 진입률)을 높이기 위해 기존과 달리 상품 리스트의 상품마다 별점이 노출된다고 가정해 보자.
구조 : 상품들이 노출되는 리스트 페이지 -> 상품 클릭 시 해당 상품 상세 페이지로 이동
- 기존) 상품 리스트 페이지(A) : 상품 이미지와 상품 이름이 노출
- 변경) 상품 리스트 페이지(B) : 상품 이미지와 상품 이름, 별점(5점 만점)이 노출
단, 상품 클릭 후 이동하게 되는 상품 상세 페이지는 A와 B 모두 동일
여기에서 Key Metric은 상품 클릭률이 되고, 원인 변수는 '상품 리스트 페이지에서의 별점'이 된다. 실험 기간이 지난 후 B군의 상품 클릭률이 A군과의 차이가 있는지를 확인한다. (key metric 외에도 sub metric과 guardrail metric도 같이 보는 편이다.)
2. 이중차분법(DID)
AB 테스트는 어떤 변화가 결과에 영향을 미치는지 평가하는 데 유용한 방법이다. 그러나 단순한 전후 비교만으로는 외부 요인이나 시간에 따른 자연스러운 변화를 제대로 반영하지 못할 수 있다. 이럴 때 사용하는 방법 중 하나가 이중차분법(Difference-in-Differences, DID)이다.
이중차분법은 실험군과 대조군 간의 전후 차이를 비교하여 변화가 실제로 변경된 요소로 인해 발생한 것인지 평가하는 통계적 방법이다.
1. 이중차분법(DID) 개념
이중차분법은 실험군(변경을 적용받은 그룹)과 대조군(변경을 받지 않은 그룹)의 변화를 시간에 따른 두 시점(실험 전, 후)에서 비교하는 방식이다. 이를 통해 외부 요인의 영향을 최소화한 순수한 실험 효과를 추정할 수 있다.
- 실험 전후의 차이: 두 그룹에서 실험 전과 후의 차이를 계산한다.
- 이중차분(차이의 차이): 각 그룹에서의 변화율 차이를 비교해 순수한 실험의 영향을 도출한다.
2. 이중차분법 적용
위 그림의 3개 케이스 중 2번째 케이스를 예로 들어 설명해 보겠다.
AB 테스트를 설계할 땐 A, B군을 최대한 랜덤하게 분배하여 한 쪽이 편향되지 않도록 설계하는 것을 '지향'한다. 설계가 잘 되었다면 의도대로 실험 전에는 두 그룹의 지표가 유사한 경향성을 보여야 하고 차이가 있더라도 그 차이가 유의미하게 크지 않아야 한다. 그러나, 실무에선 여러 이유들로 인해 실험 이전부터 이미 한 쪽에 편향된 상황인 경우도 있다.
편의상 실험 이전에는 두 그룹의 차이가 그리 두드러지지 않았다고 가정한다.(통계적으로 유의미한 차이는 아니지만 실험 이전에는 A군의 지표가 B군에 비해 미미하게 더 높다고 가정)
이런 상황에서 아까와 동일하게 상품 리스트에서 상품마다 별점을 추가적으로 노출하는 가상의 실험을 진행한다고 하자.
- 기존) 상품 리스트 페이지(A) : 상품 이미지와 상품 이름이 노출
- 변경) 상품 리스트 페이지(B) : 상품 이미지와 상품 이름, 별점(5점 만점)이 노출
- 실험 시작일 : 9/6
실험 결과를 요약하면 다음과 같다.
상품 클릭 평균 전환율(CVR, %)
|
A군(대조군)
|
B군(실험군)
|
실험 전
|
5.4%
|
5.2%
|
실험 후
|
5.7%
|
7.4%
|
실험 진행 후에 B군의 상품 클릭률이 A군보다 역전하며 시간이 지날수록 차이가 두드러졌다.
자, 여기서 일반적으로 B군과 A군의 차이를 다음과 같이 확인한다.
- 실험 기간 동안의 B군의 지표와 A군의 지표의 차이 : 7.4%-5.7% = 1.7%p
- 상대적 증감률로 계산 시 : +31% 차이
- 편의상 %p 단위로 계산
위와 같이 실험 기간 동안의 두 그룹의 지표 차이를 구한 다음, 이 차이가 통계적으로 유의미한 차이인지를 검정한다. (두 집단의 평균의 차이를 검정하므로 보통은 T-test를 진행. 정규성 성립하지 않을 경우 비모수검정 진행함)
그러나, 실험 기간 동안의 두 지표의 차이만을 고려했을 때 간과할 수 있는 문제가 있다. 만약, 시간이 지남에 따라 해당 지표가 자연스럽게 변화했을 가능성이 있다는 사실을 간과할 수 있고, 실험 이전에 이미 존재하던 두 그룹 간의 차이로 인한 효과를 실험 효과에 의한 영향으로 잘못 해석할 수 있다.
이런 이유로, 실험 기간 뿐만 아니라 실험 이전 기간도 같이 고려하는 이중차분법을 통해 실험의 순수 효과를 측정한다.
이중차분법을 활용한 실험 효과 = (실험 후의 B 전환율 - 실험 전의 B 전환율) - (실험 후의 A 전환율 - 실험 전의 A 전환율)
위 내용을 고려해서 계산하면 다음과 같다.
상품 클릭 평균 전환율(CVR, %)
|
A군(대조군)
|
B군(실험군)
|
실험 전
|
5.4%
|
5.2%
|
실험 후
|
5.7%
|
7.4%
|
실험 후 - 실험 전
|
0.3%p
|
2.2%p
|
- 실험 후의 B 전환율 - 실험 전의 B 전환율 = 2.2%p
- 실험 후의 A 전환율 - 실험 전의 A 전환율 = 0.3%p
- (이중차분법을 활용한) 실험 효과 = 2.2%p - 0.3%p = 1.9%p
이중차분법을 통해 추정한 실험의 순수 효과는 1.9%p로, 실험 이전 기간을 고려하지 않고 실험 기간 동안의 두 그룹의 차이를 구해 도출했던 1.7%p보다 좀 더 큰 것을 확인할 수 있다.
물론, 1.9%p라는 차이가 통계적으로 유의미한 차이인지 검정해야 하고 실무적으로도 유의한 차이인지(비즈니스적으로 유의미한 차이인지) 판단해야 한다.
'Product Analytics' 카테고리의 다른 글
[Stat] 회귀모형 평가하기 - RMSE(평균 제곱근 오차) (0) | 2024.12.24 |
---|---|
[Stat] 선형회귀(linear regression), 최소제곱법 (0) | 2024.12.24 |
AB test 설계 시 주의사항: MDE, 검정력, 표본 크기 등 (0) | 2024.12.05 |
통계적 유의성 검정이 절대적이지 않은 이유 : 통계적 유의성과 실무적 유의성 (0) | 2024.12.05 |
[AB 테스트] 통계적 유의성 검정 방법 (1) | 2024.12.05 |