本文来源公众号“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 !
文章结束,感谢阅读。您的点赞,收藏,评论是我继续更新的动力。大家有推荐的公众号可以评论区留言,共同学习,一起进步。