【问题标题】:Seaborn boxplot quartile calculationSeaborn箱线图四分位数计算
【发布时间】:2018-05-29 21:22:51
【问题描述】:

我正在为 python 使用 seaborn 版本 0.7.1。我正在尝试为下面的 numpy 数组创建一个箱线图

arr = np.array([2, 4, 5, 5, 8, 8, 9])

据我了解,四分位数 Q1 和 Q3 应该是 4 和 8,但从生成的箱线图来看,Q1 大约是 4.5。我错过了什么?

我正在使用以下命令生成图表

sns.boxplot(arr)

【问题讨论】:

  • 由于数组中没有准确的 25% 百分位数(7 个项目),因此它是计算为两个元素的平均值,它们同样接近 25%:4 和 5,得出 4.5。
  • 我确实认为 seaborn 箱线图缺少一些关键文档 - 它至少应该包含一个链接,以解释所使用的基础方法。

标签: python-3.x seaborn


【解决方案1】:

这当然取决于四分位数的定义。

Wikipedia提到了3种计算四分位数的方法,

  • 方法1:取样本下部的中位数[2,4,5]。结果 4。
  • 方法2:取样本下部的中位数(包括其中位数)[2,4,5,5]。结果 4.5。
  • 方法3:下四分位数是第二个数据值的75%加上第三个数据值的25%。结果:4*0.75+5*0.25 = 4.25。 (它始终是方法 1 和 2 之间的平均值。

你也可以使用 numpy 来计算四分位数

x = [2, 4, 5, 5, 8, 8, 9]
np.percentile(x, [25])

这会返回4.5

【讨论】:

  • 非常感谢,我不知道这些计算四分位数的方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-03-08
  • 2020-06-23
  • 2020-08-03
  • 2019-04-29
  • 2021-07-12
  • 1970-01-01
  • 2019-04-14
相关资源
最近更新 更多