본문으로 건너뛰기
중급약 40분

A/B 테스트 품질 검증 — 최소 검출 효과와 표본 크기, 실험 기간, 다중검정 보정, "효과 없음" 반박하기

사용성 개선안은 대부분 A/B 테스트로 판정되는데, 실험 설계가 부실하면 실제로 좋아진 것도 "효과 없음"으로 기각된다. 최소 검출 효과에서 표본 크기를 역산하고, 주기성을 고려해 기간을 정하고, 다중검정을 Bonferroni·Benjamini-Hochberg로 보정한다. 검정력 부족·희석·이질적 효과로 그 결론을 반박하는 방법까지 다룬다.

  • #AB테스트
  • #실험설계
  • #표본크기
  • #다중검정
  • #검정력

개념

"효과 없음"은 두 가지를 뜻한다

레슨 1~6에서 사용성·접근성 결함을 찾고 개선안을 만들었다. 그 개선안은 대부분 마지막 관문을 통과해야 한다 — A/B 테스트다. 결과 보고서에 "통계적으로 유의한 차이 없음" 이라고 적히면 개선안은 롤백된다. 문제는 그 한 줄이 서로 다른 두 상황을 똑같이 표현한다는 것이다.

(가) 개선안이 실제로 효과가 없다
(나) 효과는 있지만 이 실험은 그 크기의 효과를 감지할 수 없는 실험이었다

QA의 일은 (나)를 배제하는 것이다. 배제하지 못하면 "효과 없음" 은 결론이 아니라 미지수다.

경계를 먼저 긋는다. 수집 데이터가 분석할 만한 상태인가(중복·누락·표본비 불일치 SRM의 카이제곱 판정) 는 모듈 61(레슨 6)이 다뤘다. 이 레슨은 데이터가 깨끗하다고 가정한 뒤, 실험 설계 자체가 결론을 낼 자격이 있는가 를 본다. 지표 정의(HEART·GSM)는 모듈 45(레슨 4), 사용성 지표의 조작적 정의는 레슨 3이 맡는다.

실험 설계 점검표 여섯 칸

실험 시작 전에 받아 둬야 하는 문서는 여섯 칸이면 충분하다. 비어 있으면 실험이 끝난 뒤 무슨 말이든 할 수 있게 된다.

칸내용비어 있으면
가설어떤 결함을 고쳤고 어느 지표가 어느 방향으로 움직이는가사후에 유리한 지표를 골라 붙인다
1차 지표(OEC)판정에 쓸 지표 하나지표 20개 중 이긴 하나를 결과로 쓴다
가드레일 지표나빠지면 안 되는 지표(오류율·응답시간·이탈률)이겼지만 다른 곳이 망가진 걸 모른다
최소 검출 효과(MDE)이보다 작으면 봐도 의미 없는 효과 크기표본 크기를 정할 수 없다
표본 크기·기간그룹당 몇 명, 며칠유의해지는 날 멈추게 된다
분석 계획세그먼트·보정 방법·종료 조건사후 분석이 무한히 늘어난다

최소 검출 효과(MDE) — 가장 많이 오해받는 칸

MDE는 "우리가 기대하는 효과"가 아니다. 정의는 반대로 이보다 작은 효과라면 감지 못 해도 상관없다고 합의한 크기 다. MDE를 희망대로 크게 잡으면 (예: 전환율 30% 상승) 표본이 적게 나와 실험이 빨리 끝나지만, 실제 효과가 3%면 그 실험은 처음부터 그 효과를 볼 능력이 없었다.

MDE를 정하는 기준은 통계가 아니라 의사결정 이다. "전환율이 상대 2% 오르면 전면 적용할 것인가?" 에 조직이 예라고 답하면 MDE는 2%다.

표본 크기 산정

두 비율(전환율 등)을 비교할 때 그룹당 필요 표본은 이렇게 쓴다.

n(그룹당) = (z(1-α/2) + z(1-β))² × [ p₁(1-p₁) + p₂(1-p₂) ] / (p₂ - p₁)²
  α = 0.05 양측 → z = 1.96 / 검정력 1-β = 0.80 → z = 0.84 / (1.96+0.84)² ≈ 7.85
 
두 그룹 분산이 비슷하다고 보면 — 실무의 "16의 규칙"
n(그룹당) ≈ 16 × p(1-p) / δ²        δ = 절대 효과 크기(p₂ - p₁)

네 경우를 계산해 보면 감이 잡힌다.

