[파이썬][Scipy] 통계 및 확률 분포 예제
Scipy의 scipy.stats
모듈은 다양한 확률 분포를 모델링하고 통계적 테스트를 수행하는 데 사용됩니다. 아래에는 몇 가지 통계 및 확률 분포 예제를 제공합니다.
-
정규 분포 (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 값 출력
-
이항 분포 (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 값 출력
-
카이 제곱 분포 (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
모듈은 많은 확률 분포를 지원하고 해당 분포에서 랜덤 샘플 생성 및 통계 계산을 할 수 있도록 도와줍니다. 이러한 예제를 통해 통계 분석 및 확률 분포 모델링을 수행하는 방법을 이해할 수 있습니다.