使用Pandas series.mad()计算Series的平均绝对偏差(Python)

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

引言

平均绝对偏差 (MAD) 的测量是统计指标的基石,它量化了数据集中各个数据点相对于整个数据集均值的离散程度。Pandas 库为 Python 提供了完整的数据处理和分析工具集,并开发了用于 MAD 计算的函数。学习“MAD”对于评估变异性至关重要,尤其是在存在异常值的数据集中。本教程包含了 MAD 的定义,并通过实际示例说明了如何利用 Pandas Series 应用它。读者将通过简洁的说明和示例理解整个过程。因此,他们使用 Pandas mad() 函数计算 MAD 的熟练程度将得到保证,从而能够进行富有洞察力的数据分析。

Python 中的 Pandas 库提供了允许用户处理和分析数据系列特征的函数,包括 MAD 的计算。在本教程中,读者将逐步了解 MAD 在 Python Pandas 上下文中的含义,并通过使用 pandas mad() 函数以简单的方式计算它。

什么是 MAD?

MAD(平均绝对偏差)是一种度量,它计算数据集中任何值与均值之间的差值。它通常被认为是衡量整个数据集分布范围或变异性的主要统计指标。在 MAD 中,首先考虑每个变量与整个数据集均值的偏差,然后计算这些偏差值之和。结果就是这些值的平均值。在数据检查异常值或计算不同数据集的方差时,它是一个非常重要的优势,提供了一个比较点。

理解平均绝对偏差 (MAD) 的概念

在接下来的部分,我们将主要围绕 Pandas 展开,我们只会对 MAD 和计算过程进行概括。MAD 使用以下公式计算:

Pandas series.mad() to Calculate Mean Absolute Deviation of a Series in Python

其中

  • 是平均绝对偏差。
  • 是数据集中数据点的总数。
  • 代表每个数据点。
  • 是数据集的均值。

请考虑以下清晰的句子以获得更好的理解。MAD 简单来说就是计算数据集中每个数据点与整个数据集均值之间绝对偏差的平均值。来自差值的绝对偏差将被视为绝对值,正偏差和负偏差对整体变异性的贡献是相等的。

现在,我们将使用 Pandas Series 的一些基本操作来运行 MAD。

使用 Pandas Series.mad() 函数

Pandas 在 Python 中处理和分析数据方面提供了极大的帮助,其 mad() 函数可以将计算结果汇总到 Series 中。mad() 函数在繁杂的操作中提供了一种便捷的替代手动计算的方式,通过计算 MAD 来提供实用的分析。

语法

参数

  • 'axis:' 指示了感知最大混淆角度的对齐轴。默认情况下,它是在连接的数组上每日计算的。对于 DataFrames(具有列作为特征)输入,axis=0 沿行计算模式,axis=1 沿列计算模式。
  • 'skipna:' 布尔值(默认为“default”),指示是否排除 NA/null 值。Impute - 缺失值或直接将其标识为缺失。如果为 False,则缺失值被视为有效点。
  • 'numeric_only:' 一个布尔条件,指定您是否只希望包含数值类型的数据。如果设置为 True,可以确保非数值数据类型不会被包含在算术运算中。

现在我们将通过一个例子来看看 mad 函数如何实际使用。

示例:Pandas Series 方法确定 Mad()

例如,假设我们有一个数据集,它是一个 Pandas Series,我们需要估计该 Series 中值所包含的平均绝对偏差。我邀请您与我一起进行逐步实现。

输出

Mean Absolute Deviation (MAD): 3.12

说明

  • 代码首先导入 Pandas 并将其赋值给“pd”库。
  • 然后,它通过生成一个名为 data 的 Pandas Series 来标记其不变性。Series AP2 是一个包含值“[12, 15, 18, 20, 22]”的数字序列。
  • 随后,对 Series 调用 **'mad()'**。此过程计算序列中值的 MAD(平均绝对偏差)。
  • 评估的结果存储在未设置的 **'mad_value'** 变量中。
  • 接下来,使用 **'print()'** 函数,计算出的 MAD 值将通过控制台呈现给用户。
  • 函数和描述性消息:“MAD(平均绝对偏差):”显示 **'mad_count'**。
  • 这个简短的代码片段展示了 Pandas 计算绝对偏差平均值的最常见和可接受的方式。