기준 지표상대 MDE절대 δ그룹당 n성격
결제 전환율 2%10%0.002약 78,400대형 커머스급 트래픽
결제 전환율 2%5%0.001약 313,600MDE 절반 → 4배
가입 완료율 20%10%0.02약 6,400현실적인 규모
과업 성공률 60%10%0.06약 1,070사용성 지표는 감지가 쉽다

두 가지가 드러난다. 필요 표본은 MDE의 제곱에 반비례하고(절반 크기를 보려면 4배), 기준값이 낮은 지표일수록 표본이 폭증한다.

네 번째 줄이 QA에게 실질적 무기다. 같은 개선을 "전체 매출" 로 재면 수십만 명이 필요하고 "환불 신청 과업 성공률" 로 재면 천 명대다. 어떤 지표로 재느냐가 실험의 성패를 결정한다.

실험 기간 — 표본을 채웠다고 끝이 아니다

필요 표본을 일일 노출 수로 나누면 일수가 나오지만 그 숫자를 그대로 쓰면 안 된다.

필요 표본 78,400 × 2 = 156,800명,  일일 노출 20,000명 → 7.84일
그런데 실험 기간은 7.84일이 아니라 14일로 잡는다

이유는 셋이다. 주 단위 주기성 — 평일과 주말의 사용자 구성이 다르고 8일은 요일 하나가 두 번 들어간 기간이다. 완전한 주 단위(7·14·21일)로 맞춘다. 월 단위 주기성 — 급여일·월말 정산·프로모션 주기가 있으면 2주도 부족하다. 사용자 누적의 편향 — 초기에 들어오는 사용자는 방문 빈도가 높은 헤비 유저라, 기간이 짧으면 표본이 그쪽으로 쏠린다.

반대로 무한정 늘리면 쿠키 초기화·기기 교체로 배정이 흔들리고 다른 실험·배포가 끼어든다. 2~4주가 표준 범위 다.

신규성 효과와 친숙도 효과

UI를 바꾸는 실험 — 즉 사용성 개선 실험 — 은 특히 이 둘에 취약하다. 신규성 효과(novelty)는 새 UI가 눈에 띄어 호기심으로 더 클릭하는 것으로, 초반에 리프트가 크게 나왔다가 사라진다. 친숙도 효과(primacy)는 기존 사용자가 익숙한 위치를 못 찾아 헤매는 것으로, 초반에 지표가 나빠졌다가 회복한다.

둘 다 "초반 며칠의 숫자를 결론으로 쓰면 안 된다" 는 같은 결론으로 간다. 판별은 두 가지로 한다.

1) 일별 효과 추이 — 날이 갈수록 0 으로 수렴하면 신규성 효과,
                    음수에서 시작해 양수로 회복하면 친숙도 효과를 의심한다
2) 신규 사용자 세그먼트만 따로 본다 — 신규 사용자에게는 두 효과가 없다
   (비교할 과거가 없다). 전체와 크게 다르면 둘 중 하나가 섞인 것이다

접근성 개선에서 친숙도 효과는 특히 조심한다. 스크린 리더 사용자는 기존 화면의 우회 경로를 외워서 쓰고 있을 수 있어서, 구조를 올바르게 고치면 오히려 단기 지표가 나빠질 수 있다. 2주짜리 실험으로 롤백을 결정하면 접근성이 후퇴한다.

피킹(peeking) — 매일 들여다보는 것의 대가

고정 표본 설계는 "정해진 표본을 다 채운 뒤 딱 한 번 검정한다" 를 전제로 한다. 매일 p 값을 보며 처음 p < 0.05 가 되는 순간 멈추면 실제 1종 오류율은 5%보다 훨씬 커진다 — 효과가 없는 A/A 테스트도 충분히 자주 들여다보면 언젠가 유의해진다.

대응은 종료일까지 결과 화면을 열지 않거나, 중간 확인을 전제로 설계된 순차 검정(그룹 순차 검정, 상시 유효 p 값)을 쓰는 것이다. 어느 쪽이든 중간 확인의 용도를 제한한다.

피킹이 아닌 중간 확인(매일 한다)  SRM 검정, 가드레일 급락, 오류율 폭증, 배포 사고
피킹인 중간 확인(하면 안 된다)    1차 지표 p 값을 보고 "유의해졌으니 끝내자"

안전상의 조기 중단은 언제나 허용된다. 가드레일이 무너져 롤백하는 것은 통계가 아니라 사고 대응이다.

다중검정 — 지표 20개를 보면 하나는 이긴다

