파이썬 scipy.stats
작성 완료
확률분포 클래스
-
scipy.stats를 통해 확률분포를 그려보자
-
우선 확률분포에 대한 클래스 객체를 생성해야 함
-
각 확률분포의 파라미터는 scipy.stats.이름
을 통해 확인하자
종류 | 이름 | 확률분포 |
---|---|---|
이산 | bernoulli | 베르누이 분포 |
이산 | binom | 이항 분포 |
이산 | poisson | 포아송 분포 |
이산 | geom | 기하 분포 |
이산 | nbinom | 음이항 분포 |
이산 | hypergeom | 초기하 분포 |
이산 | multinomial | 다항 분포 |
연속 | norm | 정규 분포 |
연속 | uniform | 균일 분포 |
연속 | expon | 지수 분포 |
연속 | gamma | 감마 분포 |
연속 | t | t 분포 |
연속 | chi2 | 카이제곱 분포 |
연속 | f | f 분포 |
연속 | beta | 베타 분포 |
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm
xx = np.linspace(-5, 5, 1000)
for scale in (0.5, 1.0, 2.0):
plt.plot(xx, norm(0, scale).pdf(xx), label = 'μ = 0, σ = ' + str(scale), lw = 2, alpha = 0.8)
plt.plot(xx, norm(-2, 0.5).pdf(xx), label = 'μ = -2, σ = 0.5', lw = 2, alpha = 0.8)
plt.xticks(np.arange(-5, 6))
plt.yticks(np.arange(0.0, 1.2, 0.2))
plt.title("normal distribution pdf")
plt.xlabel("$x$")
plt.ylabel("$f(x)$")
plt.grid()
plt.legend()
plt.show()
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm
xx = np.linspace(-5, 5, 1000)
for scale in (0.5, 1.0, 2.0):
plt.plot(xx, norm(0, scale).cdf(xx), label = 'μ = 0, σ = ' + str(scale), lw = 2, alpha = 0.8)
plt.plot(xx, norm(-2, 0.5).cdf(xx), label = 'μ = -2, σ = 0.5', lw = 2, alpha = 0.8)
plt.xticks(np.arange(-5, 6))
plt.yticks(np.arange(0.0, 1.2, 0.2))
plt.title("normal distribution cdf")
plt.xlabel("$x$")
plt.ylabel("$f(x)$")
plt.grid()
plt.legend()
plt.show()