处理缺失值和非数值数据

Pandas 的 "mad()" 函数在处理缺失值和非数值数据方面非常有用。通常,该函数只计算数字。然而,行为会根据是否使用 skipna 参数而有所不同。

例如,如果您的数据集包含除数字以外的其他数据类型,通过指示 'numeric_only' 参数,您可以将它们从命令中排除。

让我们看一个例子来帮助我们更好地理解如何处理缺失值和其他类型的数据。

输出

Mean Absolute Deviation (MAD) with missing values and non-numeric data: 2.5

说明

  • 创建了一个名为 Pandas 的 'data' Series,其中包含数字、一个缺失值(None)和一个非数字值('abc')。
  • 'mad()' 是 Data Series **'calcMAD()'** 实际使用的函数,用于获取与均值的平均偏差 (MAD)。
  • 虽然提供给 'mad()' 函数的 Series 可能包含缺失值或非数字数据类型,但它会通过排除该 Series 中的非数字值来计算 MAD 值。
  • 然后,**'mad_value'** 变量包含计算出的 MAD。
  • 最后,使用 'print()' 函数将计算出的 MAD 值显示给用户,并附带描述性消息:“**带缺失值和非数值数据的 MAD:非数值数据 'mad_value'**”。

局限性和注意事项

虽然平均绝对偏差 (MAD) 是量化数据集内变异性的有用度量,但了解其局限性和注意事项很重要:然而,平均绝对偏差 (MAD) 在存在数据变异性的情况下无疑占有重要地位,其优点和缺点是相当的,值得考虑。

  • 对异常值的敏感性: MAD 通常是一种算术敏感度度量,因为它涉及评估相对于中心趋势数字的绝对偏差。均值偏差通常是主要情况,因为样本中添加极端的异常值会对 MAD 值产生很大影响,从而错误地衡量变异性,导致结果不准确。
  • 对数据分布变化的鲁棒性不足: MAD,鉴于数据的种类可能随处可见,并且可能以不同的方式变化。因此,对于这两组数据,MAD 将是相同的,尽管这些数据集分布中的散布量可能与它们与均值的偏差差异不一致。因此,该曲线可能无法显示数据增量的水平,例如这些小时间尺度的变化。
  • 缺乏数学性质: MAD 不仅仅如此,它既不拥有也不获得这些相关的数学特性。例如,它在桌面上的复杂性低于其他领域的线性回归分析,不仅有助于方差,还有助于相关的统计调查。
  • 小样本中的潜在偏差: 当元素倾向于产生较大方差时,MAD 可能会有偏小,从而造成关于变异性的误解。在此类情况下,应谨慎评估 MAD 电子记录的短期预防措施。
  • 解释挑战: MAD 的术语与真实数据不同,而且很难理解,因为变异系数更容易理解。关于这个问题,我认为他们应该首先提供 MAD 值的基础背景,因为非技术利益相关者似乎缺乏足够的信息。
  • 计算复杂性: pandas 提供了 mad() 函数作为 MAD 的替代方案。另一方面,对于大型数据集,即使涉及数百万个数据点,也需要进行手动计算。这需要数百万个数据点,而这正是耗费时间和资源的地方。
  • 处理缺失数据: Pandas 的 fillna(0) 和 dropna() 函数可以在计算过程中掩盖缺失值,这可能很有帮助。然而,关注处理缺失数据至关重要,因为与缺失值相关的任何不正确处理都可能导致有偏差的结果。

结论

在这份详尽的指南中,我们研究了平均绝对偏差 (MAD) 的概念及其在数据集变异性量化中的作用。然后,我们深入研究了如何利用 Pandas 库及其 `mad()` 函数在 Python 中实现 MAD。通过使用 mad() 函数,Python 程序员可以以最小的复杂性执行 PI 计算,而这种复杂性对于 numpy 和 pandas Series 类型的任务是可实现的。这种可用性为填充缺失值和处理数据分析过程中常见的非数值数据提供了空间。