Python中的CDF图

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

在概率论和统计学中,累积分布函数 (CDF) 是一个关键概念。它是一个数学函数,提供了随机变量小于或等于特定值的概率。

累积分布函数 (CDF) 适用于离散和连续随机变量。

CDF Plot in Python

累积分布函数的性质

  • 累积分布函数 (CDF) 是一个随着输入值增加而始终增加的函数。
  • 累积分布函数 (CDF) 的值始终在 0 到 1 之间。
  • 在负无穷处,CDF 等于零;在正无穷处,CDF 等于一。
  • 两个点之间的累积分布函数 (CDF) 值之差表示随机变量落在该范围内的概率:P(a < X ≤ b) = F(b) - F(a)。

您可以在 Python 中使用以下语法来计算累积分布函数 (CDF)

语法

示例程序

示例

此示例直接将数据放在变量列表 "data" 中。

程序

输出

CDF Plot in Python

说明

在上面的代码片段中,我们导入了用于数值计算的库。我们导入了 Numpy 模块,该模块在处理数组和数学运算方面很有用。我们还导入了 Matplotlib 库的 pyplot 模块,这是一个功能强大的用于创建可视化(包括图和表)的库。

为了计算 CDF 值,我们使用了公式 y = 1. * np.arange(len(data)) / (len(data) - 1)。这包括使用 np.arange 生成一个值数组,从 0 到数据长度减一。然后将此数组除以数据长度减一,从而得到一个介于 0 和 1 之间的值范围。这些值表示每个数据点的累积概率。

plt.step(x, y, where='post'): 此函数用于创建阶梯函数图,这是可视化 CDF 的常用方法。x 值代表排序后的数据,y 值代表 CDF 值。通过将 where 参数设置为 'post',图中的阶梯从数据点开始。

  • 这些行分别将图的 x 轴和 y 轴标签设置为“数据值”和“CDF 值”。
  • plt.title("累积分布函数 (CDF)"): 此行向图添加标题,描述它代表的内容。
  • plt.grid(True): 为了提高图的可读性,此命令启用添加网格。
  • plt.show(): 此行在弹出窗口中显示图。

随机分布的 CDF

累积分布函数 (CDF) 是概率和统计中的一个概念,用于确定随机变量具有小于或等于某个值的可能性的多少。换句话说,它表示随机分布的累积概率分布。

CDF 通常表示为 F(x),其数学定义为 F(x) = P(X ≤ x)。

程序

输出

CDF Plot in Python

说明

使用 np.random.randn(500) 创建一个包含 500 个随机值的数组,这些值是从常规正态分布(均值=0,标准差=1)中抽取的。

在计算 CDF 之前,有必要使用 NumPy 模块的 np.sort() 函数对数据进行排序。

CDF 值使用 y = 1. * np.arange(len(data)) / (len(data) - 1) 计算。

使用 plt.plot(x, y) 创建 CDF 图,并使用 plt.show() 显示它。

正态分布的 CDF

标准正态分布(也称为标准高斯分布)的累积分布函数 (CDF) 是一个广泛使用且广为人知的 CDF。高斯分布的均值为 0,标准差为 1。其 CDF 表示遵循该分布的随机变量小于或等于给定值的概率。

程序

输出

CDF Plot in Python

说明

我们导入了必要的库,包括 NumPy、Matplotlib 和来自 scipy.stats 的 norm,后者提供了正态分布函数。

我们使用 np.linspace 在 -5 和 5 之间生成 1000 个均匀分布的数据点作为 x 轴。

我们使用 norm.cdf 计算标准正态分布的 CDF 值。loc 参数指定均值(标准正态分布为 0),scale 参数指定标准差(标准正态分布为 1)。

我们使用 plt.plot 绘制 CDF。y 轴显示累积概率,x 轴显示相应的数据值。

我们已为图形添加了标题,并标记了 x 轴和 y 轴。

最后,我们使用 plt.show() 显示 CDF 图。

结论

理解数据分布是统计和数据分析的关键方面。累积分布函数 (CDF) 图是一个有价值的工具,它提供了对数据分布的重要见解,使您能够得出结论并进行推断。它提供了数据特征的全面视图,使其成为数据分析、假设检验和决策制定的多功能资产。总之,对于任何希望更好地理解他们的数据并做出明智决定的人来说,CDF 图都是必不可少的工具。