Search
🎯

Study 3

아래의 강의 자료를 토대로 배운 내용들을 정리했습니다.

A/B test 를 사용하는 적절한 상황?

웹사이트의 어떤 특징을 변경시켰을 때, 재방문자수와 리퍼럴 유입자수 증가를 확인하고 싶다
A/B test 를 하지 않아도 확인 가능하고, 영향을 확인하기까지의 시간이 오래 걸림
브랜드(로고 변경을 포함) 업데이트에 대한 사용자들의 반응이 궁금하다
사용자들의 반응은 너무 천차만별이다.
홈페이지 변경에 따른 테스트
정확한 통제 환경과 지표를 선정할 수 있다.

실습 - Audacity 가상 웹페이지

Audacity 라는 가상 웹페이지에서 Start Now 라는 버튼의 색깔 ‘주황색’ → ‘핑크색’ 으로 변경해보기로 한다.
가설 : “Start Now” 버튼의 색깔을 ‘주황색 → 핑크색’ 으로 변경하면 Audacity 강의를 찾는 유입자 수가 더 증가할 것이다.

지표 설정하기

1.
Audacity 의 매출로 이어지는 결정적인 유저의 행동
a.
완강되는 강의의 총 수
→ 학생들마다 완강하는 시간이 천차만별일 것이기 때문에 지표로 사용하기 힘들다
b.
버튼의 클릭 수
i.
그룹의 크기가 다르다면, 클릭 수만으로는 결과를 정확하게 해석할 수 없다.
주황색 점 - 클릭한 경우
c.
클릭 수 / 홈페이지뷰 수 = CTR
d.
클릭한 고유 방문자 수 / 홈페이지의 고유 방문자 수 = (Click - Through - Probability)
위에 rate 가 CTR, prob가 CTP 다.

왜 CTR 이 아닌 CTP 인가?

CTR 은 특정 기능의 사용성을 평가할 때, 주로 사용된다. 즉, 얼마나 사용자들이 해당 기능을 잘 찾는지를 보여준다고 생각하면 된다.
반대로 CTP는 얼마나 많은 유저들이 버튼을 누르고 다음 페이지로 넘어가는지 확인하고 싶을 때 사용한다.(중복해서 클릭한다던가, 리로드한다든지의 경우들을 제외하고 보는 것)
CTR 계산
: 순페이지뷰당 적어도 하나의 클릭뷰가 있는 경우의 수 / 순페이지뷰수

가설 구체화하기

가설 : “Start Now” 버튼의 색깔을 ‘주황색 → 핑크색’ 으로 변경하면 버튼의 CTP 더 증가할 것이다.

얼마만큼의 증가가 유의미한 것일까?

다음과 같이 가정해보자.
순방문자 수 : 1000
클릭한 방문자 수 : 100
→ 현재 CTR : 10% ~= 0.1(p_hat)

어떤 통계 분포를 사용할 것인가

클릭을 했냐 안했냐 등과 같이 두가지 경우의 수로 평가되는 지표를 사용할 경우, 이항분포 를 사용한다.
또한, 지표가 확률이기 때문에 비율 검증을 사용해야 된다.
이항분포는 n(즉, 시행 횟수)가 ≥ 30 일 때, 정규분포에 근사한다.
그럴 경우, 성공 확률이 : p, 실패확률이 : 1 - p 라고 하면
평균 : p
표준편차 :
p(1p)n\sqrt{\frac{p(1-p)}{n}}
[이항 분포의 가정]
2가지의 경우의 수(성공/ 실패)만 나올 수 있다
동일한 실험을 독립적으로 n번 반복
한 경우에 성공이 발생했을 때, 그 다음의 결과에 영향을 미치지 않는다는 조건
매 시행마다 성공이 일어날 확률은 p 로 동일해야 된다.
ex )
shuffled deck 에서 20개의 카드를 맞춰보기 (결과 : red / black)
→ 독립적이지 않다. (그 다음에 나올 카드의 색깔을 유추할 수 있다)
50번 주사위 던지기(결과 : 6(성공) / 그외(실패))
검색 페이지 클릭하기(결과 : 클릭(성공) / 클릭 X(실패))
→ 독립적이지 않다. (검색 후 원하는 결과가 나오지 않아서 다시 검색할 수도 있다)
2달 뒤에 완강한 학생 수 (결과 : 완강(성공) / 완강 X (실패))
일주일 이내로 구매된 상품수(결과: 구매(성공) / 구매 X (실패))
→ 주문당 상품 수가 다를 수 있기 때문에 매 시행마다 동일 확률이 아니다

