当前位置: 首页 > web >正文

正态分布 - 正态分布的标准化

正态分布 - 正态分布的标准化

flyfish

完整代码在文末
在这里插入图片描述

正态分布的标准化

在概率论与数理统计中,正态分布(Normal distribution) 又称为高斯分布(Gaussian distribution),其概率密度函数呈现著名的 钟形曲线(bell curve)。正态分布不仅是数学上的一个重要概率分布,更是自然科学与社会科学中最常见的统计模型之一。

人们发现,在大量随机现象中,数据往往并不是均匀分布的,而是集中在某个平均值附近,并逐渐向两侧减少,形成对称的钟形模式。正态分布恰好能精确刻画这种现象。

其概率密度函数(PDF)为:

f(x)=1σ2πexp⁡(−(x−μ)22σ2)f(x) = \frac{1}{\sigma \sqrt{2\pi}} \exp\left( -\frac{(x - \mu)^2}{2\sigma^2} \right)f(x)=σ2π1exp(2σ2(xμ)2)

其中,μ\muμ 是均值(mean),表示分布的中心位置;σ\sigmaσ 是标准差(standard deviation),衡量数据的离散程度;σ2\sigma^2σ2 是方差(variance)。

标准化(standardization)是将一个任意正态分布转换为标准正态分布(Standard Normal Distribution)的过程。标准正态分布是均值为0、标准差为1的特殊正态分布,即 Z∼N(0,1)Z \sim N(0, 1)ZN(0,1),其PDF简化为:

ϕ(z)=12πexp⁡(−z22)\phi(z) = \frac{1}{\sqrt{2\pi}} \exp\left( -\frac{z^2}{2} \right)ϕ(z)=2π1exp(2z2)

标准化过程的核心是通过线性变换,使原始分布的均值移到0,方差缩放到1,从而便于计算概率、比较不同分布,并利用标准正态表(Z表)进行统计推断。

1. 标准化过程的数学原理

假设有一个随机变量 X∼N(μ,σ2)X \sim N(\mu, \sigma^2)XN(μ,σ2)。标准化通过以下变换得到标准正态变量 ZZZ

Z=X−μσZ = \frac{X - \mu}{\sigma}Z=σXμ

  • 为什么这个变换有效?

    • 减去均值 μ\muμ:这将分布的中心从 μ\muμ 平移到0,即 E[Z]=E[X−μσ]=E[X]−μσ=μ−μσ=0E[Z] = E\left[\frac{X - \mu}{\sigma}\right] = \frac{E[X] - \mu}{\sigma} = \frac{\mu - \mu}{\sigma} = 0E[Z]=E[σXμ]=σE[X]μ=σμμ=0
    • 除以标准差 σ\sigmaσ:这将方差缩放到1,即 Var(Z)=Var(X−μσ)=Var(X)σ2=σ2σ2=1Var(Z) = Var\left(\frac{X - \mu}{\sigma}\right) = \frac{Var(X)}{\sigma^2} = \frac{\sigma^2}{\sigma^2} = 1Var(Z)=Var(σXμ)=σ2Var(X)=σ2σ2=1

    正态分布在仿射变换(affine transformation,即线性变换加常数)下保持正态性。这是一个关键性质:如果 XXX 是正态的,则 aX+baX + baX+b 也是正态的,其中 a≠0a \neq 0a=0。在这里,a=1/σa = 1/\sigmaa=1/σb=−μ/σb = -\mu/\sigmab=μ/σ,因此 ZZZ 仍是正态分布,且参数为 N(0,1)N(0, 1)N(0,1)

  • 证明标准化后的分布是标准正态
    考虑 ZZZ 的累积分布函数(CDF):

    FZ(z)=P(Z≤z)=P(X−μσ≤z)=P(X≤μ+zσ)=FX(μ+zσ)F_Z(z) = P(Z \leq z) = P\left( \frac{X - \mu}{\sigma} \leq z \right) = P(X \leq \mu + z\sigma) = F_X(\mu + z\sigma)FZ(z)=P(Zz)=P(σXμz)=P(Xμ+zσ)=FX(μ+zσ)

    其中 FXF_XFXXXX 的CDF。将 XXX 的PDF代入,并求导得到 ZZZ 的PDF,即可验证它符合 N(0,1)N(0,1)N(0,1) 的形式。详细推导涉及变量替换:在积分中,让 u=(x−μ)/σu = (x - \mu)/\sigmau=(xμ)/σ,则 dx=σdudx = \sigma dudx=σdu,代入后指数部分简化为 −u2/2-u^2/2u2/2,常数项为 1/2π1/\sqrt{2\pi}1/2π