지표 m 개를 각각 α = 0.05 로 검정하고 실제로는 전부 효과가 없다면, 적어도 하나가 유의해질 확률은 m = 8 일 때 약 34%(1 - 0.95^8), m = 20 일 때 약 64%다. 그리고 지표는 금방 늘어난다 — 지표 5개 × 변형 2개 × 세그먼트 4개 = 40회 검정 이다. 보정 방법 셋을 구분해 둔다.

방법통제 대상절차
Bonferroni집단별 오류율(FWER)각 검정을 α/m 으로 판정. 가장 단순하고 가장 보수적이다
Holm-BonferroniFWERp 값 오름차순으로 k 번째를 α/(m-k+1) 과 비교, 처음 실패하는 곳에서 멈춘다
Benjamini-Hochberg거짓 발견율(FDR)p(k) ≤ (k/m) × q 를 만족하는 가장 큰 k 를 찾아 1~k번째를 모두 기각

같은 p 값 여덟 개로 세 방법을 비교하면 차이가 선명하다(α = q = 0.05).

p 값: 0.003  0.012  0.021  0.038  0.049  0.180  0.310  0.620
 
무보정 (0.05)  → 5개 유의
Bonferroni     α/8 = 0.00625 → 0.003 만 통과. 1개
Holm           k=1: 0.05/8 = 0.00625 (0.003 통과)
               k=2: 0.05/7 ≈ 0.00714 (0.012 실패 → 중단). 1개
BH             임계값 (k/8)×0.05 = 0.00625  0.0125  0.01875 ...
               k=2 통과(0.012 ≤ 0.0125), k=3 실패(0.021 초과)
               조건을 만족하는 가장 큰 k = 2 → 1·2번 기각. 2개

언제 무엇을 쓰는가 가 실무 판단이다.

  • 사전 지정한 1차 지표 하나 — 검정이 하나이므로 보정하지 않는다. 1차 지표를 하나로 못 박는 것이 가장 값싼 보정이다
  • 가드레일 지표 — 보정하면 안 된다. 보정은 "잘못 이기는 것" 을 막는 장치인데 가드레일은 놓치는 쪽이 위험 하다
  • 탐색적 세그먼트 분석 — BH로 FDR 통제. 여기서 나온 결과는 결론이 아니라 다음 실험의 가설 이다
  • 여러 변형(A/B/C/D) — Bonferroni 또는 Holm

"효과 없음" 을 QA가 반박하는 다섯 가지 각

결론이 "유의한 차이 없음" 으로 나왔을 때 순서대로 확인한다.

1) 신뢰구간을 본다 — 검정력 부족인가. p 값만 보면 "없음" 과 "모름" 이 구분되지 않는다. 효과의 95% 신뢰구간을 요구한다.

+1.2%, 95% CI [-0.4%, +2.8%]  → MDE 2%가 구간 안 = "효과 없음"이 아니라 "판정 불가"
+0.1%, 95% CI [-0.3%, +0.5%]  → MDE 2%가 구간 밖 = 진짜 "효과 없음"이라 말할 수 있다

부재의 증거와 증거의 부재는 다르다. 첫 줄은 실험을 더 돌리거나 지표를 바꿔야 한다는 뜻이다.

2) 희석(dilution)을 확인한다. 개선한 화면에 도달하지도 않은 사용자가 분모에 있으면 효과가 묽어진다. 주문서 3단계를 고쳤는데 전체 방문자를 분모로 쓰면 노출된 5%의 효과가 20분의 1로 줄어 보인다. 노출 기준(트리거) 분석 을 요구한다 — 개선된 요소에 실제로 노출된 사용자만 분석 대상으로 한다.

3) 지표가 결함과 연결되는지 본다. "교환 신청 진입점을 못 찾는다" 는 결함을 고치고 전체 매출 로 쟀다면 감지될 리가 없다. 레슨 3의 과업 성공률, 모듈 45의 퍼널 전환율처럼 결함이 직접 나타나는 지표로 재야 한다. 표본 크기 표의 네 번째 줄이 근거다.

4) 이질적 효과를 본다 — 접근성 개선의 전형적 함정. 스크린 리더 사용자가 전체의 0.5%라면 그들에게 극적인 개선이 있어도 전체 평균에서는 보이지 않는다. 전체 지표로 접근성 개선을 판정하면 거의 언제나 "효과 없음" 이 나온다. 해당 세그먼트를 사전에 1차 분석 대상으로 지정하거나 A/B 판정 대상에서 제외한다.

뒤쪽이 중요하다. 법적 의무인 접근성 항목은 실험으로 결정할 사안이 아니다. "A/B로 효과를 증명하면 적용하겠다" 는 요구는 의무 사항에 실험을 끼워 넣는 것이므로, QA는 설계 단계로 거슬러 올라가 선을 그어야 한다.

