728x90
반응형
1. 개요
대게 학교에서 배우는 표본집단의 수는 모집단이 거의 무한대일 때를 가정한다. 모집단의 수가 크면 결국 수렴하게 되지만 모집단의 수가 정해진 경우가 있다. 이럴 때, 몇 명이 표본오차와 신뢰구간을 고려했을 때 뽑아야 하는지가 궁금해져서 파이썬 스크립트로 만들었다.
2. 코드
from scipy.stats import norm
import math
def calc_sample_size(population_size,p=0.5,confidence_level=0.95, margin_of_error=0.05):
"""
모집단 크기, 신뢰 수준, 허용 오차, 예상 비율을 기반으로 최소 표본 크기를 계산합니다.
:param population_size: 모집단 크기 (예: 10090000)
:param confidence_level: 신뢰 수준 (예: 0.95)
:param margin_of_error: 허용 오차 (예: 0.01)
:param p: 예상 비율 (예: 0.01)
:return: 최소 표본 크기
"""
# 신뢰 수준에 따른 Z-값 계산
Z = norm.ppf(1 - (1 - confidence_level) / 2)
# 유한 모집단을 고려하지 않은 표본 크기 계산
n_0 = (Z**2 * p * (1 - p)) / (margin_of_error**2)
# 유한 모집단을 고려한 최종 표본 크기 계산
n = (population_size * n_0) / (population_size + n_0 - 1)
# 최종 표본 크기 반올림하여 반환
return math.ceil(n)
# 예시 입력
population_size = 10090000 # 모집단 크기
confidence_level = 0.95 # 신뢰 수준
margin_of_error = 0.01 # 허용 오차
p = 0.01 # 예상 비율
# 표본 크기 계산
sample_size = calculate_sample_size(population_size, confidence_level, margin_of_error, p)
print(f"필요한 최소 표본 크기: {sample_size}")
728x90
반응형