비즈니스 애널리틱스 2026 · 배경이론 · 1주차

그룹 비교 검정 — 데이터로 결정한다는 것

교재의 배경이론 전문. 의사결정의 틀 · A/B 테스트와 무작위 배정 · 가설검정 · 2표본 비율 z-검정 · p-value · 신뢰구간 · 분산분석 · 검정의 한계 · 연습문제

이 문서는 1주차 교재(Colab 노트북)가 가리키는 배경이론이다. 노트북에는 이론을 싣지 않고 적용만 한다. 교재의 4~5절에서 쓰는 검정과 신뢰구간이 어떤 논리 위에 서 있는지를 정의와 수식으로 정리한다. 수업 전에 한 번 읽어 두면 5~7절의 코드가 왜 그렇게 생겼는지 보인다. 통계학·실험계획법에서 배운 내용을 이 과목의 데이터(Cookie Cats, 게이트 30 대 40)에 맞춰 다시 세운 것이며 새로 배우는 이론은 없다.

1데이터로 결정한다는 것

데이터는 그 자체로는 결정이 아니다. 데이터에서 결정으로 가는 길에는 정해진 순서가 있다. 이 과목 전체를 관통하는 틀은 다섯 단계다.

$$\text{질문} \;\rightarrow\; \text{데이터} \;\rightarrow\; \text{분석} \;\rightarrow\; \text{결정} \;\rightarrow\; \text{가치}$$

각 단계가 1주차의 Cookie Cats 사례에서 무엇에 해당하는지 놓아 보면 다음과 같다.

단계Cookie Cats 사례교재의 위치
질문게이트를 레벨 30에 유지할까, 40으로 옮길까?3절
데이터유저 90,189명의 무작위 배정 실험 기록1·2절
분석그룹별 잔존율 집계와 검정5·6절
결정어느 게이트를 채택할 것인가6절
가치그 결정이 매출로 얼마인가7절

이 틀에서 분석은 수단이고 결정이 목적이다. 이 과목의 모든 주제는 "예측했다" 또는 "분석했다"로 끝나지 않고 비즈니스 의사결정 질문으로 끝난다. 1주차는 다섯 단계를 작게 한 바퀴 완주하고, 이후 주차는 단계마다 실무 문제로 깊이를 더한다.

2A/B 테스트와 무작위 배정

정의: A/B 테스트(A/B test) — 유저를 무작위로 두 그룹으로 나눠 한쪽에만 변화를 주고, 두 그룹의 지표를 비교해 그 변화의 효과를 측정하는 실험.

A/B 테스트의 핵심은 비교가 아니라 무작위 배정(randomization)이다. 유저를 동전 던지듯 나누면 두 그룹은 게이트 위치를 제외한 모든 면(나이·실력·과금 성향·국가)에서 통계적으로 비슷해진다. 그래야 나중에 관찰되는 잔존율 차이를 다른 요인이 아니라 게이트 위치 때문이라고 말할 수 있다. 만약 유저가 스스로 게이트 버전을 골랐다면, 두 그룹의 차이가 게이트 때문인지 유저 성향 때문인지 가를 수 없다.

무작위 배정이 잘 됐는지는 배정 이전에 정해지는 값(나이·국가·기기)으로 확인한다. 배정 이후에 정해지는 값(판수·잔존)은 처치의 영향을 받으므로 배정 확인에 쓸 수 없다. Cookie Cats 데이터에는 배정 이전 값이 없어, 교재에서는 두 그룹의 표본 수가 비슷하다는 것(2-7~2-11)까지만 확인한다.

3좋은 분석 질문의 조건

같은 데이터라도 어떤 질문을 던지느냐에 따라 결정으로 이어지기도, 그렇지 않기도 한다. 결정으로 이어지는 질문은 세 가지를 갖춘다.

조건게이트 질문걸러지는 질문
행동 가능한 대안30 유지 / 40 이동 — 회사가 실행할 수 있다"유저는 왜 이탈하는가" — 무엇을 할지 정해지지 않는다
가치로의 환산잔존율 → 유저 가치 → 매출"게임이 재미있는가" — 환산 경로가 없다
지표의 지정7일 잔존율로 답한다지표를 정하지 않으면 결론이 갈린다

