我在matplotlib中有一些关于boxplots的问题:
问题A 。我在下面用 Q1 , Q2 和 Q3 突出显示的标记代表什么?我认为 Q1 是最大值,而 Q3 是异常值,但 Q2 是什么?
问题B matplotlib如何识别离群值? (即它如何知道它们不是真正的max
和min
值?)
答案 0 :(得分:82)
一张图片胜过千言万语。请注意,异常值(图中的+
标记)只是下面宽[(Q1-1.5 IQR), (Q3+1.5 IQR)]
边距的 点。
然而,图片仅是正态分布数据集的示例。重要的是要理解matplotlib首先不估计正态分布,并根据估计的分布参数计算四分位数,如上所示。
相反,中位数和四分位数直接根据数据计算。因此,根据数据的分布和样本的大小,您的箱线图可能会有所不同,例如,不对称且具有或多或少的异常值。
答案 1 :(得分:23)
该框表示第一个和第三个四分位数,红色线表示中位数(第二个四分位数)。 documentation给出了1.5 IQR的默认胡须:
boxplot(x, notch=False, sym='+', vert=True, whis=1.5,
positions=None, widths=None, patch_artist=False,
bootstrap=None, usermedians=None, conf_intervals=None)
和
whis:[默认1.5]
将胡须的长度定义为内四分位数的函数。它们扩展到数据范围内(最低*(75%-25%))的最极端数据点。
如果您对不同的箱形图表示感到困惑,请尝试阅读the description in wikipedia。
答案 2 :(得分:13)
除了回答(因为文档对此不太精确): Q1(wiskers)的最大值低于75%+ 1.5 IQR
(最低值25% - 1.5 IQR)
这是计算胡须位置的代码:
# get high extreme
iq = q3 - q1
hi_val = q3 + whis * iq
wisk_hi = np.compress(d <= hi_val, d)
if len(wisk_hi) == 0 or np.max(wisk_hi) < q3:
wisk_hi = q3
else:
wisk_hi = max(wisk_hi)
# get low extreme
lo_val = q1 - whis * iq
wisk_lo = np.compress(d >= lo_val, d)
if len(wisk_lo) == 0 or np.min(wisk_lo) > q1:
wisk_lo = q1
else:
wisk_lo = min(wisk_lo)
答案 3 :(得分:6)
下图显示了箱线图的不同部分。
第1季度/第1季度:第25个百分点
四分位间距(IQR):第25个百分点至第75个百分点。
中位数(第2季度/第2季度):第50个百分点。
第3季度/第3季度:第75个百分点。
我应该注意,蓝色部分是箱线图的晶须。
下图将正态分布的箱形图与概率密度函数进行了比较。它应该有助于解释“最小”,“最大”和离群值。
“最小”:(Q1-1.5 IQR)
“最大值” :(第3季度+1.5 IQR)
正如zelusp所说,正态分布的29.3698(标准偏差)内包含99.3%的数据。下图中的绿色圆圈(异常值)是数据的剩余0.7%。 Here是这些数字的来源。
答案 4 :(得分:4)
答案 5 :(得分:1)
这是一个图形,该图形说明了stats.stackexchange answer中框的组成。请注意,如果您未在Pandas中提供whis
关键字,则k = 1.5。
Pandas中的boxplot函数是matplotlib.pyplot.boxplot
的包装。 matplotlib docs详细说明了框的组成部分:
问题A:
此框从数据的下四分位数到上四分位数延伸,中间有一条线。
i。 e。输入数据值的四分之一在该框下方,四分之一在该框上方。
问题B:
whis:浮点数,序列或字符串(默认= 1.5)
作为浮子,确定晶须的触及范围超出 第一和第三四分位数。换句话说,IQR是 四分位间距(Q3-Q1),上晶须将延伸到最后 数据小于Q3 + whis * IQR)。同样,下晶须会 延伸到大于Q1的第一个基准-whis * IQR。超过 晶须,数据被认为是异常值,并作为单个数据进行绘制 点。
Matplotlib(和Pandas)还为您提供了许多选项来更改晶须的默认定义:
将此值设置为不合理的高值,以强制晶须显示 最小值和最大值。或者,将其设置为升序 百分位数的序列(例如[5,95])以将晶须设置为特定 数据的百分位。最后,whis可以是字符串“ range” 强制晶须达到数据的最小值和最大值。