5) 실험의 건강 상태를 본다. SRM·가드레일 위반·중복·누락(모듈 61 레슨 6)이 있으면 결과는 "효과 없음" 이 아니라 무효 다.

점검 시점은 모듈 61 레슨 6의 표를 그대로 쓰되, 분석 전 단계에 한 줄을 더한다 — 사전 계획 문서와 최종 보고서를 나란히 놓고 다른 부분을 표시하는 것. 지표가 언제 바뀌었는지, 세그먼트가 언제 늘었는지가 이 대조 하나로 드러난다.

실무에서 왜 필요한가

첫째, QA가 찾아낸 결함이 데이터로 지워지는 것을 막는다. 사용성·접근성 결함은 실험 결과 한 줄로 기각되기 쉽다. 그때 "MDE가 5%로 잡혀 있는데 이 개선의 기대 효과는 1%대입니다. 이 실험은 처음부터 그 크기를 볼 수 없었습니다" 라고 말할 수 있으면 결론이 뒤집힌다.

둘째, 실험 플랫폼 자체가 검증 대상이다. 배정·노출·집계·분석이 겹친 복잡한 기능이고, 결함이 나면 조직 전체의 의사결정이 오염된다. 배정 무작위성, 노출 이벤트 정확성, 종료 조건 구현은 모두 기능 테스트 대상이다.

셋째, 이 검증을 할 사람이 조직에 잘 없다. 설계하는 쪽은 결과를 원하고 분석하는 쪽은 주어진 데이터를 본다. 설계 문서·실제 실행·최종 보고서를 나란히 대조하는 역할이 QA에게 구조적으로 맞다.

실습 과제

과제 1 — 표본 크기와 기간 산정 (25분)

사용성 결함 하나를 골라 개선안을 A/B로 검증하는 설계를 만든다. 여섯 칸 문서를 채우되 표본 크기는 두 지표로 각각 계산 한다.

지표 A: 전체 전환율(기준값 __%)            → 그룹당 n = ____, 필요 기간 __일
지표 B: 해당 과업의 성공률(기준값 __%)      → 그룹당 n = ____, 필요 기간 __일
공식: n ≈ 16 × p(1-p) / δ²

두 숫자를 비교해 어느 지표로 재야 이 개선안이 판정 가능한지 를 한 문장으로 결론 낸다. 기간은 완전한 주 단위로 올림한다.

과제 2 — 다중검정 보정 계산 (20분)

아래 p 값 열 개(지표 5개 × 세그먼트 2개)에 대해 무보정·Bonferroni·Holm·BH 결과를 계산해 표로 만든다. α = q = 0.05 를 쓴다.

0.002  0.008  0.019  0.027  0.033  0.041  0.112  0.240  0.455  0.780

계산 후 세 가지를 적는다. 네 방법의 기각 개수, BH가 Bonferroni보다 많이 기각하는 이유(FWER 대 FDR), 이 열 개가 탐색적 분석이었다면 결과를 어떤 문장으로 보고할지.

과제 3 — "효과 없음" 반박문 쓰기 (25분)

다음 보고를 받았다고 가정하고 본문의 다섯 가지 각을 순서대로 적용해 반박문 또는 수용문을 쓴다.

"주문서 개선안 A/B 테스트 결과, 전체 결제 전환율에서 통계적으로 유의한
 차이가 없었습니다(대조군 2.10%, 실험군 2.14%, p = 0.31). 5일간 진행했고
 지표 12개 중 2개에서 유의한 개선이 있었습니다. 개선안은 롤백합니다."
해설 — 최소한 다섯 군데가 걸린다
  1. 기간 5일. 완전한 주 단위가 아니다. 요일 구성이 편향됐고 헤비 유저에 쏠렸을 수 있다
  2. 신뢰구간이 없다. p = 0.31 로는 "효과 없음" 인지 "검정력 부족" 인지 구분되지 않는다
  3. MDE와 표본 크기 근거가 없다. 2.1% 기준값에서 상대 2%를 보려면 그룹당 수십만 명이다. 5일치 트래픽으로 가능한 설계였는지 역산한다
  4. 희석. 주문서 개선인데 분모가 전체 방문자다. 주문서 도달자 기준 분석을 요구한다
  5. 지표 12개 중 2개. 전부 효과가 없어도 하나 이상이 유의할 확률이 1 - 0.95^12 ≈ 46% 다. 보정 없이 주장할 수 없고, 12개 중 무엇이 사전 지정된 1차 지표였는지도 불명확하다