세 번째 조건이 1주차에서 실제로 문제가 된다. 데이터에는 잔존율(retention_1·retention_7)과 참여도(sum_gamerounds)가 모두 있고, 어느 지표를 쓰느냐에 따라 유의성 판정이 갈린다(7일 잔존율은 유의하고 1일 잔존율은 유의하지 않다). "무엇으로 결정할 것인가"는 분석에 앞서 정해야 할 비즈니스 질문이며, 분석이 끝난 뒤 유리한 지표를 고르는 것은 분석이 아니다.

4가설과 두 종류의 오류

유저를 무작위로 나눴으므로, 두 그룹에 아무 차이가 없어도 표본이 달라지면 잔존율은 조금씩 달라진다. 그래서 관찰된 차이가 그 우연 변동의 범위 안인지 밖인지를 물어야 한다. 이 물음을 다루는 형식이 가설검정이다.

정의: 귀무가설(null hypothesis, $H_0$) — 효과가 없다는 가정. 검정은 이 가정을 기각할 근거가 데이터에 있는지를 따진다. 대립가설 $H_1$은 그 반대다.
$$H_0:\; p_{30} = p_{40} \qquad H_1:\; p_{30} \neq p_{40}$$

$p_{30}, p_{40}$은 각 게이트의 모집단 잔존율(우리가 모르는 참값)이고, 데이터에서 계산한 $\hat p_{30}, \hat p_{40}$은 그 추정치다. 검정이 다루는 것은 추정치가 아니라 모수다.

정의: 유의수준(significance level, $\alpha$) — 귀무가설이 참인데도 기각할 확률의 상한. 관례적으로 0.05를 쓴다.
$H_0$가 참$H_0$가 거짓
기각1종 오류 (확률 $\alpha$)옳은 판정
기각 못 함옳은 판정2종 오류 (확률 $\beta$)

게이트 문제에서 1종 오류는 차이가 없는데 게이트를 옮기는 것이고, 2종 오류는 차이가 있는데 현행을 유지하는 것이다. 두 오류의 비용이 다르다는 점은 5주차(비용 기반 임계값)에서 다시 다룬다.

5검정통계량 — 2표본 비율 z-검정

잔존 여부는 0/1이므로 그룹의 잔존율 $\hat p$는 베르누이 시행의 평균이고, 그 분산은 다음과 같다.

$$\operatorname{Var}(\hat p) = \frac{p(1-p)}{n}$$

두 그룹이 독립이므로 차이의 분산은 각 분산의 합이 된다.

$$\operatorname{Var}(\hat p_1 - \hat p_2) = \frac{p_1(1-p_1)}{n_1} + \frac{p_2(1-p_2)}{n_2}$$

귀무가설 아래에서는 두 모수가 같으므로, 공통 비율을 두 그룹을 합쳐 추정한다(합동추정). Cookie Cats의 7일 잔존율에서는 다음과 같다.

$$\hat p = \frac{x_1 + x_2}{n_1 + n_2} = \frac{8{,}502 + 8{,}279}{44{,}700 + 45{,}489} = 0.18606$$

이 합동추정을 분산에 넣으면 검정통계량이 나온다.

$$z = \frac{\hat p_1 - \hat p_2}{\sqrt{\hat p\,(1-\hat p)\left(\dfrac{1}{n_1} + \dfrac{1}{n_2}\right)}}$$

표본이 크면 중심극한정리에 의해 $z$는 표준정규분포를 따른다. 이 데이터의 표본은 그룹당 4만 명대이므로 근사가 충분히 성립한다. 교재는 합동추정 대신 키·판수와 똑같은 절차 — 각 집단의 분산을 데이터에서 추정해 $\sqrt{s_1^2/n_1 + s_2^2/n_2}$로 표준오차를 만드는 방식 — 로 계산하는데, 이 데이터에서는 두 방법의 $z$가 소수 셋째 자리까지 같다(3.164). 잔존 True/False를 1/0으로 두면 그 표본분산이 곧 $\hat p(1-\hat p)$에 해당하기 때문이다.

6p-value

정의: p-value — 귀무가설이 참일 때 관찰된 것만큼(또는 그보다 더) 극단적인 통계량이 나올 확률. 양측검정에서는 다음과 같다($\Phi$는 표준정규 누적분포함수).
$$p = 2\left(1 - \Phi(|z|)\right)$$

