使用NumPy验证正态分布特性:realpython/materials项目解析

使用NumPy验证正态分布特性:realpython/materials项目解析

materials Bonus materials, exercises, and example projects for our Python tutorials materials 项目地址: https://gitcode.com/gh_mirrors/ma/materials

正态分布概述

正态分布(Normal Distribution),又称高斯分布(Gaussian Distribution),是统计学中最重要、应用最广泛的概率分布之一。它的概率密度函数呈现典型的钟形曲线特征,在自然界和社会科学中十分常见。

正态分布有几个关键特性:

  • 对称性:曲线关于均值对称
  • 均值、中位数和众数重合
  • 68.2%的数据落在均值±1个标准差范围内
  • 95.45%的数据落在均值±2个标准差范围内
  • 99.73%的数据落在均值±3个标准差范围内

实验验证正态分布特性

我们将使用NumPy的随机数生成器来验证正态分布的这些特性,特别是验证约95%的数据落在±2个标准差范围内的性质。

1. 生成正态分布随机数

首先,我们需要生成一组符合标准正态分布(均值为0,标准差为1)的随机数:

from numpy.random import default_rng

rng = default_rng()
values = rng.standard_normal(10_000)

这里使用了NumPy的default_rng()创建随机数生成器,然后调用standard_normal()方法生成10,000个标准正态分布的随机数。

2. 计算实际标准差

虽然理论上标准正态分布的标准差为1,但由于我们使用的是有限样本,实际计算的标准差会略有差异:

std = values.std()  # 计算样本标准差

3. 筛选±2个标准差范围内的数据

接下来,我们筛选出落在均值±2个标准差范围内的数据点:

filtered = values[(values > -2 * std) & (values < 2 * std)]

这个布尔索引操作会返回所有满足-2σ < x < 2σ条件的数据点。

4. 计算比例

最后,我们计算落在该范围内的数据点占总数据的比例:

filtered.size / values.size

在实际运行中,这个比例通常会非常接近理论值95.45%,验证了正态分布的特性。

深入理解

为什么使用10,000个样本点?

样本量越大,实验结果越接近理论值。10,000是一个足够大的数字,可以确保结果的稳定性,同时不会造成计算负担。

标准差的计算

values.std()计算的是样本标准差,使用n-1作为分母(无偏估计)。这与理论标准差(总体标准差)略有不同,但在大样本情况下差异可以忽略。

随机数生成器

default_rng()是NumPy推荐的新随机数生成器接口,替代了旧的RandomState。它使用了更现代的算法,性能更好,随机性质量更高。

实际应用

理解正态分布的特性在实际中有广泛的应用:

  1. 质量控制:制造业中常用±3σ作为控制限
  2. 假设检验:许多统计检验基于正态分布假设
  3. 异常检测:远离均值±2σ或±3σ的数据可能被视为异常值
  4. 金融建模:资产价格变动常假设服从正态分布

扩展思考

  1. 尝试修改样本量(如100、1,000,000),观察比例变化
  2. 验证其他范围(如±1σ、±3σ)的比例是否符合理论预期
  3. 可视化数据分布,绘制直方图叠加理论正态曲线

通过这个简单的实验,我们不仅验证了正态分布的理论特性,也掌握了使用NumPy进行统计分析和随机数生成的基本方法。

materials Bonus materials, exercises, and example projects for our Python tutorials materials 项目地址: https://gitcode.com/gh_mirrors/ma/materials

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏庭彭Maxine

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值