DATA GROUND 로고DATA GROUND
통계 기초

통계 초보자를 위한 모비율 검정 가이드: 비율은 정말 차이가 있을까?

S.H. Yoo
마지막 업데이트: 2024-04-02

모비율 검정은 범주형 데이터에서 비율에 대한 가설을 검정하는 방법입니다. 단일 표본 비율 검정과 두 독립 표본 비율 검정의 개념, 계산 원리, Python 코드 예제까지 단계별로 설명합니다.

작성일: 2024-04-02작성자: S.H. Yoo마지막 업데이트: 2024-04-02

모비율이란 무엇인가?

모비율은 모집단에서 특정 사건이 발생하는 **비율(proportion)**을 의미합니다.
예를 들어 불량률, 합격률, 사망률, 성공률 등이 모두 모비율의 예입니다.

모평균과 마찬가지로, 실제 분석에서는 모집단 전체를 관측할 수 없기 때문에
표본에서 계산한 비율을 이용해 모비율에 대한 추정이나 가설검정을 수행합니다.


단일 표본 비율 검정이란 무엇인가?

단일 표본 비율 검정(one-sample proportion test)은
하나의 표본에서 계산한 비율이 특정 기준 비율과 같은지를 검정하는 방법입니다.

이 검정은 표본의 크기가 충분히 클 경우,
정규분포 근사를 이용한 Z 검정으로 수행됩니다.


단일 표본 비율 검정의 검정 통계량

단일 표본 비율 검정에서 사용하는 Z 통계량은 다음과 같습니다.

Z = (p̂ − p) / √(p(1 − p) / n)

여기서

  • p̂: 표본 비율
  • p: 기준이 되는 모비율
  • n: 표본 크기

표본 크기 결정 문제

단일 표본 비율 검정에서는
원하는 **오차의 한계(r)**를 만족하기 위한 최소 표본 크기를 계산할 수 있습니다.

신뢰수준 95% 기준에서는
다음 부등식을 만족하는 최소 n을 구합니다.

1.96 ≤ r / √(p(1 − p) / n)


예시: 최소 표본 크기 계산

불량률이 0.9라고 가정할 때,
오차의 한계가 5% 이내가 되도록 하는 최소 표본 크기를 계산해봅니다.


Python 코드 예시 (단일 표본 비율)

import numpy as np
from scipy.stats import norm

alpha = 0.05   # 유의수준
p = 0.9        # 불량률(모비율 가정값)
r = 0.05       # 오차의 한계

z = np.round(norm.ppf(1 - alpha / 2), 2)
min_n = ((z / r) ** 2) * p * (1 - p)

print(min_n)

출력된 값은
해당 조건을 만족하기 위한 최소 표본 크기를 의미합니다.


두 독립 표본 비율 검정이란 무엇인가?

두 독립 표본 비율 검정(two-proportion test)은
서로 독립적인 두 집단의 모비율이 같은지를 검정하는 방법입니다.

예를 들어,
신약과 기존 약의 사망률 차이,
남성과 여성의 합격률 차이 등을 분석할 때 사용됩니다.


두 독립 표본 비율 검정의 검정 통계량

두 표본 비율 검정에서 사용하는 Z 통계량은
두 집단의 비율 차이를 표준화한 값으로 계산됩니다.

귀무가설 하에서는
두 집단이 동일한 모비율을 가진다고 가정합니다.


예시로 이해해보기

암 환자를 대상으로
대조약과 시험약을 투여한 뒤
12개월 동안 사망 여부를 관찰했다고 가정해봅시다.

이때 관심사는
시험약 집단이 대조약 집단보다 사망률이 더 낮은지입니다.


Python 코드 예시 (두 독립 표본 비율 검정)

import numpy as np
import scipy.stats as stats

def get_np(a1, a2):
    return a1 + a2, a1 / (a1 + a2)

def get_diff(a1, a2, b1, b2):
    n1, p1 = get_np(a1, a2)
    n2, p2 = get_np(b1, b2)
    p0 = (a1 + b1) / (a1 + a2 + b1 + b2)
    return (p1 - p2) / np.sqrt(p0 * (1 - p0) * ((1 / n1) + (1 / n2)))

# 예시 데이터
z0 = get_diff(250, 50, 180, 20)

# 양측 검정 p-value
p_value = stats.norm.cdf(z0) * 2
z_critical = stats.norm.ppf(0.975)

print("Z statistic:", z0)
print("p-value:", p_value)
print("Critical Z:", z_critical)

결과 해석

양측 검정 기준에서
p-value가 0.05보다 작다면
두 집단의 모비율은 통계적으로 유의하게 다르다고 결론 내릴 수 있습니다.

위 예시에서는 p-value가 약 0.026으로,
유의수준 0.05보다 작으므로
시험약과 대조약의 사망률에는 유의한 차이가 있다고 판단합니다.


사용할 때 주의할 점

모비율 검정을 사용할 때는 다음 사항을 함께 고려해야 합니다.

  • 표본 크기가 충분히 커야 정규 근사가 타당함
  • 각 집단의 성공/실패 관측값은 독립적이어야 함
  • 표본 비율이 0 또는 1에 매우 가까울 경우 주의 필요

마무리하며

모비율 검정은
범주형 데이터에서 비율 차이를 분석하는 핵심적인 통계 기법입니다.

불량률, 성공률, 사망률과 같이
비율로 표현되는 지표를 분석할 때,
이 검정은 매우 직관적이고 강력한 도구가 됩니다.

마지막 업데이트: 2024-04-02

당신이 관심있을 만한 글