$p < \alpha$이면 귀무가설을 기각한다. p-value는 "귀무가설이 참일 확률"이 아니라 "귀무가설이 참이라고 가정했을 때 이런 데이터가 나올 확률"이다. 교재 4절에서 7일 잔존율은 $p = 0.0016$으로 기각되고, 1일 잔존율은 $p = 0.0744$로 기각되지 않는다.

7신뢰구간

검정은 "차이가 0인가 아닌가"에만 답한다. 결정에는 차이의 크기가 필요하므로 구간을 함께 쓴다. 구간 추정에서는 귀무가설을 가정하지 않으므로 합동추정 대신 각 그룹의 추정치를 쓴다.

$$(\hat p_1 - \hat p_2) \;\pm\; z_{1-\alpha/2}\sqrt{\frac{\hat p_1(1-\hat p_1)}{n_1} + \frac{\hat p_2(1-\hat p_2)}{n_2}}$$

95% 구간이면 $z_{0.975} = 1.96$이다. 구간이 0을 포함하지 않는 것과 $p < \alpha$는 같은 판정이며, 구간은 거기에 더해 효과의 범위를 알려 준다. 교재 4절의 7일 잔존율 차이는 [+0.31, +1.33]%p다.

교재가 쓰는 statsmodels의 기본 설정은 점수(score) 기반 구간을 쓰는데, 이 데이터에서는 위 식의 결과와 소수 둘째 자리까지 같다.

8그룹이 셋 이상이면 — 분산분석

게이트 후보가 30·40·50으로 셋이라면 비교는 분산분석이 맡는다. 그룹 간 변동을 그룹 내 변동과 비교하는 것이 그 원리다.

$$F = \frac{SS_{\text{처리}} / (k-1)}{SS_{\text{오차}} / (n-k)}$$

그룹이 둘일 때는 두 방법이 같은 판정을 낸다. 비율 자료에서 $z^2$은 같은 분할표의 카이제곱 통계량과 정확히 일치한다(이 데이터에서 $3.164^2 = 10.013$). 도구의 이름이 무엇이든 물음은 하나다. 그룹 간 차이가 우연 변동의 범위를 넘는가.

9검정이 답하지 않는 것

$z$의 분모는 $\sqrt{1/n_1 + 1/n_2}$에 비례하므로, 같은 크기의 차이라도 표본이 커지면 $z$는 커진다. 이 데이터에서 표본을 1/4로 줄이면 $z$는 절반(약 1.58)이 되어 유의하지 않다. 반대로 표본이 충분히 크면 실무적으로 무의미한 차이도 유의해진다.

따라서 유의성은 "차이가 있다"까지만 말하고 "그 차이가 얼마짜리인가"는 말하지 않는다. 그 물음에는 교재 5절이 답한다. 잔존율 차이(비율)에 신규 유저 100만 명을 곱해 추가 잔존 유저 수로 옮기고, 잔존 유저 한 명의 가치(회사만 아는 값)에 대한 민감도로 금액을 보이며, 점추정과 신뢰구간 양 끝을 함께 제시한다.

여러 구간을 동시에 비교할 때는 우연히 차이가 커 보이는 구간이 생긴다는 점도 검정이 스스로 막아 주지 않는다. 예를 들어 유저를 판수 구간 열 개로 나눠 구간마다 두 그룹을 비교하면 그중 하나쯤은 $p < 0.05$가 나오기 쉽다. 이것이 다중비교 문제이며, 결정 지표는 하나로 미리 정해 두는 이유의 하나다.

10산업공학에서 배운 것과의 연결

1주차의 도구는 그룹 비교 검정이다. 통계학과 실험계획법에서 배운 가설검정(귀무가설, p-value, 분산분석)이 그대로 쓰인다. 이 과목이 매주 하는 일이 이 형식이다. 전공에서 배운 도구를 실제 산업 데이터에 적용해 의사결정으로 완결한다.

