我正在尝试通过一些示例数据集来了解seaborn boxplot图。因此,使用“提示”数据集。
tips = sns.load_dataset('tips')
首先使用18个值作为
tips = tips[0:18]
所需数据集为:
1 8.77
2 10.27
3 10.33
4 10.34
5 14.78
6 14.83
7 15.04
8 15.42
9 16.29
10 16.99
11 18.43
12 21.01
13 21.58
14 23.68
15 24.59
16 25.29
17 26.88
18 35.26
所需图形为:
为了更好地理解,我自己计算了Q1,Q2和Q3。
Q2(Median): 16.64
Q1 Data:
9 values
[8.77, 10.27, 10.33, 10.34, 14.78, 14.83, 15.04, 15.42, 16.29]
Q1 Median: 14.78
Q3 Data:
9 values
[16.99, 18.43, 21.01, 21.58, 23.68, 24.59, 25.29, 26.88, 35.26]
Q3 Median: 23.68
Min: 8.77
Max: 35.26
Interquartile Range(IQR): 8.9
Five Number Summary:
8.77, 14.78, 16.64, 23.68, 35.26
到目前为止,由于五个数字摘要与图形匹配,因此看起来非常令人信服。现在,我使用以下方法在该数据集中添加一个元素:
tips = tips[0:19]
新值为16.97
现在,很多事情都将发生变化。
更新后的数据集为:
1 8.77
2 10.27
3 10.33
4 10.34
5 14.78
6 14.83
7 15.04
8 15.42
9 16.29
10 16.97
11 16.99
12 18.43
13 21.01
14 21.58
15 23.68
16 24.59
17 25.29
18 26.88
19 35.26
现在的图形为:
要在手动计算时理解该图,那将不令人信服。
Q2(Median): 16.97
Q1 Data:
9 values
[8.77, 10.27, 10.33, 10.34, 14.78, 14.83, 15.04, 15.42, 16.29]
Q1 Median: 14.78
Q3 Data:
10 values (Greater than or EQUAL TO MEDIAN add here)
[16.97, 16.99, 18.43, 21.01, 21.58, 23.68, 24.59, 25.29, 26.88, 35.26]
Q3 Median: 22.63
Min: 8.77
Max: 35.26
Interquartile Range(IQR): 7.85
Five Number Summary:
8.77, 14.78, 16.97, 22.63, 35.26
正如许多文章中所讨论的,晶须应为Q3+1.5*IQR
和Q1-1.5*IQR
,但在这种情况下不会发生这种情况:
1.5*7.85 = 11.775
For whisker with Q3:
22.63 + 11.775 = 34.405
因此,在图晶须的右侧,最大值应为34.405
,但结尾应为27 approx
。我需要了解这一点,它是如何计算该值的?还是我的手动计算有任何错误?谢谢
答案 0 :(得分:2)
文档字符串有点误导。晶须不会扩展到计算值,而仅足以包含它们之间的所有点(不是异常值的点)。在这种情况下,该值为26.88,因为35.26是一个异常值(超出Q3 + 1.5 * IQR
)。
答案 1 :(得分:0)
在您的第二个图中,有猫头鹰会影响计算。
在docs中,您可以查看参数whis
:
whis:浮动,可选
IQR越过低四分位数和高四分位数的比例,以扩展情节须。
超出此范围的点将被识别为离群值。
尝试使用whis
(2.0
,5.0
,10.0
,...)的大值,以使您的数据点始终落在四分位数之内。