python

您所在的位置:网站首页 标准正态分布怎么表示概率 python

python

2024-07-17 04:18| 来源: 网络整理| 查看: 265

1、公式:

正态分布概率密度公式:

f(x)=\frac{1}{\sqrt{2\pi }\sigma }e^{-\frac{(x-\mu )^{2}}{2\sigma ^{2}}}

可通过\frac{X-\mu }{\sigma }转换为标准正态分布

f(x)=\frac{1}{\sqrt{2\pi } }e^{-\frac{x ^{2}}{2}}

 

2、概率密度:

标准正态分布在某个点的概率密度可用scipy.stats.norm.pdf计算,下面模拟计算-5~5的概率密度

from scipy import stats import numpy as np import matplotlib.pyplot as plt plt.rcParams['font.sans-serif']=['SimHei']#用来正常显示中文标签 plt.rcParams['axes.unicode_minus']=False#用来正常显示负号 #正态分布概率密度 X = [] Y = [] for a in np.linspace(-5, 5, 100): y = stats.norm.pdf(a) X.append(a) Y.append(y) plt.plot(X, Y) plt.xlabel("x") plt.ylabel("p") plt.title("正态分布概率密度") plt.show()

结果:

这个图怎么理解呢?这是连续型随机变量的概率密度,并不是说在某个点的概率就是在这个点发生的概率。这里可以理解为在0附近发生的可能性要大于在2附近发生的可能性。

3、累积概率密度(概率分布) from scipy import stats import numpy as np import matplotlib.pyplot as plt plt.rcParams['font.sans-serif']=['SimHei']#用来正常显示中文标签 plt.rcParams['axes.unicode_minus']=False#用来正常显示负号 #正态分布概率密度 X = [] Y = [] for a in np.linspace(-5, 5, 100): y = stats.norm.cdf(a) X.append(a) Y.append(y) plt.plot(X, Y) plt.xlabel("x") plt.ylabel("p") plt.title("正态分布累积概率分布") plt.show()

结果

累计概率分布这个图比较好理解,例如在-2处的值就表示随机变量小于-2的概率。

3、查表

正态分布查表其实就是查累积概率分布。

设某校学生身高服从均值为160, 方差为3600的正态分布,那该校学生身高在180以下的学生比例是多少?

转换为标准正态分布,\frac{X-160}{60 }服从标准正态分布,\frac{180-160}{60 }=0.5,于是我们查标准正态分布表0.5的值,用

scipy.stats.norm.cdf(0.5)

from scipy import stats p = stats.norm.cdf(0.5) print(p)

结果:0.6914624612740131

即有69.1%的学生身高在180以下。

 

4、随机生成一组正态分布样本 import numpy as np #生成15个均值为10,标准差为2的正态分布样本 r = np.random.normal(loc=10, scale=2, size=15) print(r)

如果想2次生成的一样,可以设置seed

import numpy as np #设置随机数种子seed np.random.seed(456789) #生成15个均值为10,标准差为2的正态分布样本 r = np.random.normal(loc=10, scale=2, size=15) print(r)

 

 

author:蓝何忠 email:[email protected]


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3