주배운 곳이 과목의 결정
1통계학·실험계획법 (가설검정)A/B 실험으로 게임 기능을 확정한다
2경영정보·물류관리 (관계형 데이터·분위수)배송 약속일을 며칠로 할지 정한다
3신뢰성공학·설비보전 (고장률·예방정비)언제 교체할지 정비 정책을 정한다
4품질관리 (관리도·공정능력)공정 운전 조건을 재설정한다
5품질경영 (검사·오류비용)정비 대상 선별 기준을 정한다
6통계학 (회귀분석), 실험계획법 (블록화)날씨에 따른 운영 인력 규모를 정한다
7대기행렬이론 (Little·M/M/c)시간대별 상담원 수를 정한다
9OR (선형계획·쌍대)어느 창고를 닫을지 정한다
10·11생산계획·재고관리론 (수요예측·안전재고)발주량과 재고 정책을 정한다
12실험계획법 (무작위화·인과)캠페인 예산의 타겟을 정한다

11연습문제

교재를 열기 전에 손으로 답을 적어 본다. 계산이 필요한 문항은 5절과 7절의 식에 숫자를 넣으면 되고, 나머지는 한두 문장이면 된다. 수업 도입에서 몇 문항을 함께 확인한다.

  1. 합동추정과 z. 7일 잔존율의 성공 수는 gate_30이 8,502 / 44,700, gate_40이 8,279 / 45,489이다. 5절의 식으로 $\hat p$, 표준오차, $z$를 직접 계산해 3.164가 나오는지 확인하라. 소수 셋째 자리까지 맞추면 된다.
  2. 표본 크기. 두 그룹의 표본을 각각 1/4로 줄이고 잔존율은 그대로라고 하자. $z$는 얼마가 되고 유의수준 0.05에서 판정은 어떻게 바뀌는가. 반대로 표본을 4배로 늘리면 어떻게 되는가. 이 결과가 "유의하다"는 말의 뜻에 대해 무엇을 말해 주는가.
  3. 구간과 판정. 어떤 실험에서 차이의 95% 신뢰구간이 [−0.2, +1.1]%p로 나왔다. p-value는 0.05보다 큰가 작은가. 이 결과로 "효과가 없다"고 말할 수 있는가.
  4. 지표의 선택. 1주차 데이터에서 1일 잔존율은 $p = 0.074$, 7일 잔존율은 $p = 0.0016$이다. 만약 반대로 1일만 유의하고 7일은 유의하지 않았다면 게이트를 어디에 두겠는가. 지표를 분석 뒤에 고르면 무엇이 문제인가.
  5. 무작위 배정. 게이트 버전을 서버가 무작위로 배정하지 않고, 설치 시각이 짝수 분이면 30, 홀수 분이면 40으로 배정했다고 하자. 이것은 무작위 배정으로 볼 수 있는가. 볼 수 없다면 어떤 경우에 문제가 되는가.
  6. 1종·2종 오류의 비용. 게이트를 옮기는 데 개발·QA 비용 3천만 원이 들고, 잔존율 +0.8%p는 연 1.5억 원의 가치라고 하자. 1종 오류(차이가 없는데 옮김)와 2종 오류(차이가 있는데 유지)의 비용은 각각 얼마인가. 두 비용이 다르면 유의수준 0.05를 그대로 써도 되는가.
  7. 다중비교. 서로 다른 지표 20개로 같은 두 그룹을 각각 검정하면, 실제로는 아무 차이가 없어도 유의수준 0.05에서 적어도 하나가 유의하게 나올 확률은 대략 얼마인가($1-0.95^{20}$). 이것이 "결정 지표를 미리 하나로 정한다"는 원칙과 어떻게 이어지는가.

부록교재에서 쓰는 함수

5절과 7절의 식을 교재에서는 statsmodels의 두 함수로 계산한다. 인자 순서만 알면 된다.

from statsmodels.stats.proportion import proportions_ztest, confint_proportions_2indep

# 5절의 z와 6절의 p-value. 성공 수(True의 개수)와 표본 수를 그룹 순서대로 준다.
z, p = proportions_ztest([성공수_1, 성공수_2], [표본수_1, 표본수_2])

# 7절의 신뢰구간. compare="diff"는 두 비율의 차이에 대한 구간이다.
lo, hi = confint_proportions_2indep(성공수_1, 표본수_1, 성공수_2, 표본수_2, compare="diff")

성공 수는 불리언 열을 그룹별로 .sum()한 값이고, 표본 수는 그룹별 value_counts()다. 교재 4절의 4-13(검정 함수)와 4-16(신뢰구간)가 이 순서대로 진행된다.