統計學的Python實現-019:任意正態分佈計算概率

作者:長行

時間:2019.03.21

統計學解釋

上次我們介紹了標準正態分佈概率計算的方法,現在我們來計算任意正態分佈的概率計算方法。

首先需要將正態分佈通過線性變換將它轉化爲標準正態分佈,其變換公式如下:
Z=Xμσ Z=\frac{X-\mu}{\sigma}
其中μ\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的概率。

實際應用

正態分佈在統計學中的應用非常廣泛。無論隨機變量本身是如何分佈的,只要是大量的服從相同分佈的隨機變量之和,那這個和就近似服從正態分佈(李雅普諾夫定理)。

因此,我們可以將正態分佈應用到如下場景的概率計算中:肺活量、智商、考試成績、態度得分等等。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章