결론 문장은 "롤백하면 안 된다" 가 아니라 "이 실험은 롤백 여부를 판정할 자격이 없다" 가 되어야 한다.

자가 체크리스트

  • "효과 없음" 이 진짜 효과 없음인지 검정력 부족인지를 신뢰구간으로 구분할 수 있다
  • MDE가 "기대하는 효과" 가 아니라 "이보다 작으면 무시해도 되는 크기" 라는 정의를 설명할 수 있다
  • n ≈ 16 × p(1-p) / δ² 로 표본을 계산하고, MDE 절반이 표본 4배가 되는 관계를 안다
  • 기준값이 높은 사용성 지표가 전환율보다 적은 표본으로 감지된다는 점을 근거로 지표를 고를 수 있다
  • 실험 기간을 완전한 주 단위로 맞춰야 하는 이유 세 가지를 말하고, 신규성·친숙도 효과를 일별 추이와 신규 사용자 세그먼트로 판별할 수 있다
  • 피킹이 1종 오류를 부풀리는 이유를 설명하고, 허용되는 중간 확인과 아닌 것을 구분할 수 있다
  • Bonferroni·Holm·BH의 통제 대상과 절차를 구분해 계산하고, 1차 지표·가드레일·탐색 분석에 각각 어떻게 적용할지 정할 수 있다
  • 희석·이질적 효과를 지적하고, 접근성 의무 항목이 A/B 판정 대상이 아님을 근거와 함께 말할 수 있다

흔한 실수

  • MDE를 희망 효과로 잡는다. 실험은 빨리 끝나지만 실제 효과를 볼 능력이 없어진다.
  • p 값만 보고 신뢰구간을 안 본다. "없음" 과 "모름" 이 구분되지 않는다.
  • 표본을 채우자마자, 또는 유의해지는 날 멈춘다. 앞은 요일 편향, 뒤는 피킹이다. 종료 조건을 미리 적고 지킨다.
  • 지표를 많이 보고 이긴 것을 보고한다. 20개를 보면 64% 확률로 하나는 이긴다.
  • 가드레일 지표에도 보정을 적용한다. 가드레일은 놓치는 쪽이 위험하다.
  • 초반 며칠의 리프트를 결론으로 쓴다. 신규성 효과다.
  • 개선한 화면에 도달하지 않은 사용자를 분모에 넣는다. 효과가 묽어져 감지되지 않는다.
  • 접근성 개선을 전체 지표 A/B로 판정한다. 소수 세그먼트의 효과는 평균에 묻히고, 의무 항목은 애초에 실험 대상이 아니다.

참고 자료

  • Ron Kohavi, Diane Tang, Ya Xu, Trustworthy Online Controlled Experiments (Cambridge University Press, 2020) — 표본 크기·기간·신규성 효과·다중검정의 표준 참고서(원문 확인)
  • Kohavi et al., "Trustworthy A/B Tests: Pitfalls in Online Controlled Experiments" — "16의 규칙" 표본 크기 계산 예시와 실험 함정 목록
  • Benjamini & Hochberg, "Controlling the False Discovery Rate" (JRSS-B, 1995) — BH 절차의 원전. p(k) ≤ (k/m)q 를 만족하는 최대 k 정의(원문 확인)
  • statsmodels — multipletests — Bonferroni·Holm·BH 보정 구현(표본 크기·검정력은 같은 문서의 power 모듈)
  • 레슨 s3-m61-l06 — 수집 데이터 품질과 SRM 카이제곱 판정(이 레슨의 전제 조건)
  • 레슨 s2-m45-l04 — HEART·Goals-Signals-Metrics로 1차 지표를 고르는 방법
  • 레슨 s5-m49-l03 — 과업 성공률·오류율의 조작적 정의(실험 지표의 재료)

낯선 말 풀이

이 레슨에 나온 약어입니다. 본문에서도 처음 나올 때 점선으로 표시해 두었습니다 (제목과 링크 글자는 그대로 둡니다).

QA — 품질보증
만든 것이 쓸 만한지 확인하고, 애초에 덜 망가지게 만드는 방법을 정하는 일. "테스트"는 그 일의 일부다.
HEART — 하트 지표
사용자 경험을 다섯 갈래 숫자로 재는 틀.
GSM — 목표·신호·지표
무엇을 이루려는지(목표)를 먼저 적고, 그것이 이뤄지면 어떤 흔적이 남는지(신호), 그 흔적을 무슨 숫자로 셀지(지표)를 차례로 끌어내는 방법.
UI — 사용자 인터페이스
사람이 직접 보고 누르는 부분 — 화면, 버튼, 입력창.

용어집 전체 보기