作者:长行

时间:2019.03.15


统计学解释

正态分布:正态分布(normal distribution),又称高斯分布;其概率密度(正态分布曲线)呈钟型,两头低,中间高,左右对称。分布如图:

(图片参见同名word文件)

其概率密度公式为:

其中 为标准差, 为均值。

时称随机变量X服从标准正态分布,其概率密度为:

标准正态分布的概率即为φ(x)的标准正态分布的概率密度的积分,也就是标准正态分布的分布函数的值。标准正态分布的分布函数如下:

实现思路

因为标准正态分布的概率密度为超越函数(不可积积分),因此我们通过将被函数包围的面积切分为大量矩阵来计算它的积分。

因为在计算机中我们不方便直接从-∞开始切分为小矩形,所以对于x>0的情况,我们利用 转化为在区间(0,X)上的积分,再加上的0.5;对于x<0的情况,我们利用公式:

进行处理,将x<0的情况转化为x>0的情况。

实现代码

import math
def 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_normal_distribution(x):
return math.exp((-(x)**2)/2)/(math.sqrt(2*math.pi))

print(normal_distribution(1))

结果

0.8413447458669009