본문 바로가기
Growth

🔥 프롬 특강 - 신뢰할 수 있는 A/B 테스트를 위해 알아야할 것들 (이민호)

by Diligejy 2022. 5. 3.

https://www.youtube.com/watch?v=5nXu1E0m4e0&ab_channel=from.designer 

1. 왜 AB테스트를 하는가?

A. CASE : Office 365

1) 마이크로소프트의 구독 서비스인 오피스 365 사용자 데이터를 분석해보니, 에러 메시지를 보거나 오류를 겪은 사람들의 구독 해지율이 더 낮았다고 합니다.

 

2) 그렇다면 에러를 더 많이 발생시키면 사람들의 구독 해지율은 낮아질까요?

3) 데이터를 통해 확인할 수 있는 것은 상관관계이지 인과관계는 아닙니다.

    a. 오피스 365 케이스는 <서비스 사용량>이 <에러>와 <구독 해지율> 모두에 영향을 미치면서 발생한 현상입니다.

    b. 오피스 365의 헤비 유저들은 서비스를 오래 사용하다 보니 자연스럽게 에러를 많이 경험하게 되었습니다.

 

4) 무엇인가 값을 바꾸었을 때 직접적인 영향을 받아 변하는 것이 있다면 인과관계라고 볼 수 있습니다.

5) 하지만 인과관계가 없더라도 두 변수간의 연관성이 있을 수 있습니다. 이런 연관성은 상관관계라고 합니다.

 

B. 인과관계로 인한 효과를 파악하려면 어떻게 해야 할까요?

 

1) 에러를 많이 볼수록 구독 해지율이 낮아진다는 것은 상식적으로 말이 안되니, 이상하다는 것을 빨리 알아챌 수 있습니다.

2) 그러면 일반적인 상황에서는 어떻게 이런 함정을 피할 수 있을까요?

 

3) 기존 사이트 A안에서 구매 과정의 UX를 개선한 B안을 테스트해보기로 했습니다.

4) 의도한 대로 된다면 구매전환율이 오를 것이라고 기대하고 있습니다.

5) 이 때, UX 개선이 구매전환율에 미치는 영향을 어떻게 확인할 수 있을까요?

    a. 이상적인 경우 

        - A안을 겪었을 때와 B안을 겪었을 때 각각 구매하는지 여부를 비교해야 합니다.

        - A안과 B안의 미래를 보고와서 비교하는 것이 가장 이상적으로 인과 효과를 계산할 수 있는 방법입니다.

        - 하지만 현실에서는 두 가지 방안 중에서 우리가 선택한 한 가지 케이스만 실제로 겪을 수 있습니다.

    b. 현실적으로 계산하려면?

        - 사람들을 두 그룹으로 쪼개서 한 그룹은 A안만, 다른 그룹은 B안만 보여주고 평균을 비교합니다.

        - 두 그룹의 특성이 모든 면에서 너무 비슷해서어느 그룹인지 이름표를 붙이지 않을 경우 구분하기 어려울 정도가 되면, 두 그룹의 평균적인 차이가 바로 B안으로 인한 인과 효과라고 볼 수 있습니다.

 

C. A, B군을 어떻게 나누어야 할까요?

1) 사람이 구분하기 어려울 정도로 비슷하게 2개 그룹으로 나누려면 어떻게 해야할까요?

2) 성별, 연령대, 모바일 기기, 관심사, 구매 성향 등등 우리가 고민해야 하는 기준들은 어마어마하게 많습니다.

3) 어떤 사람이 A안과 B안 중 어디에 배정되어야 하는지를 동전 던지기를 통해 확률적으로 결정하면 문제가 해결됩니다.

 

2. 실제 A/B테스트 환경에서는 A, B군을 어떻게 나눌까요?

A. 실험그룹을 나누는 방식은 다음의 조건을 만족해야 합니다.

