python | 终于把统计学中的正态分布搞懂了!!

本文来源公众号“python”,仅用于学术分享,侵权删,干货满满。

原文链接:终于把统计学中的正态分布搞懂了!!

正态分布是统计学中最常见的概率分布,也被称为高斯分布。它的图形呈现为一个对称的钟形曲线,这个曲线在我们的日常生活中非常常见。许多自然现象都符合或接近正态分布,比如人的身高、考试成绩、测量误差等。

正态分布的特点是数据集中在平均值附近,并且向两边逐渐减少。

这种分布形状告诉我们,在数据中,接近平均值的观测值出现的频率最高,而远离平均值的观测值出现的频率较低。

正态分布的重要参数

正态分布由两个参数决定:均值(μ)和标准差(σ)。

均值是分布的中心位置,决定了钟形曲线的中心点。均值越大,整个曲线就越向右移动;均值越小,整个曲线就越向左移动。

标准差描述的是数据的分散程度,它决定了钟形曲线的宽窄。标准差越大,曲线就越扁平;标准差越小,曲线就越尖峰。

正态分布有个著名的"68-95-99.7"规则:约68%的数据落在均值一个标准差的范围内,约95%的数据落在均值两个标准差的范围内,约99.7%的数据落在均值三个标准差的范围内。这个规则帮助我们理解数据的分布情况。

标准正态分布

标准正态分布是一种特殊的正态分布,其均值为0,标准差为1。任何正态分布都可以通过标准化变换为标准正态分布。

标准化的方法是计算Z分数:Z = (X - μ) / σ,其中X是原始数据,μ是均值,σ是标准差。Z分数告诉我们一个数据点偏离均值有多少个标准差。

标准化后,可以使用标准正态分布表查找相应的概率值,这在统计推断中非常有用。

绘制正态分布

Python提供了丰富的工具来处理和可视化正态分布。

下面是一个简单的例子,展示如何使用Python绘制正态分布曲线并生成随机数。

import numpy as np
import matplotlib.pyplot as plt
from scipy import stats

# 设置随机种子以确保结果可复现
np.random.seed(42)

# 生成正态分布随机数
# 均值为5,标准差为2
mu = 5
sigma = 2
data = np.random.normal(mu, sigma, 1000)

# 创建图形
plt.figure(figsize=(10, 6))

# 绘制直方图
plt.hist(data, bins=30, density=True, alpha=0.6, color='skyblue', label='数据分布')

# 计算正态分布的概率密度函数
x = np.linspace(mu - 4*sigma, mu + 4*sigma, 100)
p = stats.norm.pdf(x, mu, sigma)

# 绘制概率密度曲线
plt.plot(x, p, 'r-', linewidth=2, label='正态分布曲线')

# 标记均值和标准差范围
plt.axvline(x=mu, color='green', linestyle='--', label=f'均值: {mu}')
plt.axvline(x=mu + sigma, color='purple', linestyle=':', label=f'均值+标准差: {mu + sigma}')
plt.axvline(x=mu - sigma, color='purple', linestyle=':')

# 添加标题和标签
plt.title('正态分布示例', fontsize=14)
plt.xlabel('值', fontsize=12)
plt.ylabel('概率密度', fontsize=12)
plt.legend()
plt.grid(True, alpha=0.3)

plt.show()

# 验证68-95-99.7规则
within_1_std = np.sum(np.abs(data - mu) < sigma) / len(data)
within_2_std = np.sum(np.abs(data - mu) < 2*sigma) / len(data)
within_3_std = np.sum(np.abs(data - mu) < 3*sigma) / len(data)

print(f"在均值±1个标准差范围内的数据比例: {within_1_std:.2%}")
print(f"在均值±2个标准差范围内的数据比例: {within_2_std:.2%}")
print(f"在均值±3个标准差范围内的数据比例: {within_3_std:.2%}")

运行结果:

在均值±1个标准差范围内的数据比例: 68.30%
在均值±2个标准差范围内的数据比例: 95.30%
在均值±3个标准差范围内的数据比例: 99.70%

这段代码首先生成了1000个均值为5、标准差为2的正态分布随机数。然后绘制了数据的直方图和理论正态分布曲线。最后,它验证了"68-95-99.7"规则,结果与理论预期非常接近。

正态分布的实际应用

1、质量控制

在工厂生产中,产品的尺寸、重量等特性通常服从正态分布。生产过程中,我们会设定一个目标值和允许的误差范围。如果测量值落在这个范围内,产品就是合格的。通过分析数据的正态分布特性,工厂可以评估生产过程的稳定性,及时发现并解决问题。

2、考试成绩分析

学生的考试成绩通常也接近正态分布。教师可以通过正态分布分析学生的成绩情况,评估教学效果。例如,如果大部分学生的成绩远低于预期均值,可能说明教学难度过大或教学方法需要调整。

3、医学研究

在医学研究中,许多人体测量指标(如血压、胆固醇水平等)近似服从正态分布。医生可以根据人群的正态分布特性,确定健康指标的正常范围,帮助诊断疾病。

计算正态分布的概率

下面是一个简单示例,展示如何计算正态分布下的概率:

from scipy import stats

# 创建一个正态分布
# 均值为100,标准差为15(类似IQ分数的分布)
mu = 100
sigma = 15
norm_dist = stats.norm(mu, sigma)

# 计算IQ低于85的人口比例
prob_below_85 = norm_dist.cdf(85)
print(f"IQ低于85的人口比例: {prob_below_85:.2%}")

# 计算IQ高于115的人口比例
prob_above_115 = 1 - norm_dist.cdf(115)
print(f"IQ高于115的人口比例: {prob_above_115:.2%}")

# 计算IQ在85到115之间的人口比例
prob_between = norm_dist.cdf(115) - norm_dist.cdf(85)
print(f"IQ在85到115之间的人口比例: {prob_between:.2%}")

运行结果:

IQ低于85的人口比例: 15.87%
IQ高于115的人口比例: 15.87%
IQ在85到115之间的人口比例: 68.27%

这个例子使用了IQ分数的分布(均值100,标准差15)来计算不同范围内的人口比例。从结果可以看出,大约68%的人口IQ在85到115之间,这正好是均值加减一个标准差的范围,符合正态分布的"68-95-99.7"规则。

总结

正态分布是统计学中的基础概念,具有广泛的实际应用。它由均值和标准差两个参数决定,呈现为对称的钟形曲线。理解正态分布有助于分析数据、做出预测和决策。通过Python等工具,可以轻松地可视化正态分布、生成随机数和计算概率。

THE END !

文章结束,感谢阅读。您的点赞,收藏,评论是我继续更新的动力。大家有推荐的公众号可以评论区留言,共同学习,一起进步。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值