신뢰구간 계산하기

신뢰구간을 계산하기 위해서는 표본 표준편차값을 구해야 한다.
경험법칙에 의해 N * p_hat > 5 이고, N * (1 - p_hat) > 5 라고 한다면, 정규분포를 이용해도 된다.
앞선, p_hat 에 따라 위의 조건을 만족하고,
정규분포의 오차범위를 계산하면
m = Z * SE = Z * p(1p)n\sqrt{\frac{p(1-p)}{n}} = 0.019
즉, 약 1000번의 페이지뷰에서 약 80번과 120번의 사이의 클릭수 사이를 벗어나는 클릭수가 발생한다면 큰 의미가 있다고 볼 수 있을 것이다.

A/B test 진행하기

양측 검정 vs 단측 검정 - 만약, 테스트하고자 하는 기능의 긍정적 효과만 검증하고자 한다면 단측 검정만으로 충분하다. - 반대로, 테스트하고자 하는 기능의 양방향의 영향력을 확인하고자 한다면 양측 검정을 수행하면 된다.
귀무 가설(H0) : Pcont = Pexp 또는 Pcont - Pexp(d_hat) = 0
대립 가설(H1) : Pcont ≠ Pexp 또는 Pcont - Pexp(d_hat) ≠ 0
검정통계량 : p(Pexp_hat - Pcont_hat | H0)
검정통계량 값이 < 0.05 : 귀무가설 기각, 대립가설 채택

두 모비율의 비율 검정

합동 표본 비율
위의 계산 식을 사용해서 다시 가설을 정의해보면
귀무가설(H0) : d = 0 , d_hat ~ N(0, 합동표본표준편차)
대립가설(H1) : d ≠ 0
유의 수준이 0.05라고 한다면, 양측 검정에서
d_hat > 1.96 * SEpool or d_hat < - 1.96*SEpool 일 경우 , 귀무 가설을 기각한다.

통계적 검정력

더 낮은 변화를 감지하고 싶을 경우(또는 높은 신뢰 구간을 갖고 싶을 때) 더 큰 표본 집단이 필요하다.
1 - β\beta : 민감도
일반적으로 실무에서 사용되는 신뢰구간에서는 민감도가 높은 것을 좋아한다. 보통 80% 를 선택한다.
α\alpha : 유의 수준
표본 수가 적다면, α\alpha 는 더 작게 잡고, 그만큼 검정력은 높아진다.

표본 수 결정하기

현재 보려는 지표의 baseline, 최소 변화 감지율, 검정력, 유의 수준을 결정하면 최소 필요한 그룹별 표본 수를 구할 수 있다.
baseline metric rate : 10%
minimum detectable effect : 2%
검정력 : 80%
유의수준 : 0.05
라고 하면, 최소 필요한 표본 수는 3,623이 된다.
[ cases ]
baseline metric rate를 20% 로 더 높였을 때, 필요한 표본수는 증가할까, 감소할까?
증가한다.
minimum detectable effect 를 5% 로 증가한다고 했을 때, 필요한 표본수는 증가할까, 감소할까?
감소한다.
신뢰구간을 증가한다고 했을 때(α\alpha 는 작아진다), 필요한 표본수는 증가할까, 감소할까?
증가한다.
더 높은 민감도를 원한다고 했을 때(β\beta 는 작아진다), 필요한 표본수는 증가할까, 감소할까?
증가한다.

