C++ 中的四分位距 (IQR)

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

在 C++ 中,IQR 代表四分位距,是一种统计指标,用于衡量数据集的中间部分。它可以代数表示为两个变量的减法:IQR = Q3−Q1,其中 IQR 是第一四分位数 (Q1) 和第三四分位数 (Q3) 之间的离散度度量。为了开始 C++ 实现,规定数据按顺序排列。然后,它将数据集分成两部分,通常使用中位数来查找 Q1 和 Q3。IQR 对极端值不敏感,使其成为衡量离散度的极佳指标,并允许用户识别异常值并详细描述数据的变异性。

公式,

  • Q1(第一四分位数):低于此值的成员占数据子集的 25%。
  • Q3(第三四分位数):低于此值的成员占数据集的 75%。

IQR 具有对极端值不敏感的特性,这使得它在需要推断是否存在任何异常值并观察数据如何在不同区域分布时更加稳健。

C++ 实现

要计算 C++ 中的 IQR,我们通常遵循以下步骤:

  1. 排序数据:将数据集按升序排列。
  2. 查找四分位数:将排序后的数据集分成两半以查找 Q1 和 Q3。
  3. 计算 IQR:从 Q3 中减去 Q1。

伪代码

示例 1

让我们举一个例子来说明 C++ 中的四分位距 (IQR)

输出

The Interquartile Range (IQR) is: 10

说明

  • 分类:使用 std::sort 函数,数据按升序排序。
  • 中位数计算:使用 find Median 函数计算中位数以确定 Q1 和 Q3。
  • 下半部分和上半部分:数据集的两个部分用于计算 Q1 和 Q3。如果元素数量是奇数,则中间数字不属于任何一方。
  • 如何计算 IQR:通过从 Q3 中减去 Q1 来计算 IQR。

示例 2

让我们再举一个例子来说明 C++ 中的四分位距 (IQR)

输出

The Interquartile Range (IQR) is: 28

说明

  • 排序:通过 std::sort 函数确保数据按升序排列。
  • 计算中位数:为了找到 Q1 和 Q3,calculateMedian 函数计算中位数。
  • 数据集分割:如果数据集大小为偶数,则将其平均分成两半。
    如果中心元素是奇数,则将其从两半中排除。
  • 计算 IQR:ICR 计算如下:ICR = Q3−Q1。

结论

总之,IQR 代表四分位距,是一种统计度量,它衡量数据集中值的分布情况,以及中间一半值的变化程度。为了帮助抵消极端值和/或异常值的发生和影响,四分位距在数学上定义为 Q1 和 Q3 之间的差值。通过使用 C++、排序方法和计算中位数,我们可以合理地处理数据集。它将极大地有助于在数据分析、机器学习和科学研究等领域发现异常值并描述数据的变异性。