python统计分析——正态分布

参考资料:python统计分析【托马斯】

        正态分布或高斯分布是所有分布函数中最重要的。这是由于当样本数足够大的时候,所有分布函数的平均值都趋近于正态分布。数学上正态分布的特征有平均数μ和标准差σ确定。

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

        其中,-∞<x<∞,f_μ,σ是正态分布的概率密度函数(PDF)。和离散型分布的概率质量函数(PMF)相比,PMF只针对离散的整数定义,而PDF针对的是连续的数值。标准正态分布分布是均值为0,标准差为1的正态分布,并且有时被称为z分布。

代码操作如下:

# 导入库
import numpy as np
from scipy import stats
# 定义正态分布参数
mu=-2
sigma=0.7
# 设置正态分布
myDistribution=stats.norm(mu,sigma)
# 定义显著性水平
alpha=0.05
# 计算包含95%数据的区间
myDistribution.ppf([alpha/2,1-alpha/2])

1、正态分布的例子

        ①如果男性平均身高是175cm,标准差是6cm,那么一个随机选择的男性身高是183的概率是多少?

        ②如果假定罐头的标准差为4g,那么平均重量需要是多少,才可以确保99%罐头的重量至少为250g?

        ③如果男性平均身高175cm、标准偏差为6cm,女性平均身高为168cm、标准偏差为3cm,那么随机选择的男性比随机选择的女性要矮的概率是多少?

2、中心极限定理

        中心极限定理说的是,一个足够大数量的同分布的随机变量的均值,将近似服从正态分布分布。换句话说,无论分布如何,均值的抽样分布趋于正态。如下图所示,对超过10个均匀分布的数据进行平均化,已经能够产生平滑的近似高斯分布。

3、分布和假设检验

        为了说明分布函数和假设检验之间的关系,让我们一步一步分析下面的问题。

        假设新生儿的平均体重为3.5kg,标准偏差为0.76kg。如果我们想检查出来所有与普通婴儿显著不同的孩子,我们应该如何判断一个出生体重为2.6kg的孩子?

        我们可以用假设检验的形式重新阐述这个问题:我们的假设是,该婴儿来自健康婴儿总体。根据这个婴儿的体重,我们可以保留这个假设,或者我们应该拒绝这个假设。

        为了回答这个问题我们可以按照如下步骤:

        ①找到描述健康婴儿特征的分布:μ=3.5,σ=0.76。

        ②计算在我们感兴趣的值处的CDF。CDF(2.6)=0.118,即一个健康婴儿的体重比平均体重轻至少0.9kg的概率是11.8%。

nd=stats.norm(3.5,0.76)
nd.cdf(2.6)

 

        ③由于这是正态分布,健康婴儿比平均婴儿体重重至少0.9的概率也是11.8。

        ④解释结果:如果该婴儿是健康的,那么它的体重偏离均值至少0.9kg的概率是2*11.8%=23.6%。这并不显著,所以我们没有足够的证据拒绝我们的假设,所以我们认为该婴儿是健康的。

正态分布是统计学中最常见的概率分布之一,也被称为高斯分布。它的概率密度函数由均值μ和标准差σ决定,记作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、付费专栏及课程。

余额充值