在Python中计算置信区间

2025年1月5日 | 阅读8分钟

置信区间是一个统计术语,用于指定最有可能包含未知参数真实值的数值范围。它计算与统计估计相关的误差范围或不确定性。在推断统计中,当研究人员根据样本数据对总体进行推断时,置信区间被广泛使用。

Calculate Confidence Interval in Python

均值的置信区间是一组值,这些值在特定确定性水平下,指的是总体均值。均值的置信区间是一组值,这些值在特定确定性水平下,指的是总体均值。

计算方法如下:

其中

  • μ: 总体均值
  • z: 与置信水平对应的 z 值(对于正态分布)
  • σ: 总体标准差
  • N: 总体大小

本教程将向您展示如何在 Python 中计算置信区间。

在 Python 中计算置信区间的步骤

本教程将向您展示如何在 Python 中计算置信区间。

在 Python 中计算置信区间的步骤

步骤 1: 导入所需的库

首先,我们需要导入必要的统计计算库。为此,scipy.stats 模块被广泛使用。

步骤 2: 定义您的数据

创建一个 NumPy 数组或使用您的数据集来表示将要计算置信样本的数据。

步骤 3: 确定您的置信水平

确定所需的置信水平。最常见的选择是 90%、95% 和 99%。

步骤 4: 计算均值和标准差。

计算数据的样本均值和标准差。

步骤 5: 确定误差范围

误差范围是从样本均值中加减以确定置信区间的量。

步骤 6: 确定置信区间。

使用样本均值和误差范围计算置信区间。

步骤 7: 打印或使用结果

打印置信区间或将其用于进一步分析。

当然!让我们概述一下构建总体均值置信区间的公式

公式

1. 误差范围 (MoE)

2. 置信区间 (CI)

Z 是通过标准分布表或 Python 工具(如 scipy.stats.norm.ppf())找到的临界值。

可以使用各种库在 Python 中计算置信区间,但最常用的库之一是 scipy.stats。下面是一个使用此库的简单示例。

示例程序

输出

Mean: 0.25157279096627755
Confidence Interval: (0.04218360183860331, 0.4609619800939518)

说明

  • 我们创建了 50 个随机数,并计算了均值、标准差、误差范围和置信区间。
  • 生成了一个包含 50 个随机点的样本数据集。
  • 然后,该算法计算数据的样本均值和标准差。用户将置信水平设置为 90%,并使用与该置信水平对应的标准正态分布的 Z 值来计算均值的误差范围。
  • 最后,通过将误差范围乘以样本均值来计算置信区间。
  • 输出显示了一个数值范围,在该范围内,我们可以有 90% 的信心预期真实的总体均值会落在其中。
  • 输出显示了一个数值范围,在该范围内,我们可以有 90% 的信心预期真实的总体均值会落在其中。
  • 置信区间是对样本均值作为基础分布的真实均值估计精度的统计评估。

使用正态分布计算置信区间

当样本量很大或总体标准差已知时,通常使用正态分布。

示例程序

输出

Confidence Interval (Normal Distribution, 95%): (9.71502938704263, 10.50142989243156)

说明

  • random 函数从均值为 (X) 10,标准差为 (X) 2 的正态分布中生成一个包含 100 个点的随机数据集。
  • 目标是以 95% 的置信区间计算此分布的均值。
  • 使用生成的数据计算样本均值 (X) 和样本标准差。
  • 然后使用常用公式计算置信区间:Xz(ns),其中 z 是与所需置信水平对应的 Z 值,'n' 是样本量。
  • 误差范围是使用标准正态分布的 Z 值计算的,并显示最终的置信区间。
  • 此区间提供了一个数值范围,我们可以有 95% 的信心预期正态分布的真实均值会落在这个范围内。

使用 t 分布计算置信区间

当处理较小的样本量或总体标准差未知时,使用 t 分布。

让我们看一个示例程序

示例程序

输出

Confidence Interval (T-Distribution, 95%): (-0.2951937818699003, 0.07344654767922222)

说明

在示例 Python 代码中,从具有 20 个自由度 (df=20) 的 t 分布中生成了一个包含 100 个点的样本数据集。代码然后计算数据的样本均值 (X) 和标准差 (s)。置信水平设置为 95%,并使用 stats.t.ppf 函数计算该水平的关键 t 值。然后使用 t 值、样本标准差和样本大小的平方根来计算均值的误差范围。最后,通过将误差范围乘以样本均值来计算置信区间。输出显示了一个数值范围,在该范围内,我们可以有 95% 的信心预期真实的总体均值会落在其中。

计算均匀分布的置信区间

当范围内所有结果的可能性均等时,使用均匀分布。

对于大的样本量,中心极限定理可能要求在计算均匀分布置信区间时假设正态性。

区间的宽度受所使用的分布和置信水平的影响。

示例 1

让我们看一个例子。

程序

输出

Confidence Interval (Uniform Distribution, 95%): (9.158480512400686, 10.375306092691567)

说明

Python 代码从一个范围在 5 到 15 之间的均匀分布中生成了一个包含 100 个点的样本数据集。然后,该算法计算数据的样本均值和标准差 (s)。用户将置信水平设置为 95%,并使用 stats.norm.ppf 函数计算该水平的关键 Z 值。使用 Z 值、样本标准差和样本大小的平方根来确定均值的误差范围。最后,通过将误差范围乘以样本均值来计算置信区间。输出显示了一个数值范围,在该范围内,我们可以有 95% 的信心预期真实的总体均值会落在其中。

示例 2

程序

输出

Confidence Interval (Uniform Distribution, 99%): (9.327385521851786, 10.977171411557153)

说明

上面的例子与示例 1 相同,但我们将置信度设置为 99%。

基于示例 1 和 2 的详细信息

上面的例子与示例 1 相同,但我们将置信度设置为 99%。

基于示例 1 和 2 的详细信息

  • 置信区间(均匀分布,95%)
    • 下界:9.158
    • 上界:10.375 95%
  • 置信区间(均匀分布,99%)
    • 下界:9.327
    • 上界:10.977

这些置信区间显示了一个数值范围,在该范围内,我们可以以一定的确定性预期真实的总体均值会落在其中。置信水平(无论是 95% 还是 99%)反映了真实总体均值落在计算区间内的可能性。在这种情况下,与 95% 相比,99% 的置信区间范围更宽。

结论

总之,各种统计库(如 NumPy、SciPy 和 Statsmodels)使得在 Python 中计算和使用置信区间变得更加容易。置信区间是对未知参数真实值可能落入的可能范围的估计,它提供了一定的置信度。置信水平的选择(通常以百分比表示,如 90%、95% 或 99%)决定了真实值落在计算区间内的可能性。NumPy 是一个强大的数值工具包,可用于计算样本统计量(如均值)的置信区间。例如,可以使用 numpy.percentile 函数来计算用于生成这些区间的百分位数。

此外,Statsmodels 是一个专注于统计模型的库,它提供了诸如 DescrStatsW 类之类的复杂功能,简化了各种统计量(如均值)的置信区间生成。置信区间的解释是通过评估参数的可能值范围来进行的,区间越短表示精度越高,区间越长表示不确定性越大。分析数据的性质以及计算置信区间所用统计方法的固有假设至关重要,确保它们与数据集的特征相符,从而产生相关且有效的結果。Python 的统计库使用户能够基于样本数据对总体参数进行稳健的统计推断,并仔细考虑置信水平和基本假设。


下一个主题Python-deck-of-cards