[파이썬][Scipy] 통계 및 확률 분포 예제

Scipy의 scipy.stats 모듈은 다양한 확률 분포를 모델링하고 통계적 테스트를 수행하는 데 사용됩니다. 아래에는 몇 가지 통계 및 확률 분포 예제를 제공합니다.

  1. 정규 분포 (Normal Distribution) 예제:

    정규 분포에서 랜덤 샘플을 생성하고 확률 밀도 함수 (PDF)를 계산하는 예제입니다.

from scipy.stats import norm
    import numpy as np
    
    # 정규 분포의 평균과 표준편차 정의
    mu, sigma = 0, 1
    
    # 랜덤 샘플 생성
    samples = norm.rvs(loc=mu, scale=sigma, size=1000)
    
    # 확률 밀도 함수 (PDF) 계산
    pdf_values = norm.pdf(samples, loc=mu, scale=sigma)
    
    print("랜덤 샘플:")
    print(samples[:5])  # 처음 5개의 샘플 출력
    print("PDF 값:")
    print(pdf_values[:5])  # 처음 5개의 PDF 값 출력
  1. 이항 분포 (Binomial Distribution) 예제:

    이항 분포에서 랜덤 샘플을 생성하고 확률 질량 함수 (PMF)를 계산하는 예제입니다.

from scipy.stats import binom
    import numpy as np
    
    # 이항 분포의 파라미터 정의
    n, p = 10, 0.5
    
    # 랜덤 샘플 생성
    samples = binom.rvs(n, p, size=1000)
    
    # 확률 질량 함수 (PMF) 계산
    pmf_values = binom.pmf(samples, n, p)
    
    print("랜덤 샘플:")
    print(samples[:5])  # 처음 5개의 샘플 출력
    print("PMF 값:")
    print(pmf_values[:5])  # 처음 5개의 PMF 값 출력
  1. 카이 제곱 분포 (Chi-Square Distribution) 예제:

    카이 제곱 분포에서 랜덤 샘플을 생성하고 누적 분포 함수 (CDF)를 계산하는 예제입니다.

from scipy.stats import chi2
    import numpy as np
    
    # 자유도 (degrees of freedom) 정의
    df = 5
    
    # 랜덤 샘플 생성
    samples = chi2.rvs(df, size=1000)
    
    # 누적 분포 함수 (CDF) 계산
    cdf_values = chi2.cdf(samples, df)
    
    print("랜덤 샘플:")
    print(samples[:5])  # 처음 5개의 샘플 출력
    print("CDF 값:")
    print(cdf_values[:5])  # 처음 5개의 CDF 값 출력

Scipy의 scipy.stats 모듈은 많은 확률 분포를 지원하고 해당 분포에서 랜덤 샘플 생성 및 통계 계산을 할 수 있도록 도와줍니다. 이러한 예제를 통해 통계 분석 및 확률 분포 모델링을 수행하는 방법을 이해할 수 있습니다.