zoukankan      html  css  js  c++  java
  • 正态分布

    正态分布

    正态分布代表了宇宙中大多数情况的运转状态。大量的随机变量被证明是正态分布的。

    若随机变量X服从一个数学期望为μ、方差为$sigma ^{2}$的正态分布,记为$N=left( mu ,sigma ^{2} ight) $。其概率密度函数为正态分布的期望值μ决定了其位置,其标准差σ决定了分布的幅度。当μ=0,σ=1时的正态分布是标准正态分布。

    公式$$fleft( x| mu ,sigma ight) =dfrac {1}{sqrt {2pi sigma ^{2}}}e^{-dfrac {left( x-mu ight) ^{2}}{2sigma ^{2}}}$$

    μ是均值,σ是标准差。


    正态分布相关python代码

    导入库

    #导入库
    import numpy as np
    import scipy.stats as stats
    import matplotlib.pyplot as plt

    概率密度函数

    显示一个标准PDF图。

    #PDF概率密度函数
    plt.figure(figsize=(14,7))
    
    plt.plot(np.linspace(-4,4,100),
             stats.norm.pdf(np.linspace(-4,4,100)),
            )
    plt.fill_between(np.linspace(-4,4,100),
                     stats.norm.pdf(np.linspace(-4,4,100)),
                     alpha=0.15,
                     color='red',
                    )

    plt.show()

     均值

    不同均值影响的是PDF图像的位置。

    #均值的影响
    plt.figure(figsize=(14,7))
    
    plt.plot(np.linspace(-4,4,100),
             stats.norm.pdf(np.linspace(-4,4,100),loc=0),
             color='r',
             label='0'
            )
    plt.fill_between(np.linspace(-4,4,100),
                     stats.norm.pdf(np.linspace(-4,4,100),loc=0),
                     alpha=0.15,
                     color='r',
                    )
    
    #均值是2
    plt.plot(np.linspace(-4,4,100),
             stats.norm.pdf(np.linspace(-4,4,100),loc=2),
             color='g',
             label='2'
            )
    plt.fill_between(np.linspace(-4,4,100),
                     stats.norm.pdf(np.linspace(-4,4,100),loc=2),
                     alpha=0.15,
                     color='b',
                    )
    
    #均值是-2
    plt.plot(np.linspace(-4,4,100),
             stats.norm.pdf(np.linspace(-4,4,100),loc=-2),
             color='b',
             label='-2'
            )
    plt.fill_between(np.linspace(-4,4,100),
                     stats.norm.pdf(np.linspace(-4,4,100),loc=-2),
                     alpha=0.15,
                     color='g',
                    )
    
    plt.legend()
    plt.show()

     标准差

    标准差影响的是PDF图像的分布幅度。

    #标准差的影响
    plt.figure(figsize=(14,7))
    
    #标准差是1
    plt.plot(np.linspace(-4,4,100),
             stats.norm.pdf(np.linspace(-4,4,100),scale=1),
             color='r',
             label='1',
            )
    plt.fill_between(np.linspace(-4,4,100),
                     stats.norm.pdf(np.linspace(-4,4,100),scale=1),
                     alpha=0.15,
                     color='r',
                    )
    
    #标准差是2
    plt.plot(np.linspace(-4,4,100),
             stats.norm.pdf(np.linspace(-4,4,100),scale=2),
             color='b',
             label='2',
            )
    plt.fill_between(np.linspace(-4,4,100),
                     stats.norm.pdf(np.linspace(-4,4,100),scale=2),
                     alpha=0.15,
                     color='b',
                    )
    
    #标准差是0.5
    plt.plot(np.linspace(-4,4,100),
             stats.norm.pdf(np.linspace(-4,4,100),scale=0.5),
             color='g',
             label='0.5',
            )
    plt.fill_between(np.linspace(-4,4,100),
                     stats.norm.pdf(np.linspace(-4,4,100),scale=0.5),
                     alpha=0.15,
                     color='g',
                    )
    
    plt.legend()
    plt.show()

     随机样本分布

    #真实的均值和标准差
    plt.figure(figsize=(14,7))
    
    mu_real=10
    sigma_real=2
    
    #随机样本
    np.random.seed(0)
    sample=stats.norm.rvs(loc=mu_real,scale=sigma_real,size=1000)
    
    #样本的均值和标准差
    mu_est=np.mean(sample)
    sigma_est=np.std(sample)
    print('预测的均值:{}
    预测的标准差:{}'.format(mu_est,sigma_est))
    
    #绘制样本的直方图
    plt.hist(sample,bins=50,density=True,alpha=0.25)
    
    #真实的PDF
    plt.plot(np.linspace(2,18,1000),stats.norm.pdf(np.linspace(2,18,1000),loc=mu_real,scale=sigma_real),color='g',label='real')
    
    #样本的PDF
    plt.plot(np.linspace(2,18,1000),stats.norm.pdf(np.linspace(2,18,1000),loc=mu_est,scale=sigma_est),color='r',label='est')
    
    plt.legend()
    plt.show()

     累积概率密度函数

    #CDF累积概率密度函数
    plt.figure(figsize=(14,7))
    
    plt.plot(np.linspace(-4,4,100),
             stats.norm.cdf(np.linspace(-4,4,100)),
            )

     区间概率

    print('P(X<0.3)={}'.format(stats.norm.cdf(0.3)))
    print('P(-0.2<X<0.2)={}'.format(stats.norm.cdf(0.2)-stats.norm.cdf(-0.2)))

  • 相关阅读:
    HTML5 特性检测:Video Format(视频格式)
    HTML5中对script标签的规定与解释
    Java数据类型
    Java微信公众平台开发之将本地开发环境映射到公网访问
    微信扫码支付模式一和模式二的区别
    Java微信公众平台开发之获取地理位置
    Vim 的一些高频使用命令
    Python 的一些高级特性
    【面试题总结】第二篇
    Python 的模块和包
  • 原文地址:https://www.cnblogs.com/gloria-zhang/p/13175805.html
Copyright © 2011-2022 走看看