1) 같은 실험에서는 유저를 항상 동일한 그룹에 배정합니다.

2) 같은 유저라도 실험이 바뀌면 새롭게 그룹을 배정합니다.

 

-> 어떻게 하면 이 조건을 쉽게 만족시킬 수 있을까요?

 

B. 버킷을 사용한 그룹 배정

1) 유저 식별자와 실험 식별자에 해시 함수를 적용하고 해당 값을 바탕으로 실험 그룹을 배정합니다.

    a. 해시 함수는 특정한 값을 받았을 때 임의의 숫자를 반환합니다. (입력하는 값이 같으면 반환되는 숫자도 같습니다.)

    b. 해시 함수를 적용한 결과를 1000으로 나누었을 때 나머지가 얼마나 되는지 구합니다.

    c. 전체 트래픽의 20%만 실험을 진행하고 싶다면 0~199에 해당하는 유저가 대상이 됩니다.

    d. A그룹과 B그룹을 50:50으로 나누고 싶다면, 값이 0~99이면 A그룹, 100~199이면 B그룹에 배정합니다.

 

3. 신뢰할 수 있는 A/B 테스트 결과를 얻기 위해서는 어떤 조건들이 필요할까요?

A. 실험 결과를 신뢰할 수 있으려면 다음과 같은 조건을 만족해야 합니다.

1) A그룹과 B그룹이 균일하게 나누어져야 합니다.

2) A그룹과 B그룹은 서로에게 영향을 미쳐서는 안 됩니다.

3) 의사결정이 가능할 정도로 충분히 많은 데이터를 확보할 수 있어야 합니다.

4) 대상자가 실험여부를 인지하게 되면 편향이 발생할 수 있습니다.

-> 이와 같은 조건들을 만족하지 못하면, AB 테스트 결과를 신뢰할 수 없는 상태가 될 수 있습니다.

 

4. 실험 결과를 어떻게 해석해야 할까요?

A. 기본적인 컨셉 : "무죄 추정의 원칙"

1) p-value를 사용하는 일반적인 통계적 테스트는 무죄 추정의 원칙과 유사한 방식으로 의사결정이 진행됩니다.

    a. 확실한 증거가 나오기 전까지는 "증거 불충분" 상태로 봅니다.

    b. 통계적으로 판단할 수 있을 정도로 데이터가 쌓이고, 두 그룹간에 유의미한 차이가 존재하면 결론을 내립니다.

    c. 유의미한 차이가 존재하는지 판단하기 위해 p-value를 사용합니다.

 

B. p-value는 도대체 무엇일까요?

1) A군과 B군에 각각 다른 시안을 보여주고 클릭률을 비교하는 실험을 진행하여 p-value를 계산했습니다.

2) 이 때 p-value는 동일한 샘플 수로 A군과 B군을 나누고 같은 시안을 보여줬을 때도 클릭률이 더 크게 차이가 날 확률을 의미.

    a. 두 시안의 실제 클릭률에 큰 차이가 없다면 10% vs 10.1%

        - 동일한 시안을 보여줄 때 우연히 그 이상(0.1% 이상)차이가 날 확률이 높습니다. 이 경우 p-value값이 높아집니다.

    b. 두 시안의 실제 클릭률에 큰 차이가 있다면 10% vs 15%

        - 동일한 시안을 보여줄 때 우연히 그 이상(5% 이상) 차이가 날 확률은 높지 않습니다. 이 경우 p-value값은 낮아집니다.

3) p-value는 "A안과 B안에 차이가 없을 확률"을 의미하는 것이 아닙니다. 해석할 때 주의해야 합니다.

 

C. 구체적인 의사결정 절차

1) A안과 B안 사이에 차이가 없을 것이라고 최대한 보수적으로 가정합니다. 

    a. 이러한 가정을 귀무가설이라고 합니다.

