[파이썬][Scipy] Statistics (통계) 객체 예제

scipy.stats 모듈은 다양한 확률 분포와 통계적 계산을 위한 객체와 함수를 제공합니다. 아래 예제에서는 scipy.stats 모듈을 사용하여 확률 분포를 생성하고 통계적 계산을 수행하는 방법을 보여줍니다.

먼저, 필요한 모듈을 가져옵니다:

mport numpy as np
from scipy import stats
import matplotlib.pyplot as plt

예제 1: 정규 분포 (Normal Distribution) 객체 및 그래프

정규 분포 객체를 생성하고 그래프를 그려봅니다.

# 정규 분포 객체 생성
mean = 0
stddev = 1
norm_dist = stats.norm(loc=mean, scale=stddev)

# 확률 밀도 함수 (PDF) 그래프 그리기
x = np.linspace(-3, 3, 100)
pdf = norm_dist.pdf(x)
plt.plot(x, pdf, label='PDF')
plt.title('Normal Distribution PDF')
plt.xlabel('x')
plt.ylabel('Probability Density')
plt.legend()
plt.grid(True)
plt.show()

예제 2: 이항 분포 (Binomial Distribution) 객체 및 확률 계산

이항 분포 객체를 생성하고 확률을 계산해봅니다.

# 이항 분포 객체 생성
n = 10  # 시행 횟수
p = 0.3  # 성공 확률
binom_dist = stats.binom(n, p)

# 확률 계산
x = 3  # 성공 횟수
probability = binom_dist.pmf(x)
print(f'성공 {x}회 확률: {probability:.4f}')

예제 3: t-분포 (Student’s t-Distribution) 객체 및 누적 분포 함수 (CDF) 계산

t-분포 객체를 생성하고 누적 분포 함수 값을 계산합니다.

# t-분포 객체 생성
df = 5  # 자유도
t_dist = stats.t(df)

# 누적 분포 함수 (CDF) 값 계산
x = 2.0
cdf = t_dist.cdf(x)
print(f'누적 분포 함수 값 (x={x}): {cdf:.4f}')

위의 예제에서는 정규 분포, 이항 분포, t-분포를 다루는 방법을 보여줍니다. scipy.stats 모듈을 사용하면 다양한 확률 분포와 통계적 계산을 쉽게 수행할 수 있습니다.