본문 바로가기

카테고리 없음

모집단의 수를 알 때, 통계분석을 위해 필요한 표본 집단의 수

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
반응형