标准正态分布_统计学的Python实现-017:用Python算标准正态分布的概率

统计学解释

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

ef33e0a21179c0e34061a284ab496fa6.png

标准正态分布曲线

其概率密度公式为:

aafa9857b3c857071c04bab04476658e.png

当μ=0,σ=1时称随机变量X服从标准正态分布,其概率密度为:

ec3f1228e05638949930321fcccf4b9e.png

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

6785866bbab144d47d8a460530f6f39b.png

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

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

eca36a8a9ac854fe4fe4db0f8c31fb58.png

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

实现代码

import mathdef 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

作者:长行

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
正态分布是统计学中最常见的概率分布之一,也被称为高斯分布。它的概率密度函数由均值μ和标准差σ决定,记作N(μ,σ2)。当均值μ为0,标准差σ为1时,正态分布被称为标准正态分布\[1\]。 在Python中,我们可以使用NumPy和Matplotlib库来生成符合正态分布的随机数并进行可视化。首先,我们需要导入numpy和matplotlib.pyplot模块\[2\]。然后,我们可以定义均值和标准差。接下来,使用np.random.normal函数生成符合正态分布的随机数,其中参数分别为均值、标准差和生成样本数。最后,使用Matplotlib来绘制直方图和正态分布曲线,以可视化生成的数据的分布情况\[2\]。 以下是一个生成符合正态分布的随机数并进行可视化的Python代码示例: ```python import numpy as np import matplotlib.pyplot as plt mu, sigma = 0, 0.1 # 均值和标准差 s = np.random.normal(mu, sigma, 1000) # 参数分别为均值、标准差和生成样本数 count, bins, ignored = plt.hist(s, 30, density=True) plt.plot(bins, 1/(sigma * np.sqrt(2 * np.pi)) * np.exp(-(bins - mu)**2 / (2 * sigma**2)), linewidth=2, color='r') plt.show() ``` 运行以上代码,即可生成符合正态分布的随机数并绘制其分布情况的直方图和正态分布曲线\[2\]。 另外,我们还可以使用scipy.stats模块中的kstest函数来进行正态性检验,判断生成的数据是否符合正态分布\[3\]。 希望以上信息对您有所帮助! #### 引用[.reference_title] - *1* *3* [Python实现正态分布模型(Build Normal_distribution)](https://blog.csdn.net/qq_39753433/article/details/122779469)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Python实战:如何生成正态分布数据?](https://blog.csdn.net/qq_37934722/article/details/130304468)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值