2. 标准化过程的详细步骤

要将任意正态分布转换为标准正态分布,遵循以下步骤:

  1. 确定原始分布的参数

    • 计算或已知均值 μ\muμ 和标准差 σ\sigmaσ。如果是从样本数据计算,则 μ\muμ 是样本均值 xˉ\bar{x}xˉσ\sigmaσ 是样本标准差 s=1n−1∑(xi−xˉ)2s = \sqrt{\frac{1}{n-1} \sum (x_i - \bar{x})^2}s=n11(xixˉ)2(对于总体,用 nnn 分母)。
  2. 计算Z分数(Z-score)

    • 对于每个观测值 xxx,计算 z=x−μσz = \frac{x - \mu}{\sigma}z=σxμ
    • 这将每个 xxx 转换为对应的 zzz 值,表示 xxx 偏离均值的标准差倍数。正值表示高于均值,负值表示低于均值。
  3. 验证转换

    • 新变量 ZZZ 的分布应为 N(0,1)N(0,1)N(0,1)。可以通过绘制直方图或使用正态性检验(如Shapiro-Wilk测试)验证。
  4. 利用标准正态表或软件计算概率

    • 一旦转换为 ZZZ,可以使用Z表查找概率。例如,P(Z ≤ 1.96) ≈ 0.975。
    • 在软件中,如Python的scipy.stats.norm.cdf(z)。
3. 为什么需要标准化?重要性和应用

