Python – 统计中的正态分布

概率分布决定了随机变量采用的所有结果的概率。分布可以是连续分布或离散分布,具体取决于随机变量采用的值。概率分布有几种类型,如正态分布、均匀分布、指数分布等。在本文中,我们将了解正态分布,还将了解如何使用 Python 绘制正态分布。

    什么是正态分布

    正态分布是一个连续概率分布函数,也称为高斯分布,它的平均值是对称的,并且具有钟形曲线。它是最常用的概率分布之一。它有两个参数

    • Mean(μ) - 它表示分布的中心
    • Standard Deviation(σ) – 它表示曲线中的分布

    正态分布的公式为

    正态分布公式

    正态分布公式

    正态分布的性质

    • Symmetric distribution (对称分布) – 正态分布相对于其平均值点是对称的。这意味着分布在其平均值上完全平衡,两侧有一半的数据。
    • 钟形曲线 – 正态分布的图形采用钟形曲线形式,其中大多数点累积在其平均位置。此曲线的形状由分布的平均值和标准差决定
    • 经验法则 – 正态分布曲线遵循经验法则,其中 68% 的数据位于与图表平均值的 1 个标准差范围内,95% 的数据位于与平均值的 2 个标准差之间,99.7% 的数据位于与平均值的 3 个标准差之间。

    正态分布中的经验法则

    正态分布中的经验法则

    • Additive Rule (加法规则) – 两个或多个正态分布之和将始终为正态分布。
    • 中心极限定理 – 它指出,如果我们取从独立和相同的分布式随机变量收集的大型无数据点的平均值,那么这些平均值将遵循正态分布,而不管它们的原始分布如何。

    使用 Python 的正态分布

    Python 编程语言有几个库,可用于绘制正态分布并获取数据点的概率分布函数。

    绘制和应用正态分布所需的模块

    • Numpy – 一个用于数值数学计算和处理多维 ndarr
    ### 正态分布的充分统计量 #### 定义 在统计学中,充分统计量是指能够完全概括数据集中有关未知参数的信息的一个或多个统计量。对于正态分布 \( N(\mu, \sigma^2) \),其概率密度函数为: \[ f(x; \mu, \sigma^2) = \frac{1}{\sqrt{2\pi\sigma^2}} e^{-\frac{(x-\mu)^2}{2\sigma^2}} \] 其中,\( \mu \) 是均值,\( \sigma^2 \) 是方差。假设我们有一组样本 \( X_1, X_2, ..., X_n \) 来自该正态分布,则联合概率密度函数可以写成依赖于某些特定统计量的形式。 根据因子分解定理 (Factorization Theorem)[^4],如果联合概率密度函数能被表示为两部分乘积形式——一部分仅依赖于某个统计量 \( T(X) \) 和参数 \( \theta \),另一部分只与观测值本身相关而无关参数 \( \theta \),那么 \( T(X) \) 就是一个充分统计量。 对于正态分布而言,当已知总体方差 \( \sigma^2 \) 或者两者都未知的情况下,分别有不同的充分统计量表达方式。 #### 当总体方差 σ² 已知时 此时,只有均值 μ 需要估计。通过观察单个随机变量的概率密度函数可以看出,所有样本平均数 \( \bar{x}=\frac{\sum_{i=1}^{n} x_i } { n }\) 能够提供关于 μ 的全部信息。因此,在这种情况下,样本均值 \( \bar{X} \) 即为充分统计量[^5]。 #### 当总体均值 μ 和方差 σ² 均未知时 在这种情形下,我们需要同时考虑两个参数 μ 和 σ² 。经过分析发现,样本均值 \( \bar{X} \) 及未修正样本方差 \( S'^2 = \frac{\sum_{i=1}^{n}(X_i - \bar{X})^2}{n} \) 组合起来构成了一个二维充分统计量向量 \( (\bar{X}, S'^2) \)[^6]。 #### 性质解释 - **最小性**: 如果存在另一个充分统计量 Y ,使得当前讨论的充分统计量可以通过某种函数关系映射到它上面去,则后者被称为前者的小型化版本或者极小充分统计量(minimal sufficient statistic)。上述提到的各种情况下的充分统计量实际上都是各自场景中的极小充分统计量。 - **完备性(completeness)**: 若某充分统计量满足一定条件使其成为完备统计量,则基于此构建无偏估计具有唯一最优解特性(Fisher–Neyman factorization theorem combined with Lehmann-Scheffé theorem)[^7]。 ```python import numpy as np def sample_mean_variance(data): """ 计算给定数据集的样本均值和未修正样本方差 参数: data : list or array-like object containing numeric values 返回: tuple of two elements representing the sample mean and uncorrected variance respectively. """ n = len(data) if n == 0: raise ValueError("Data cannot be empty.") sum_x = sum(data) squared_sum_x = sum([xi**2 for xi in data]) sample_mean = sum_x / n unc_var = (squared_sum_x/n)-(sample_mean**2) return sample_mean, unc_var # Example usage data_points = [3., 4., 5., 6., 7.] mean_val, var_val = sample_mean_variance(data_points) print(f"Sample Mean: {mean_val}") print(f"Uncorrected Sample Variance: {var_val}") ```
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    打赏作者

    算法资料吧!

    我会继续分享编程资料,学习资料

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

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

    打赏作者

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

    抵扣说明:

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

    余额充值