통계적 유의성과 실무의 유의성

통계적으로 유의하다고 해서 바로 대안을 실행하지 않는다. 실무적인 가치를 따져봤을 때, 그만큼의 가치가 없다고 판단되면, 통계적으로 유의하다고 해도 대안을 적용하지 않을 수 있다.
dmin : 지표값의 최소 변화 기준치(실무적 유의성 관점) → 적어도 신뢰구간이 dmin 보다는 커야 실무적으로도 유의미하다는 것을 확인할 수 있다.
︎ 마지막 세가지의 경우에 있어서 새로운 실험을 하기 어려운 상황일 경우에는 의사 결정권자의 의견을 따르거나 다른 비즈니스 상황이나 요인들을 추가적으로 확인해서 결정하기도 한다.

실험 정책과 윤리

Assessing Risk

최소 위험 부담보다 실험을 진행하면서 얻을 위험이 더 큰지 확인하는 작업

Benefits

최소 위험 부담금을 패스했다면, 얼마만큼 개선이 될 수 있거나 이익을 줄 수 있는지

Alternatives

Data Sensitivity

[ 데이터의 민감도 평가하기 - 예시 ]
인종, 나이, 성 등의 인구통계 자료 관련 데이터
특정 지역에 일별 방문하는 사용자들의 수
timestamp와 익명 처리된 유저별 포도당 수치
익명 id로 처리된 온라인 게임에서의 성공, kill수, 레벨 데이터
zipcode 로 처리된 구매, 매출 수
신용카드 정보

Metric Definition Overview

1. invariant variable (통제 변수)

인구 수는 동일한가?
인구 분포는 동일한가?

2. invariant metric (통제 지표)

비즈니스 지표의 기준이 구체적으로 세워져있는가
[ 가이드라인 지표 ]
총 매출액(revenue)
시장 점유율(market share)
활성 유저수(AU)
[ 성공 지표 ]
사용자 경험을 나타낼 수 있는 지표
페이지에 머무는 시간
 사용자 경험 같은 경우에는, 파악하고 싶은 것이 있다 하더라도 지표로 파악할 수 없는 경우나 오랜 시간이 걸리기 때문에 A/B test 로 파악하기 힘든 경우가 있다.

성공 지표

실험 결과를 바로 이해할 수 있는 지표
ex) AU, CTP, …
만약, 하나의 지표를 보는 것이 아니라, 다양한 지표를 본다고 했을 때, OEC 를 따로 만들어서 관리할 수도 있다. (ex. 마이크로 소프트) 하지만, 이 지표를 만들고 보는 것에 대해서는 보수적이어야 하는게, 일단 해석하고 정의내리는 것 자체가 굉장히 어렵기 때문이다. [ 공통된 의견 ] → 그냥, 개별적인 지표를 보는 것이 더 좋다. 어쨌든 해석할 때, 세부 지표들을 보게 되기 때문

적용 - high level metrics (Customer Funnel)

1.
이 실험을 통한 비즈니스 목표
학생들이 취업하는 것을 돕는다
재정적으로 유지 가능한지(즉, 수익이 생겨야 함)
위의 퍼널을 세분화해서, 위의 목표를 확인할 수 있게 만들어보자.
Exploring the site
강의 리스트를 보는 유저들의 수
강의 상세 내용을 보는 유저들의 수
creating the account
수강하거나 등록하는 유저들의 수
강의별 세부 단계가 있다면, 단계별 완강한 유저들의 수
coaching(유료 서비스)을 요청한 유저들의 수
completing a course
완강하고 난 뒤에 두번째 강의를 등록하는 유저들의 수
완강하고 난 뒤에 취업을 한 유저들의 수(추적하거나, 얻기 힘든 데이터이긴 하다)
위의 퍼널 형태는 디바이스 기기에 상관없이 적용가능해야 한다. 또한, 플랫폼(모바일, 데스크탑, 태블릿)을 넘나드는 로그도 추적할 수 있어야 한다.
2.
각 퍼널별 모니터링할 지표
a.
유저수(count)
일반적으로 , count 만을 보지는 않는다. 주요 퍼널 단계(homepage visits, enrollment 등에만 해당 지표를 보기도 한다)
b.
이전 퍼널대비 비율 / Probabilities(다음 퍼널로 넘어가는지 아닌지의 이진 분포)
이 비율의 경우, 증가시키는 것이 목표가 된다.

