susinlee 님의 블로그

두 집단 간의 비율 차이 검정하기 본문

학습/TIL

두 집단 간의 비율 차이 검정하기

susinlee 2025. 3. 30. 13:35

 

그룹 클릭(1) 미클릭(0) 총 인원
대조군 30 70 100
실험군 45 55 100

 

  • 대조군 클릭률 = 30%
  • 실험군 클릭률 = 45%
  • 실험군의 클릭률이 더 높다는 걸 검정하고자 함

 

1. t-검정 (두 집단의 평균 차이 비교)

t-검정은 기본적으로 수치형 데이터에 사용하는 방법이지만,

0과 1로 이루어진 이진값(예: 클릭=1, 미클릭=0)이라면 평균 = 비율 이므로 사용 가능

 

  • 귀무가설
    • 실험군과 대조군의 평균(=비율)이 같다.
  • 대립가설
    • 단측검정 (실험군 > 대조군)
      • 실험군의 평균(=클릭률)이 더 높다
    • 양측검정
      • 두 집단 평균이 다르다
    • scipy.stats.ttest_ind()는 기본적으로 양측검정이므로, 단측일 시 p-value를 2로 나눈다.
from scipy.stats import ttest_ind

# 0 = 미클릭, 1 = 클릭
control = [0]*70 + [1]*30 # 대조군
treatment = [0]*55 + [1]*45 # 실험군

t_stat, p_value = ttest_ind(control, treatment, equal_var=False)

if t_stat < 0:
    one_tailed_p = p_value / 2
else:
    one_tailed_p = 1 - (p_value / 2)

print(f"t 통계량: {t_stat:.3f}\np-value: {one_tailed_p:.3f}")

# t 통계량: -2.207
# p-value: 0.014

 

해석:

  • p < 0.05 → 클릭률 차이가 유의미하다
  • p >= 0.05 → 클릭률 차이가 우연일 가능성 크다

 

2. 카이제곱 검정 (범주형 분포 차이 검정)

  • 귀무가설
    • 그룹과 클릭여부는 독립적이다.
    • 즉, 실험군과 대조군의 클릭 비율은 동일하다
  • 대립가설
    • 그룹과 클릭여부는 독립이 아니다
    • 즉, 실험군과 대조군의 클릭률에 차이가 있다
  • chi2_contingency()는 양측검정만 가능 (방향성 없음)
  • "다르다"는 건 검정 가능, "더 높다"는 건 검정 불가
from scipy.stats import chi2_contingency
import pandas as pd

# 교차표 생성
table = pd.DataFrame({
	'Clicked': [30, 45],
    'Not_Clicked': [70, 55]
}, index=['Control', 'Treatment'])

chi2, p, dof, expected = chi2_contingency(table)

print(f'카이제곱 통계량: {chi2:.3f}\np-value: {p:.3f}')

# 카이제곱 통계량: 4.181
# p-value: 0.041

 

해석:

  • p < 0.05 → 클릭 분포 차이가 의미 있음
  • expected 를 통해 기댓값과 관측값 차이도 확인 가능

 

참고: 비율에 특화된 방법 → z-test for proportions

사실 이 경우엔 statsmodels의 proportions_ztest()가 정상적인 비율 비교 방법

from statsmodels.stats.proportion import proportions_ztest

count = [45, 30] # 클릭 수  (실험, 대조)
nobs = [100, 100] # 각 집단 크기

z, p = proportions_ztest(count, nobs, alternative='larger') # 실험군이 더 큰가?
print(f"z 통계량: {z:.3f}\np-value: {p:.3f}")

# z 통계량: 2.191
# p-value: 0.014

 

  • alternative='larger' → '실험군 > 대조군' 인지 확인

 

요약

상황 추천 방법
클릭률, 구매율 같은 이진 비율 비교 z-test for proportions 
이진 데이터를 수치로 보고 평균 비교 t-test
분할표로 범주형 비율 비교 카이제곱 검정

'학습 > TIL' 카테고리의 다른 글

[250403] TIL  (2) 2025.04.04
[250402] TIL  (0) 2025.04.03
[250326] TIL  (0) 2025.03.26
[250324] TIL  (0) 2025.03.24
[250319] TIL  (0) 2025.03.19