2) 유의수준을 설정하고 실험을 수행합니다.

    a. 보통 유의수준은 0.05로 설정합니다.

    b. 100번 중 5번 정도는 실제로 차이가 없는데도 차이가 있다고 판단해버리는 오류가 발생할 수 있습니다.

3) 실험이 끝나면 p-value를 계산하고, 이 값을 유의수준과 비교합니다.

    a. p-value값이 유의수준보다 작으면, 두 안 사이에 차이가 없다는 귀무가설이 통계적으로 유효하지 않다고 판단합니다.

    b. p-value값이 유의수준보다 크거나 같으면, 귀무가설이 여전히 유효하다고 판단합니다.

 

5. 실험과정에서 어떤 것들을 주의해야 할까요?

A. 실험을 어떻게 설계해야 할까요?

I. A/B군을 나누는 기준이 무엇인지 결정합니다.

1) 세션, 유저, 디바이스 등 다양한 기준을 통해 A/B군을 나눌 수 있습니다.

2) 일반적으로는 유저를 기준으로 하는 경우가 많습니다.

3) 유저를 구분하는 방식은 서비스, 환경에 따라 크게 달라질 수 있기 때문에 그에 맞게 실험을 구성합니다.

 

II. 어떤 지표로 평가할지 결정합니다.

1) 실험하고자 하는 지표를 미리 추출해서 분석해보세요.

    a. 측정을 못하는 상황이거나 애초에 측정할 수 없는 값인데 실험부터 고민하려고 하지 마세요

2) 지표를 어떻게 계산하는지 확인하세요

    a. 특히, 비율의 경우 분모와 분자를 정확히 파악하세요

    b. ex - 구매전환율이 [구매 / 상품 클릭] 인지, [구매 / 상품 노출] 인지

 

III. 어떤 실험방식을 사용할지 결정합니다.

IV. 데이터가 얼마나 필요한지 확인합니다.

1) 필요한 데이터 수를 계산하기 위해 결정해야 하는 값 (전환율 기준)

    a. 기본 전환율(Baseline Conversion Rate) - 현재 기존 안의 전환율

    b. 실험의 민감도(MDE : Minimum Detectable Effect) - 얼마나 차이가 났을 때부터 개선 여부를 판단할까?

    c. 신뢰도(Statistical Significance) - 두 안에 차이가 없을 때 없다고판단하는 정확도(보통 95%를 사용)

    d. 검정력(Power) - 두 안에 차이가 있을 때 있다고 판단하는 정확도(보통 80%를 사용)

2) 참고 사이트

    a. https://www.optimizely.com/sample-size-calculator/

 

Sample size calculator

This statistical significance calculator allows you to calculate the sample size for each variation in your test you will need, on average, to measure the desired change in your conversion rate. In many cases, if Intelligence Cloud detects an effect larger

www.optimizely.com

    b. https://www.evanmiller.org/ab-testing/sample-size.html

 

3) 데이터 수 결정 원칙

    a. 기본 전환율이 낮을수록 데이터가 더 많이 필요합니다.

    b. 디테일한 차이를 감지하려면 데이터가 더 많이 필요합니다.

    c. 실험의 정확도를 높이려면 데이터가 더 많이 필요합니다.

V. A/A 테스트를 통해 실험의 안정성을 확인합니다.

1) 각 그룹을 나눈 다음에 모든 그룹에 동일한 안을 보여줍니다.

    a. 그룹이 의도했던 비율로 균일하게 나누어지는지 확인합니다.

    b. 지표의 변동성이 얼마나 되는지 확인합니다.

2) 일반적으로 사용하는 95% 신뢰도를 가지는 실험을 진행한다면, A/A 테스트를 100번 진행했을 때 5번 정도는 두 그룹간의 지표가 다르다는 결과가 나올 수 있습니다.

3) 굳이 실험을 별도로 진행하지 않더라도, 기존 데이터를 통해 분석해볼 수 있습니다.

 

댓글