标准化不是简单的数值变换,它有深刻的实际意义:

  • 统一比较:不同正态分布的尺度不同(例如,一个分布单位是厘米,另一个是英寸)。标准化后,所有分布都在同一“Z尺度”上,便于比较。例如,在教育中,标准化考试分数(如SAT)允许跨年份或群体比较。
  • 简化计算:标准正态分布有现成的表格和函数库,避免为每个分布单独积分PDF。中心极限定理(CLT)也依赖于此:样本均值的分布趋近正态,经标准化后可直接用Z统计量。
  • 统计推断
    • 置信区间:例如,95%置信区间为 xˉ±1.96σn\bar{x} \pm 1.96 \frac{\sigma}{\sqrt{n}}xˉ±1.96nσ,其中1.96来自Z=1.96的百分位。
    • 假设检验:Z检验用于检验均值假设,如 Z=xˉ−μ0σ/nZ = \frac{\bar{x} - \mu_0}{\sigma / \sqrt{n}}Z=σ/nxˉμ0,然后与临界值比较。
  • 异常检测:Z > 3 或 Z < -3 表示数据超出99.7%的范围(根据经验法则),可能为异常值。
  • 机器学习:在特征工程中,标准化数据(如sklearn的StandardScaler)使模型(如神经网络)收敛更快,避免特征尺度差异影响。金融风险评估(VaR模型)、质量控制(六西格玛,使用±3σ阈值)、心理学(IQ分数标准化为均值100、SD15)。
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm# 参数设置:左侧正态分布
mu_left = 1010
sigma_left = 20# 右侧标准正态
mu_right = 0
sigma_right = 1# 生成x值,确保范围足够宽以显示完整曲线
x_left = np.linspace(950 - 10, 1070 + 10, 1000)  # 略微扩展以防边缘裁剪
pdf_left = norm.pdf(x_left, mu_left, sigma_left)x_right = np.linspace(-3.5, 3.5, 1000)
pdf_right = norm.pdf(x_right, mu_right, sigma_right)# 创建画布
fig, ax = plt.subplots(figsize=(14, 6))  #左侧用柔和的绿色渐变,右侧用蓝色渐变
# 绘制左侧曲线(柔和绿色)
ax.plot(x_left, pdf_left, color='darkgreen', linewidth=2)
ax.fill_between(x_left, pdf_left, color='#98FB98', alpha=0.9)  # PaleGreen# 绘制右侧曲线(蓝色),向右平移并匹配高度
shift = 160  # 略微增加shift以更好地分离两个图
height_scale = max(pdf_left) / max(pdf_right)  # 高度匹配
ax.plot(x_right * sigma_left + mu_left + shift, pdf_right * height_scale, color='navy', linewidth=2)
ax.fill_between(x_right * sigma_left + mu_left + shift, pdf_right * height_scale, color='#87CEEB', alpha=0.9)  # SkyBlue# 添加左侧x轴标签
left_labels = [950, 970, 990, 1010, 1030, 1050, 1070]
for label in left_labels:ax.text(label, -0.0015, str(label), ha='center', fontsize=11, color='black')  # 降低y位置以清晰可见# 添加右侧x轴标签(转换为z-score对应位置)
right_labels = [-3, -2, -1, 0, 1, 2, 3]
for i, label in enumerate(right_labels):pos = mu_left + shift + label * sigma_leftax.text(pos, -0.0015, f'{label:+}' if label != 0 else '0', ha='center', fontsize=11, color='black')  # 降低y位置# 添加底部标题,使用更吸引人的颜色
ax.text(1010, -0.003, 'A Normal Distribution', ha='center', fontsize=13, color='#FF8C00')  # DarkOrange
ax.text(1010 + shift, -0.003, 'The Standard Normal Distribution', ha='center', fontsize=13, color='#FF8C00')# 添加箭头和"Standardize"文本
ax.annotate('Standardize', xy=(1010 + shift / 2 + 20, 0.01), xytext=(1010 + shift / 2 - 30, 0.015),arrowprops=dict(facecolor='orange', edgecolor='orange', shrink=0.05, width=5, headwidth=15),fontsize=14, color='orange', ha='center')# 设置限值,确保右侧完整可见
ax.set_xlim(940, 1010 + shift + 70 + 20)  # 扩展xlim到右侧边缘+缓冲
ax.set_ylim(0, 0.025)
ax.axis('off')  # 移除轴以匹配原风格# 显示图表
plt.show()
http://www.xdnf.cn/news/20463.html

相关文章:

  • 音视频技术全景:从采集到低延迟播放的完整链路解析
  • 【鸿蒙 NEXT】V1迁移V2状态管理
  • VMWare和centOS的安装
  • 集成学习 —— 梯度提升树GBDT、XGBoost
  • Javaweb 14.4 Vue3 视图渲染技术
  • 【MySQL | 高级篇 分片规则与管理监控】
  • 从Java全栈到前端框架的全面实战:一次真实面试的深度解析
  • c++ sqlite3库
  • CentOS下Bind服务的安装与故障排查
  • pyAutoGUI 模块主要功能介绍-(1)鼠标功能
  • 从 Excel 趋势线到机器学习:拆解 AI 背后的核心框架​
  • 数位DP -
  • 【明道云】[工作表控件11] 地理位置控件与地图定位应用
  • 用内存顺序实现 三种内存顺序模型
  • 安装es和kibana
  • Linux之Firewalld防火墙实战篇
  • [光学原理与应用-435]:晶体光学 - 晶体的结构-基元/原胞/晶胞/点阵
  • 多次base64编码过滤垃圾字符
  • 讲一下模版特化和偏特化的区别
  • 如何在Kali Linux官网下载历史版本
  • Redis 持久化机制:AOF 日志深度解析
  • Hystrix与Sentinel-熔断限流
  • 创建阿里云ECS实例操作(免费试用版)
  • 【C++】模板和STL
  • Unity的UGUI更改背景以及添加中文字体
  • 【FastDDS】XML profiles
  • AI助力特征工程:智能化数据科学新范式
  • leetcode 912 排序数组
  • 微前端框架性能对比与选型指南:从理论到实践
  • Redis 的三种高效缓存读写策略!