标准/正态分布(python实现)

文章介绍了正态分布和标准正态分布的概念,包括它们的参数(均值和标准差)以及概率密度函数的公式。使用Python的numpy、matplotlib和scipy.stats库生成正态分布的随机数,绘制概率密度函数图,并展示了如何将正态分布转换为标准正态分布。
摘要由CSDN通过智能技术生成

标准/正态分布(python实现)

正态分布(Normal Distribution)又称为高斯分布(Gaussian Distribution),是概率论和统计学中最为重要的概率分布之一。正态分布的概率密度函数具有钟形曲线的形状,呈现对称性。

正态分布

正态分布由两个参数完全确定:

  • μ \mu μ(均值):决定曲线的中心位置
  • σ \sigma σ(标准差):决定曲线的宽度或分布的离散程度

具体而言,如果一个随机变量 X X X 服从正态分布 N ( μ , σ 2 ) N(\mu,\sigma ^2) N(μ,σ2),则其概率密度函数为:
f ( x ) = 1 σ 2 π exp ⁡ ( − ( x − μ ) 2 2 σ 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)

其中, e x p exp exp 表示自然对数的指数函数, π \pi π 表示圆周率。

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

mu = 50  # 均值
sigma = 10  # 标准差

# 生成正态分布随机数
samples_normal = np.random.normal(mu, sigma, 10000)

# 绘制正态分布的概率密度函数图形
x_normal = np.linspace(0, 100, 500)  # x轴范围
y_normal = norm.pdf(x_normal, mu, sigma)  # 计算概率密度函数值

# 绘制直方图: 箱子数 概率密度 透明度
plt.hist(samples_normal, bins=50, density=True, alpha=0.5, label='Generated Samples')
plt.plot(x_normal, y_normal, color='red', label='PDF')
plt.xlabel('x')
plt.ylabel('Probability Density')
plt.title('Normal Distribution')
plt.legend()
plt.show()

标准正态分布

标准正态分布(Standard Normal Distribution)是正态分布的一种特殊形式,具有均值为 0、标准差为 1 的特性。其概率密度函数记作 φ ( z ) \varphi(z) φ(z),其中 z z z 表示标准正态随机变量。且该曲线在均值 0 处取得峰值,并对称于均值。

正态分布与标准正态分布之间存在着一种转换关系;标准化是指将原始的正态分布随机变量 X X X 通过下式转换为标准正态分布随机变量 Z Z Z
Z = X − μ σ Z = \frac {X - \mu} {\sigma} Z=σXμ

其中, Z Z Z 表示标准化后的随机变量, X X X 表示原始的正态分布随机变量, μ \mu μ σ \sigma σ 分别表示原始正态分布的均值和标准差。

标准正态分布在统计推断和假设检验中具有重要的应用,因为许多统计方法都基于标准正态分布的性质进行计算和推导。常见的统计推断方法,如 Z Z Z 检验和 t t t 检验,都依赖于标准正态分布。

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

# 标准正态分布
samples_standard_normal = np.random.standard_normal(10000)

# 绘制标准正态分布的概率密度函数图形
x_standard_normal = np.linspace(-10, 10, 500)  # x轴范围
y_standard_normal = norm.pdf(x_standard_normal, 0, 1)  # 计算概率密度函数值

plt.hist(samples_standard_normal, bins=50, density=True, alpha=0.5, label='Generated Samples')
plt.plot(x_standard_normal, y_standard_normal, color='red', label='PDF')
plt.xlabel('x')
plt.ylabel('Probability Density')
plt.title('Normal Distribution')
plt.legend()
plt.show()

  • 6
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

_leoatliang

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

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

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

打赏作者

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

抵扣说明:

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

余额充值