비즈니스 분석에 통계 검증이 필요할까?
p값 0.05가 무슨 뜻인지, 동전 던지기 예시로 풀어 봅니다. 숫자가 올랐을 때 우연인지 가려내는 기준.
숫자가 올랐다고 다 진짜 변화는 아닙니다. 통계 검증은 우연히 생긴 차이에 돈과 시간을 거는 실수를 막아 주고, p값은 그 “우연”이 얼마나 그럴듯한지를 재는 자입니다.
들어가며
버튼 색을 바꾼 B안의 구매 전환율이 A안보다 1.8%p 높게 나왔습니다. 대시보드 한쪽에는 “p = 0.09”라고 적혀 있습니다. 그래서, B로 바꿔야 할까요?
p값은 A/B 테스트 결과에 거의 항상 붙어 나오지만, 무엇을 말하는 숫자인지 설명하라고 하면 막히는 경우가 많습니다. 이번 글에서는 동전 하나로 p값의 뜻을 직접 세어 보고, 그 뜻을 버튼 A/B 테스트로 옮긴 뒤, 비즈니스에서 통계 검증이 언제 필요한지까지 정리해 보겠습니다.
동전이 이상한지 어떻게 판단할까?
친구가 동전을 10번 던졌더니 앞면이 9번 나왔습니다.
이 동전이 앞면이 잘 나오게 치우친 동전인지 판단하려면, 먼저 반대편에 서 봐야 합니다. “이 동전은 아무 문제 없는 공정한 동전이다”라고 가정하는 것입니다. 통계에서는 이 가정을 귀무가설(歸無假說, 아무 일도 없다는 가정)이라고 부릅니다.
그리고 이렇게 묻습니다. 정말 공정한 동전이라면, 10번 중 앞면 9번 같은 결과가 얼마나 자주 나올까?
공정한 동전이라면 이런 일이 얼마나 자주 일어날까?
수식으로 풀 수도 있지만, 컴퓨터에게 직접 던지게 해 보는 편이 더 잘 와닿습니다. 공정한 동전을 10번 던지는 실험을 1,000번 반복하면 앞면 개수가 어떻게 흩어지는지 그려 보겠습니다. 그림 2는 1,000번 했을 때 평균적으로 기대되는 모양입니다.
대부분 앞면이 4~6번 나오고, 9번 이상은 1,000번 중 11번 정도뿐입니다. 이 비율, 약 0.011(1.1%)이 바로 p값입니다. 실제로 돌려 볼 수 있는 코드도 붙여 둡니다. 실제로 던지면 매번 조금씩 달라서, 아래 코드의 첫 1,000번에서는 15번이 나왔습니다.
import numpy as np
rng = np.random.default_rng(seed=2026) # 결과를 다시 만들 수 있게 시드 고정
heads = rng.binomial(n=10, p=0.5, size=1000) # 공정한 동전 10번 던지기를 1,000번
print(f"앞면 9번 이상: {(heads >= 9).sum()}번 / 1,000번 → p ≈ {np.mean(heads >= 9):.3f}")
# 앞면 9번 이상: 15번 / 1,000번 → p ≈ 0.015
for n in [1_000, 100_000, 10_000_000]: # 반복을 늘리면 정확한 값에 가까워진다
heads = rng.binomial(n=10, p=0.5, size=n)
print(f"{n:>12,}번 반복 → p ≈ {np.mean(heads >= 9):.4f}")
# 1,000 → 0.0110 / 100,000 → 0.0105 / 10,000,000 → 0.0108
반복 횟수를 늘릴수록 값이 한곳으로 모입니다. 정확히 계산하면 11/1024 = 0.0107입니다. 1,000번짜리 결과가 0.015로 조금 튀는 것도 우연의 일부입니다.
p값은 ‘아무 일도 없다면’ 지금만큼, 또는 그보다 더 극단적인 결과가 나올 비율이라고 정리할 수 있습니다.
p = 0.011은 “공정한 동전으로는 백 번에 한 번꼴로나 나올 결과”라는 뜻입니다. 그래서 “우연이라고 보기엔 드물다”, 즉 동전을 의심해 볼 만하다고 판단하게 됩니다.
버튼 A와 B에 옮겨 보면?
이제 들어가며의 A/B 테스트로 돌아가 보겠습니다.
| 방문자 | 구매 | 전환율 | |
|---|---|---|---|
| A안 (기존 버튼) | 1,000명 | 50명 | 5.0% |
| B안 (새 버튼) | 1,000명 | 68명 | 6.8% |
그림 3. 버튼 A/B 테스트 결과. 설명을 위해 만든 예시입니다.
동전 때와 같은 방식으로 묻습니다. “A와 B가 사실 아무 차이가 없다면”, 어느 쪽으로든 전환율 차이가 1.8%p(퍼센트포인트, 비율끼리의 뺄셈) 이상 벌어지는 일이 얼마나 자주 일어날까? B가 나빠지는 방향도 함께 세기 때문에 양측 검정이라고 부릅니다(동전 예시는 앞면 쪽만 셌습니다). 두 비율을 비교하는 검정(두 비율 z검정)으로 계산하면 p = 0.088이 나옵니다.
p ≈ 0.09는 ‘차이가 전혀 없어도 열 번에 한 번쯤은 이만한 차이가 난다’는 뜻입니다.
흔히 쓰는 기준 0.05보다 크니 “통계적으로 유의하지 않다”고 말합니다. 하지만 이 말은 “차이가 없다”가 아니라 “이 정도 데이터로는 우연과 구별하지 못했다”는 뜻입니다. 같은 계산에서 B−A 차이의 95% 신뢰구간은 −0.26%p ~ +3.86%p입니다. 신뢰구간은 이번 데이터와 어긋나지 않는 차이의 범위로, 같은 방식으로 실험을 100번 하면 약 95번은 참값을 포함하도록 만든 구간입니다. 이 범위가 B가 조금 나쁜 쪽부터 꽤 좋은 쪽까지 걸쳐 있으니, 지금 데이터로는 어느 쪽인지 말할 수 없습니다. 참고로 실험 전에 “1.8%p 차이를 잡아내겠다”고 목표를 정했다면, 그런 차이가 실제로 있을 때 80% 확률로 잡아내기 위해(검출력 80%) 각 그룹에 약 2,700명(2,689명)이 필요했습니다. 결과를 본 뒤 목표 없이 표본을 계속 늘리는 것은 뒤에서 말할 함정으로 이어집니다.
p값을 가장 흔하게 잘못 읽는 방법
p = 0.03이 나오면 “B가 더 좋을 확률이 97%“라고 읽고 싶어집니다. 하지만 p값은 그런 뜻이 아닙니다. 확률의 방향이 반대이기 때문입니다.
| 식 | 뜻 | |
|---|---|---|
| p값 | P(이런 데이터 ∣ 차이 없음) | 차이가 없다고 가정했을 때, 이런 데이터 또는 더 극단적인 데이터가 나올 확률 |
| 우리가 궁금한 것 | P(차이 없음 ∣ 이런 데이터) | 이런 데이터를 봤을 때, 정말 차이가 없을 확률 |
그림 4. 세로선(∣) 앞뒤가 바뀌면 전혀 다른 확률이 됩니다.
“비가 오면 땅이 젖는다”와 “땅이 젖었으면 비가 왔다”가 다른 이야기인 것과 같습니다. 땅은 스프링클러 때문에 젖었을 수도 있으니까요. 데이터로부터 가설이 맞을 확률(오른쪽 식)을 직접 구하려면 베이지안(Bayesian) 방법처럼 사전 믿음을 함께 넣는 다른 접근이 필요합니다.
p값은 가설이 맞을 확률이 아니라고 정리할 수 있습니다.
p값이 말해 주지 않는 세 가지
| p값이 말해 주지 않는 것 | 이유 | 대신 볼 것 |
|---|---|---|
| B가 더 좋을 확률 | 확률의 방향이 반대 (그림 4) | 베이지안 방법의 “B가 더 좋을 확률” |
| 차이가 얼마나 큰지 | 표본이 크면 아주 작은 차이도 p가 작아진다 | 효과 크기와 신뢰구간 |
| 그래서 돈이 되는지 | p값은 매출과 비용을 모른다 | 차이가 결정에 주는 금액 |
그림 5. p값만으로는 답할 수 없는 질문들.
두 번째 줄은 예를 보면 분명해집니다. 각 그룹 100만 명이 5.0%와 5.1%를 기록하면, 차이는 고작 0.1%p인데도 p = 0.0012로 아주 “유의”하게 나옵니다. 통계적으로 확실한 차이와 비즈니스에서 의미 있는 차이는 다른 이야기입니다.
미국통계학회(ASA)도 2016년 p값에 관한 성명에서 같은 점을 짚었습니다. 여섯 가지 원칙 가운데 하나는 과학적 결론과 비즈니스와 정책 결정을 p값이 특정 기준을 넘었는지만으로 내려서는 안 된다는 것입니다.[1]
그래서 비즈니스에서 통계 검증이 필요할까?
필요합니다. 다만 모든 결정에 같은 강도로 필요한 것은 아닙니다. 기준은 결정을 되돌리는 비용입니다.
| 되돌리기 어렵고 비싼 결정 | 바로 되돌릴 수 있는 작은 결정 | |
|---|---|---|
| 예 | 가격 인상, 결제 흐름 전면 개편, 큰 마케팅 예산 | 버튼 문구, 배너 색, 알림 발송 시간 |
| 틀렸을 때 | 매출 손실이 크고 오래 간다 | 다음 주에 되돌리면 끝 |
| 검증 | 실험 전에 기준과 표본 수를 정하고 검증 | 빠르게 시도하고 지표를 지켜본다 |
그림 6. 검증의 강도는 결정의 무게에 맞춘다.
0.05라는 기준도 오래 써 온 관례일 뿐 자연법칙은 아닙니다. 틀렸을 때 비용이 큰 결정이라면 더 엄격하게, 작은 결정이라면 더 느슨하게 잡을 수 있습니다. 중요한 것은 결과를 보기 전에 기준을 정해 두는 것입니다. 결과를 본 뒤 기준을 고르거나, 유의하게 나올 때까지 결과를 여러 번 들여다보면 우연을 성공으로 착각할 가능성이 커집니다.
통계 검증이 얼마나 필요한지는 결정을 되돌리는 비용에 비례한다고 정리할 수 있습니다.
나가며
- p값은 “아무 차이가 없다면 지금만큼, 또는 더 극단적인 결과가 나올 확률”입니다. 작을수록 우연으로 설명하기 어렵다는 뜻입니다.
- p값은 “B가 좋을 확률”도, “차이의 크기”도, “돈이 되는지”도 알려 주지 않습니다. 효과 크기, 신뢰구간, 금액을 함께 보세요.
- 통계 검증은 되돌리기 어려운 결정일수록 필요하고, 기준은 결과를 보기 전에 정해야 합니다.
참고
- Wasserstein, R. L., & Lazar, N. A. (2016). The ASA Statement on p-Values: Context, Process, and Purpose. The American Statistician, 70(2), 129-133. https://doi.org/10.1080/00031305.2016.1154108
본문의 모든 수치는 설명용 가상 예시입니다. 동전의 p값은 앞면 쪽만 센 한쪽 값(정확히는 11/1024 = 0.0107)입니다. 두 비율 검정, 신뢰구간, 필요 표본 수는 두 비율 z검정(양측, α = 0.05)으로 계산했습니다. 코드 출력은 NumPy 2.3 기준이며 버전에 따라 숫자가 조금 다를 수 있습니다.