DA Study/TIL

[TIL] 집단 간 비율 차이 통계적 유의미성 검증하기 - Z검정 # python # 부트캠프

harrym8n 2025. 1. 15. 19:02

부트캠프 프로젝트 - 구독 서비스 플랫폼 데이터 분석 프로젝트

# 데이터 입력
n1, x1 = '표본 크기', '첫번째 집단 크기'
n2, x2 = '표본 크기', '두번째 집단 크기'

# z-검정 수행
count = np.array([x1, x2])  # 집단 크기
nobs = np.array([n1, n2])   # 표본 크기

z_stat, p_value = proportions_ztest(count, nobs)

# 결과 출력
print(f"z-statistic: {z_stat:.3f}")
print(f"p-value: {p_value:.3f}")

# 결과 해석
alpha = 0.05
if p_value < alpha:
    print("귀무가설을 기각합니다: 두 집단 간 비율 차이는 통계적으로 유의미합니다.")
else:
    print("귀무가설을 채택합니다: 두 집단 간 비율 차이는 통계적으로 유의미하지 않습니다.")
  • 위 코드의 변수명, 데이터는 마스킹 처리하여 기재하였습니다.

[ 문제 상황 ]

  • A 이벤트 수에 따라 B 전환 비율이 증가하는지 확인하는 과정에서 A 이벤트 수가 많아질수록 해당하는 전체 유저 수가 줄어들어 오차가 발생할 확률이 높아진다.

[ 해결 ]

  1. A 이벤트 수에 따른 전환율 전체 데이터 프레임을 확인하고 적정한 표본크기를 필터링 기준으로 선정
    • 표본 크기 : 해당 A 이벤트 수에 해당하는 전체 유저(B 이벤트 O,X 모두 포함된 유저)
  2. 해당 기준으로 필터링했을 때, 가장 작은 표본 크기 데이터에서 B 이벤트 O, B 이벤트 X 비율 차이가 통계적으로 유의미한지 Z검정을 시도하여 검증
  3. 검증 결과 통계적으로 유의미한 차이를 보였으므로 해당 기준으로 필터링해서 결론 도출

[ 회고 ]

  • 이 경험을 통해 직관적으로 어떤 목적의 수치를 설정했을 때, 객관성을 더하기 위해 통계적 검증을 활용할 수 있다는 점을 깨달았다. 또한 데이터 분석에서 적정 표본의 크기를 설정하는 것은 결과의 신뢰성을 확보하는 핵심 과정임을 알게 되었으며, 표본 크기가 작아질수록 발생할 수 있는 오차를 최소화하기 위해 정량적 기준과 통계적 검증을 함께 활용해야 한다는 것을 배웠다. 또한 분석 과정에서 직관적인 해석만으로 결론을 도출하기보다, 통계적 검증을 통해 데이터의 신뢰성을 뒷받침하는 것이 중요하다는 점을 실감했다. 오늘의 경험이 향후 데이터 기반 의사결정을 내릴 때 더욱 체계적이고 신뢰성 있는 접근 방식을 적용하는 데 크게 도움이 될 것이라 확신했다.