비즈니스 목표를 달성하기 위한 가설들과 그에 따른 지표들

강좌 리스트 페이지의 강의 설명란을 변경
probability of progressing from course list to course page(PM)
‘Start Now’ 버튼의 사이즈를 키운다
click through rate on ‘Start Now’ button
click through probability on ‘Start Now’ button(PM)
유료 서비스에 대한 장점 설명을 삽입한다
probability that enrolled student pays for coaching(PM)

측정하기 힘든 지표는?

두 가지의 특성으로 나눌 수 있는데
1.
데이터 자체를 얻기 힘들거나
2.
얻었다 하더라도 수집하기에 오랜 시간이 걸리는 경우다
다음은 위의 상황에 해당하는 측정하기 힘든 지표들의 예시다
첫 완강한 유저 대비 두번째 강의를 수강하는 유저들의 비율
이커머스 구매자들의 평균 만족도
검색 엔진을 통한 이용자들의 목표 달성 확률

추가적으로 데이터를 얻기 위한 기술들

User Experience Research(UER)
depth ↑, 필요한 유저수 ↓
브레인스토밍하기 좋다
새로운 데이터 수집 기술을 사용할 수 있다( 시선 처리를 추적한다던지 등)
적은 유저수를 대상으로 하기 때문에, 일반화하기 힘들다
Focus Groups
데모 시에 가설에 대한 피드백을 얻을 수 있다
마찬가지로 일반화하기 힘들다(큰 소리가 의견을 지배하는 것처럼)
Surveys
서비스에서 수집하는 로그 데이터로 얻기 힘든 질문들(unmeasurable)에 대한 답을 구할 수 있다
강의가 취업을 하는데 도움이 되었는지
직장에서 해당 강의가 생산성을 높이는데 기여했는지
강의를 수강한 것이 성공에 기여했다고 생각하는지
답변은 주관적일 수 있고, 질문이 편향되어있는 문제가 발생할 수 있다
보다 객관적인 방법을 활용해 얻은 결과와 바로 비교할 수는 없는 한계
일반적인 지표들로 구하기 힘든 지표들을 측정하기 위한 방법들(UER, Survey, External Data)을 적용하면, proxy 지표를 설정할 수 있게 된다.

proxy?

명확한 사용자 행동으로 지표를 만들 수 있는 것과 그렇지 못한 지표가 있다.
proxy 는 어떤 지표를 관측하고 싶을 때, 가정이 포함되는 지표를 말한다.
ex ) ‘지난 7일 동안 프로덕트에 인게이지된 유저’
를 측정하고 싶다고 해보자.
그러면, 질문은 다음과 같을 것이다
활성화된 것의 기준은?
인게이지된 것의 기준은?
위의 기준치를 비즈니스적인 경험과 상황에 따라서 가정을 설정해야 한다.
‘가입하고 특정 기능을 이용하면 활성화된 사용자인 것으로 간주한다’
‘지난 7일 동안 프로덕트를 10분 이상 이용했으면 인게이지된 사용자인 것으로 간주한다’
︎ 다음의 예시에 활용할 수 있는 외부 방법들
인게이지된 사용자들을 측정
external data, survey
재고를 확장할지의 여부를 결정할 때
Focus group, survey
어떤 광고가 많은 뷰를 얻는지 측정
실험, 반복 실험