2024. 6. 12. 19:22ㆍ데이터분석 기술블로그
많은 기업들이 실행하는 실험 방법 중에서 AB테스트는 단순하면서도 대표적으로 실험하는 방법이다. AB테스트는 주로 웹/앱 서비스의 UI 개편에서 많이 사용되는 실험이며 실험 과정은 다음과 같다.
1. 임의로 구분 지은 두 집단을 분리하여 (이유 중요)
2. 한 집단에게는 기존 페이지를 보여주고 다른 집단에게는 새롭게 개선할 예정인 페이지를 보여줌
3. 두 집단 중 어떤 집단이 더 높은 성과를 보이는지 측정하여, 새 페이지가 기존 페이지에 비해 좋은지를 정량적으로 평가
- 여기에서 성과란 새 사이트가 목표로 했던 바에 따라 다른데, 보통은 회원 가입율, 재방문율, 구매전환율 등의 지표를 본다.
- 정량적 수치를 어떻게 평가할 것인지가 중요하다.
AB테스트의 기반 이론
인과 추론 - 무작위 표본 추출이 필요한 이유와 방법
인과관계의 파악이 중요한 이유는 과거의 액션에서 발생한 결과로 미래에 같은 액션을 반복했을 때, 어떤 결과가 나올 지 어느 정도 예상 가능하지만 이러한 가정이 자세히 들여다보면 정반대의 결과가 나올 수 있기 때문이다. 과거의 데이터에서 발견한 현상이 미래에 재현되리라 기대하기 위해서는, 과거의 현상이 왜, 어떤 배경에서, 어떤 이유로 발생한 것인지 인과 관계에 대한 이해가 꼭 필요하다. 사례를 통해 이해도를 높여봤다.
- ex.1) 아이스크림 매출이 증가한 것은 ([A.광고비 예산을 늘려서] [B.전년도 대비 기온이 더 높아서]) 때문이다.
- 광고비 예산을 늘려도 올 해 날씨가 작년보다 좀 더 시원했기 때문에 무더웠던 작년 아이스크림 판매량 만큼 올 해도 같은 판매량을 유지할 수 있을 지 알 수 없다.
- ex.2) 커머스 사이트의 고객 데이터에서 구매까지 걸리는 시간이 짧을 수록 구매 확률이 높았다. → 구매 여정 프로세스를 간소화하여 개편을 추진하였다.
- UX를 개편했지만 알고 보니 해당 고객들은 웹사이트에 여러번 반복해서 방문해 업로드 된 물건을 서핑한 한 후, 최종 구매 물건을 내심 확정한 후 다시 사이트에 들어와 물건을 구매해간 고객들이었음.
- 이러한 고객들에게 개편한 UX는 검색 시 노출되는 상품의 가짓수가 줄어드는게 물건 탐색에 불편함으로 다가와 서비스를 이탈함.
RCT기법이 어떻게 인과 관계를 보이는지에 대한 원리인과관계를 어떻게 입증할 수 있을까?
AB테스트는 RCT(Randomized Controlled Trials)의 일종인데, 단어 뜻 그대로 랜덤하게 실험군과 대조군으로 나누어 편차를 줄이는 방법이다. 이번에도 사례를 통해서 RCT의 원리 이해를 도왔다.
- 한 여름날, 아이스크림 가게에서 대대적인 광고를 진행하였고 A에게 광고 송출을 하였다.
→ A는 한 달에 20개의 아이스크림을 사먹었다. - 모든 조건이 똑같은 평행세계의 A에게 광고 송출을 하지 않았다.
→ A는 한 달에 10개의 아이스크림을 사먹었다.
두 평행세계의 A에게 달라진 점은 광고 송출 여부이다. 이로 인한 결과는 2배의 아이스크림 소비량이다. 이 차이를 '개입 효과'라고 부른다. 현실에선 이렇게 개인에 대한 개입효과를 측정할 수 없다. 그렇지만 집단에 대한 개입효과는 실험으로 측정 가능하다.
- 실험군 A, B, C 에게는 광고 송출, 대조군 D, E, F 에게는 광고를 송출하지 않음. 두 집단의 아이스크림 소비량 평균을 내서 비교하여 개입효과를 측정
그러나 이 방법도 완전한 조건이 아니다. 실험군의 3명이 원래 아이스크림을 많이 먹는 사람들이었다면, 또는 B 혼자서 아이스크림을 하루에 20개씩 먹는 덕후라면, 광고 노출 여부와 무관하게 실험군 사람들은 원래 아이스크림을 많이 먹어서 판매량이 높은거다 라는 주장에 반박하기 어려움. 이를 보완하기 위해 두 집단을 설계할 땐 두 가지 조건이 필요함.
1. 두 집단 모두 충분히 큰 집단을 이루고 있어야 한다.
2. 두 집단으로 사람을 나눌 때는 무작위로 나눈다. 그러나 표본들이 특정 요인에서 한쪽으로 치우쳐지는 편향이 생길 경우 개입효과를 구분해 낼 수 없다. 그래서 무작위로 집단을 나누는 것은 꽤 어려운 일이다.
통계적 검정 - 통계적으로 유의미하다는 것의 의미를 가지려면 몇개의 표본이 필요할까?
유의성 검정
유의성 검정은 주장하고 싶은 가설이 있고, 수집한 데이터가 그 가설을 뒷받침할 수 있는지를 확인하는 것. 이것은 귀무가설 혹은 영가설을 테스트하는 것이다. 귀무가설은 연구자가 검증하고자 하는 가설로, “어떤 효과가 없다”, 혹은 “집단 간의 차이가 0.1 이다”와 같은 식이다. 주장하고자 하는 가설의 반대를, 기각될 것을 상정하여 귀무가설로 세운다. 귀무가설을 검정하기 위해 연구자는 P값을 계산하게 된다. 이 P값이란, “귀무가설 하에서 관측된 자료 이상으로 극단적인 자료가 관측될 확률”을 의미한다. P값이 작다면 연구자가 얻은 자료가 귀무가설 하에서는 관측되기가 힘들다, 즉 귀무가설로는 설명이 되지 않는다는 것을 말한다.
ex)
- UX연구원은 이번에 개편된 UX가 구매 속도에 영향을 미쳤는지 궁금함.
- 연구원은 이전의 고객들의 구매 속도에 대한 데이터가 있고, 새롭게 개편된 UX를 경험한 고객들의 구매속도 데이터를 보유함
- 귀무가설 : 이전의 프로세스와 지금의 프로세스의 구매 속도 차이가 없다(혹은 있다)’라고 설정.
- 귀무가설을 기각할지 결정하기 위해 새로운 UX를 경험한 고객들의 구매속도가 이전의 UX에서의 구매속도 데이터에서 나타날 확률을 계산.
P값은 귀무가설에 대한 반증의 정도를 나타내는데, P값이 충분히 작으면 귀무가설을 기각한다. 그 기준을 ‘유의수준’이라고 부른다. 사회과학 분야에서는 일반적으로 유의수준을 0.05로 삼아 P값이 이를 넘는지 아닌지를 계산한다. 그러나 유의수준 값의 0.05라는 기준은 단순히 계산 편의에 맞물려 제안된 값일 뿐, 0.01이던, 0.05던 꼭 여기에 고정될 필요는 없다. 연구자의 도메인 지식, 실험의 분야에 따라 얼마든지 조정될 수 있다. 예를들어 아주 정밀한 실험이 필요한 바이오나 반도체 분야에서는 유의 수준을 0.00005… 같은 수준으로 설정하기도 한다.
가설 검정의 원리 - 반복적인 의사결정을 내리는 상황
네이만-피어슨의 가설검정은 유의성검정과 다른 중요한 차이점이 있는데 바로 관심사이다. 네이만-피어슨의 가설검정이 필요한 상황은 반복적인 의사결정을 내려야 하는 상황일 때이다. 즉, 검정을 계속할 때, 그 중 얼마만큼 오류를 저지르는지, 그리고 그 오류를 특정 값 이하로 통제하려면 어떻게 해야하는지가 궁금한 것이다. 그 때문에 유의성검정과 달리 가설은 귀무가설과 이에 대립하는 대립가설 2가지를 설정한다. 네이만-피어슨의 가설검정에서는 두 가설 중 어떤 가설을 채택할 것인지에 대한 고민이다. 사례를 통해 좀 더 이해해본다.
ex)
- 연구원은 구매율을 높이기 위해 OneClick 버튼을 구현할지, 안할지 고민 중임.
- 이 버튼이 구매율을 높일수도 있지만, 그렇지 않을 수도 있으며 발생 가능한 미래는 2가지이다.
- 1. OneClick 버튼은 구매율을 높인다. 2. OneClick 버튼은 구매율을 높이지 않는다. 이를 기반으로 다음의 4가지 시나리오가 있다.
- 1. (선택) OneClick 버튼은 구매율을 높일 것이다 → (사실) OneClick 버튼이 구매율을 높임
- 2. (선택) OneClick 버튼은 구매율을 높일 것이다 → (사실) OneClick 버튼이 구매율을 높이지 않음
- 3. (선택) OneClick 버튼은 구매율을 높이지 않을 것이다 → (사실) OneClick 버튼이 구매율을 높임
- 4. (선택) OneClick 버튼은 구매율을 높이지 않을 것이다 → (사실) OneClick 버튼이 구매율을 높이지 않음
- 여기서 'OneClick 버튼이 구매율을 높이지 않는다’를 귀무가설로, ‘OneClick 버튼이 구매율을 높인다’를 대립가설로 세운다.
4가지 시나리오 중 옳은 결정을 한 경우는 1,4번이며 2,3번은 가설이 틀렸다. 가설검정에서 과정에서 발생하는 오류는 ‘1종오류’와 ‘2종오류’ 2가지가 있는데, 1종오류는 귀무가설이 참인데 대립가설을 채택하는 오류, 2종 오류는 대립가설이 참인데 귀무가설을 채택하는 경우이다. 시나리오 2번은 귀무가설이 참인데 대립가설을 채택하여 1종오류가 발생했다. 때문에 개발 리소스를 포함한 비용이 발생하였다. 4번은 대립가설이 참인데 귀무가설을 채택하여 2종 오류가 발생했다. 이 경우 버튼을 만들어서 얻을 수 있는 기회비용을 잃었다. 보통은 1종오류가 더 큰 비용을 동반하는 것으로 여긴다.
표본의 크기 계산
연구자는 개발비용과 기회비용을 저울질하며 실험을 설계한다. 연구자는 허용 가능한 1종오류의 확률(알파)과, 허용 가능한 2종오류의 확률(베타)를 사전에 정의한다. 알파를 통제하기 위해 연구자는 귀무가설을 기각하기 위한 필요한 최소한의 통계치 값을 설정한다. 이것이 임계치(critical value) 또는 기각역(critical region)이 된다. 그리고 베타를 통제하기 위해서는 표본 크기를 결정한다. 검정력(power)란, 1에서 베타를 뺀 값으로, 대립가설이 옳을 때 귀무가설을 기각하고 대립가설을 채택할 확률을 의미한다. 특정 검정력을 위해 필요한 표본 크기를 계산함으로 연구자는 베타값을 통제할 수 있다. 그리고 의사결정의 규칙은 사전에 영가설/대립가설, 알파, 베타, 표본크기를 결정하고, 데이터를 확보한 후 그로부터 계산한 통계치가 임계치보다 크면 영가설을 기각/대립가설을 채택하고, 그렇지 않으면 귀무가설을 유지/대립가설을 비채택한다. 검정력 분석을 사용하면 아래 4가지 중 3가지 값을 가지고 있다면 남은 1가지를 계산해낼 수 있다. 검정력 분석의 원리와 이를 다루는 것은 통계전공자들의 몫이고, 우리는 이들이 만들어놓은 계산기로 표본의 크기를 계산하기만 하면 될 것이다.
- 기각역(알파)
- 대립가설을 선택한 효과의 크기
- 검정력 (1-베타)
- 실험의 표본 크기
위 4가지 조건에서 우리가 아직 다루지 않은 개념은 ‘대립가설을 선택한 효과의 크기’이다. 여기에 더해 알파와 베타를 설정하면 실험에 필요한 표본의 크기를 계산할 수 있다. 중요한 것 2가지는 검증하고자 하는 효과가 작을수록 더 많은 샘플이 필요하다는 것, 그리고 그룹간의 차이가 비율인지, 절대값인지에 따라 거리 계산에 사용되는 수식이 달라진다는 사실이다.
영가설 유의성 검정
앞서 설명한 유의성검정과 가설검정의 개념을 알아보았지만 현대 통계학에서 보편적으로 쓰이는 가설검정법은 영가설 유의성 검정법(NHST)이며 두 방식을 부분적으로 취득해 만들어졌다고 한다...순서는 이렇다
1. 귀무가설과 대립가설을 설명한다
2. 1종오류와 2종오류에 대해 설명한 다음 유의 수준(알파)를 설명한다
3. 데이터로부터 통계량을 계산하고 이에 대한 P값을 구한다
4. P값이 유의수준보다 작으면 귀무가설을 기각한다. 그렇지 않으면 귀무가설을 채택하거나 기각하지 않는다.
검정에 쓰이는 변수의 타입에 따라 사용하는 검정방법이 달라진다. 아래의 예제에서는 변수가 비율을 나타내기 때문에 카이제곱검정을 사용한다.
AB테스트 수행
실험 설계 앞단의 과정들
- 타겟 지표 설정을 위해서는 사업적 목표에 대한 이해가 필요하다.
- ex) 리텐션
- 사업적 목표는 보통 실험으로 잘 흔들리지 않는다. 실험을 위해 더 민감한 지표를 구상할 수 있어야 한다. (프록시지표 or 요인지표)
- ex) 유저 편의성 → 리텐션
- 프록시 지표를 어떻게 측정할 것인지 고민한다. 추상적인 개념을 측정하고 정량화시킨다.
- ex) (정량화) 고객들이 구매까지 걸리는 시간 = 유저편의성 → 월간 리텐션 증가
분석가에게는 잘 정제된 데이터를 툴에 넣고 돌려 결과를 뽑는 수준 이상이 요구된다.
데이터가 없을 때의 데이터 분석가
앱/웹 프로덕트 데이터를 얻기는 수월해졌지만 그렇지 않은 경우가 더 많다. 잘 짜여진 데이터가 분석가에게 주어지기만 하는 환경이 흔치 않다. 마련되어 있다 하더라도 새로운 프로젝트에 참여한다면 새롭게 데이터 구축 작업이 필요하다. 특히 실물 자산이 있는 서비스의 경우 난이도가 높아진다. 아래는 데이터 분석가들의 고충이 담긴 내용들이다.
- 분석가는 데이터 수집 단계에서부터 개입한다
- 개발자 : 분석가님, 앱의 사용자 액션을 로그로 남길껀데 어떤 로그를 남기면 될까요?
- 이 때는 분석가가 비즈니스 임팩트를 남기기 어렵기 때문에 마케팅, 개발 등 가능한 일은 다 병행함
- 엄밀한 실험 설계는 어렵고 분석가에게는 시간과 데이터 자원이 항상 부족하다
- 실험을 통한 개선이 좋은 프로덕트를 만들 수 있을까? (그로스해킹 대한 최근의 비판 여론)
쓰다보니 내용이 방대해졌다. 추후에 요약하여 수정 후 업데이트를 해야겠다.
'데이터분석 기술블로그' 카테고리의 다른 글
성동2기 전Z전능 데이터 분석가 27일차 [데이터분석 스프린트 결과] (0) | 2024.06.24 |
---|---|
성동2기 전Z전능 데이터 분석가 22일차[데이터분석 스프린트 시작] (0) | 2024.06.13 |
성동2기 전Z전능 데이터 분석가 20일차[데이터 시각화] (0) | 2024.06.11 |
성동2기 전Z전능 데이터 분석가 19일차[numpy, pandas_02] (0) | 2024.06.10 |
성동2기 전Z전능 데이터 분석가 18일차 [numpy, pandas_01] (0) | 2024.06.10 |