统计学的Python实现-019:任意正态分布计算概率

作者:长行

时间:2019.03.21

统计学解释

上次我们介绍了标准正态分布概率计算的方法,现在我们来计算任意正态分布的概率计算方法。

首先需要将正态分布通过线性变换将它转化为标准正态分布,其变换公式如下:
Z = X − μ σ Z=\frac{X-\mu}{\sigma} Z=σXμ
其中 μ \mu μ为正态分布的均值, σ \sigma σ为标准差;其结果服从于均值为0,标准差为1的标准正态分布。

实现代码

1.引入计算标准正态分布累积概率的代码

import math
def st_normal_distribution(x):
    #处理x<0(目标点在分布中心左侧)的情况
    if x<0:
        return 1-normal_distribution(-x)
    if x==0:
        return 0.5
    #求标准正态分布的概率密度的积分
    s=1/10000
    xk=[]
    for i in range(1,x*10000):
        xk.append(i*s)
    integral=(fx_normal_distribution(0)+fx_normal_distribution(x))/2 #f(0)和f(x)各算一半
    for each in xk:
        integral+=fx_normal_distribution(each)
    return 0.5+integral*s

def fx_st_normal_distribution(x):
    return math.exp((-(x)**2)/2)/(math.sqrt(2*math.pi))

此函数计算了随机变取量小于函数参数x的概率。

2.利用公式将任意正态分布转化为标准正态分布

def normal_distribution(x,u,s):
    z=(x-u)/s
    return st_normal_distribution(s)
normal_distribution(7.1,5,2)

结果:

0.9772498679618343

其中u为任意正态分布的均值,s为标准差;此函数计算了任意正态分布随机变量取小于函数参数x的概率。

实际应用

正态分布在统计学中的应用非常广泛。无论随机变量本身是如何分布的,只要是大量的服从相同分布的随机变量之和,那这个和就近似服从正态分布(李雅普诺夫定理)。

因此,我们可以将正态分布应用到如下场景的概率计算中:肺活量、智商、考试成绩、态度得分等等。

  • 2
    点赞
  • 3
    评论
  • 2
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

打赏
文章很值,打赏犒劳作者一下
相关推荐
©️2020 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页

打赏

长行

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者