요즘 핫한 키워드 인과추론
어떤 처치가 결과 변수에 미치는 지를 데이터로 추론하는 방법!
두개가 상관관계가 있어도 인과관계가 있는 것은 아니니까.
1. 실험 (ex.A/B Test)
2. 실험이 아닌 관측 데이터로 추론
- 조금 더 부정확한 확률이 높은 이유는 교란 변수가 많기 때문
- A/B 는 다른 변수는 동일하게 하고, 하나만 다르게 하기 때문에 보다 정확한데, 관측으로 하면 서로 시간도 다르고 영향을 주는 요인이 많다.
A/B test를 해야하는 이유
- 대조 실험은 사실상 가장 확실한 인과추론방법이기 때문
1. 신규기능 도입
- 신규 기능 없는 것(A), 신규 기능 도입된 상황(B)
2. UI 변화
3. 벡엔드 변화
1. 실험 가설 설립
-
계속해서 A/B로 들어가는 상황을 깊게 들어가야함!
-
가설 : 쿠폰코드를 결제 페이지에 추가 시, 매출을 저해할 것이다.
- 어떤 지표를 보는 것이 좋을까? 매출비교, 쿠폰사용비율, 등등 가능
- 전체 매출 vs 유저 당 평균 매출
=> A/B로 유저를 나눠서 진행
=> 전체 매출로 하면,
- 사이트를 방문한 모든 유저 vs 결제 페이지를 방문한 유저
=> noise를 없앨 수 있음
-
혹시 실험이 유저 경험을 방해하는 걸 확인하거나 실험으로 인해 부정적 영향을 줄 수 있는 가드레일 지표는 없을까?
2. 실험설계
1. 무작위 추출할 것인가?
- 가장 대표적으로 추출하는 방법. (그 외 : 계통, 층화 등)
2. 무작위 추출 단위의 모집단을 어느 정도 대상으로 하는가?
- 글로벌 서비스라면 한국유저로만? 앱/웹 중 웹 유저로만?
3. 실험 규모는 어떻게 할 것인가?
- 유저당 구매액이 아닌 구매여부(0/1)로 할 경우, 실험 규모를 줄일 수 있다
- 0.01과 같은 낮은 p값 임계치를 사용하려면 실험 규모를 늘려야한다
- 보통 0.05면 됐다고 하는데, 더 적게 보고 싶다라면 규모를 키워한다는 것!
- 체크리스트
- 대규모 변경의 경우, 적은 비율의 사용자부터
(무조건 5:5로 나누는게 답이 아니다! 대규모의 경우 8:2로 실험군을 줄이는게 좋음. 영향이 너무 크니까ㅜㅜ)
- 다른 실험이 진행중일 경우 그 실험의 트래픽을 공유해야 해도 괜찮은지
(영향을 주지 않으면 함께 진행해도 된다. 영향을 주면 그룹화가 되기때문에 안됨. 또 앞에서 도 테스트를 진행한다면 이후에도 영향을 미칠 수도 있기 때문에 따로 잡아야한다 => 독립성이 깨짐!)
4. 실험 기간은 얼마나 할 것인가?
- 사용자 수
- 주간 효과(주중과 다른 주말)
- 계절성(공휴일)
- 크리스마스 시즌 같이 12월 유저군 안에서도 크리스마스 낀 주의 유저는 속성이 또 다름!
(구직을 열심히하지않는다^_^)
- 초두 효과(쿠폰 기능 초반에 반짝)
- Primary impact
- 최소 1주일 초두 효과가 보이면 조금 더 늘림
- 유저 무작위 추출, 결제 페이지를 방문하는 유저
일주일 경과 후!
실습실습
https://www.evanmiller.org/ab-testing/t-test.html (T-검정 계산기)