用反向胡须解释奇怪的箱线图

机器算法验证 数据可视化 箱形图 matplotlib
2022-04-02 18:37:53

虽然我对箱形图还很陌生,但我以为我已经掌握了它们的窍门,直到今天我遇到了这个。我不知道如何处理画在盒子里的底部“胡须”。

在此处输入图像描述

该总体仅由四个值组成:16.5、17.14、13.5、16.75

当然,这个人口的小规模可能不适合这种图表。但这只是我正在策划的几个之一,其他的更有意义。

我的问题有两个:

  1. 这甚至是一个有效的表示还是我用来绘制它的软件行为不端?(我正在使用 python 和 matplotlib)
  2. 如果它是有效的,我该如何解释它?

编辑:

包括使用参数创建的图形whis=3(请参阅下面的答案):

在此处输入图像描述

2个回答

如果不了解您的软件认为绘制箱须图的正确方法,就不可能知道。如果没有数字刻度来锚定结果,则更加困难。无论如何,在这方面(一般而言)有许多不同的指导方针。但是,我们总是可以求助于阅读文档

  • 框:箱线图的主体,显示四分位数和中位数的置信区间(如果启用)。
  • 中位数:每个盒子中位数的水平线。
  • 胡须:延伸到最极端的 n 个异常数据点的垂直线。
  • caps:胡须末端的水平线。
  • 传单:表示超出(原文如此)胡须(异常值)的数据的点。

鉴于 16.5、17.14、13.5 和 16.75 的值,13.5 的值被视为“飞行器”。这些盒子从第一季度延伸到第三季度。水平线是中位数(又名 Q2)。这些值的精确计算有许多不同的方法,但我只是从 R(quantile默认值)中获取方便的值,即 Q1 为 15.75,Q2 为 16.625,Q3 为 16.8475。尽管上面引用的文档不清楚,但似乎胡须和上限延伸到最极端的 n 异常值数据点,不包括“传单”(稍后会详细介绍)。因此,我们可以预期它们将从 16.50 扩展到 17.14。也就是说,它们将延伸到比第一季度(底部)更接近中位数且略高于第三季度(顶部)的值......这正是我们所看到的。

然而,考虑到胡须和飞行物的循环定义......你必须在文档中进一步查看,以看到胡须是“内部四分位数范围的函数。它们延伸到 (whis*(75 %-25%) ) 数据范围”,其中 'whis' 的默认值为 1.5。结合这些信息来源,我们可以看到胡须绘制的点是四分位间距的 1.5 倍,但它们会在该范围内的最极端数据点处停止。超出该范围的数据点被称为传单并按原样绘制。

因此,对于第二个问题,它是“有效的”……这不是我查看绘制箱线图的首选方式,但这并不意味着它无效。正如我所提到的,在这方面没有一个约定。只要您知道箱线图在绘制什么,并且以这种方式绘制它-那么它至少是可靠的。有效将是您必须为自己做出的价值判断。

我上面的描述以及文档应该可以帮助您解释箱线图,但以防万一:

  • 中线:中线
  • 盒子边缘:Q1 和 Q3
  • 晶须限制:膨胀四分位数范围内的最小值和最大值(例如 whis*(75%-25%),其中 whis 默认为 1.5)
  • 小加号:“传单”,超出胡须限制的数据点

在 R 中,我完成了箱线图绘制了各个点,以便您可以看到它在做什么:

> x<-c(16.5, 17.14, 13.5, 16.75)
> boxplot(x,boxwex=.2)
> points(x~rep(1,4),pch="x",col=2)

数据箱线图

如您所见,它与您拥有的不同。

特别是,在我将您的位图拉伸以大致匹配范围之后(假设两个匹配的范围!),您拥有的框更短,并且晶须在框内。

箱线图比较

您需要检查他们如何定义箱线图(定义各不相同 - 但我认为他们没有使用 Tukey 对铰链或晶须如何工作的定义)。

我以各种方式玩过,但我无法确定他们是如何获得铰链的。它们似乎距中位数的距离只有应有的一半。

(除了不同的定义,他们的代码可能只是假设其中某个地方总是有四个以上的点,这可能导致了问题。)