Python统计分布

版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/Yellow_python/article/details/86906827

scipy

环境:Jupyter Notebook

%matplotlib inline
import matplotlib.pyplot as mp
import matplotlib.style as ms
import numpy as np
import scipy.stats as ss
ms.use('fivethirtyeight')

均匀分布

x = np.linspace(-1, 2, 100)
mp.plot(x, ss.uniform.pdf(x))
mp.fill_between(x, ss.uniform.pdf(x), alpha=.2)
mp.plot(x, ss.uniform.cdf(x))
mp.axhline(color='black', linewidth=2)

正态分布

x = np.linspace(-3, 3, 100)
mp.plot(x, ss.norm.pdf(x))
mp.fill_between(x, ss.norm.pdf(x), alpha=.2)
mp.plot(x, ss.norm.cdf(x))
mp.axhline(color='black', linewidth=2)

二项分布

x = range(11)
mp.bar(x, ss.binom.pmf(x, n=10, p=.5))
mp.plot(x, ss.binom.cdf(x, n=10, p=.5), c='r', linewidth=2)
mp.scatter(x, ss.binom.cdf(x, n=10, p=.5), c='r')
mp.axhline(color='black', linewidth=2)

Beta分布

x = np.linspace(0, 1, 100)
mp.plot(x, ss.beta.pdf(x, a=2, b=2))
mp.fill_between(x, ss.beta.pdf(x, a=2, b=2), alpha=.2)
mp.plot(x, ss.beta.cdf(x, a=2, b=2))
mp.axhline(color='black', linewidth=2)

x = np.linspace(0, 1, 100)
for i in (1, 3, 5):
    mp.plot(x, ss.beta.pdf(x, a=i, b=i), label=str(i))
mp.axhline(color='black', linewidth=2)
mp.legend()

x = np.linspace(0, 1, 100)
for i in (1, 2):
    # ij
    mp.subplot(2, 2, i)
    for j in (.5, 1, 5):
        mp.plot(x, ss.beta.pdf(x, i, j),
                label='a=%d;b=%d' % (i, j))
    mp.axhline(color='black', linewidth=2)
    mp.legend()
    # ji
    mp.subplot(2, 2, i + 2)
    for j in (.5, 1, 5):
        mp.plot(x, ss.beta.pdf(x, j, b=i),
                label='a=%d;b=%d' % (j, i))
    mp.axhline(color='black', linewidth=2)
    mp.legend()

泊松分布

x = range(11)
mp.bar(x, ss.poisson.pmf(x, mu=4))
mp.plot(x, ss.poisson.cdf(x, mu=4), c='r', linewidth=2)
mp.scatter(x, ss.poisson.cdf(x, mu=4), c='r')
mp.axhline(y=5e-3, color='black', linewidth=2)

在这里插入图片描述

x = range(11)
for mu in (1, 2, 3, 6):
    mp.plot(x, ss.poisson.pmf(x, mu), label=str(mu))
mp.axhline(color='black', linewidth=2)
mp.legend()

卡方分布

x = np.linspace(0, 10, 100)
mp.plot(x, ss.chi2.pdf(x, df=3))
mp.fill_between(x, ss.chi2.pdf(x, df=3), alpha=.2)
mp.plot(x, ss.chi2.cdf(x, df=3))
mp.axhline(color='black', linewidth=2)

x = np.linspace(0, 10, 100)
for df in (1, 2, 4):
    mp.plot(x, ss.chi2.pdf(x, df), linewidth=3, label=str(df))
mp.axhline(color='black', linewidth=1)
mp.legend()

Appendix

abbr en cn
pdf probability density function 概率密度函数
pmf probability mass function 概率质量函数
cdf cumulative distribution function 累积分布函数

猜你喜欢

转载自blog.csdn.net/Yellow_python/article/details/86906827