箱型图提供了识别异常值的一个标准:
异常值通常被定义为小于QL-1.5IQR或大于QU+1.5IQR的值。
QL称为下四分位数,表示全部观察值中有四分之一的数据取值比它小;
QU称为上四分位数,表示全部观察值中有四分之一的数据取值比它大;
IQR称为四分位数间距,是上四分位数QU与下四分位数QL之差,其间包含了全部观察值的一半。
最小值 (minimum);
下四分位数 (first quartile, Q1);
中值或中位数 (median), 或第二个四分位数 (second quartile, Q2);
上四分位数 (third quartile, Q3);
最大值 (maximum)。
四分位间距 (interquartile range, IQR), 表示下四分位数Q1和上四分位数Q3的间距;
离群值 (outliers),表示小于minimum的值和大于maximum的值。
箱型图依据实际数据绘制,没有对数据作任何限制性要求(如服从某种特定的分布形式),它只是真实直观地表现数据分布的本来面貌;
另一方面,箱型图判断异常值的标准以四分位数和四分位距为基础,四分位数具有一定的鲁棒性:多达25%的数据可以变得任意远而不会很大地扰动四分位数,所以异常值不能对这个标准施加影响。
由此可见,箱型图识别异常值的结果比较客观,在识别异常值方面有一定的优越性
- boxplot(x, notch=None, sym=None, whis=None, positions=None,
- widths=None, patch_artist=None, bootstrap=None, usermedians=None,
- conf_intervals=None, meanline=None, showmeans=None, showcaps=None,
- showbox=None, showfliers=None, boxprops=None, labels=None,
- flierprops=None, medianpropos=None, meanprops=None, capprops=None,
- whiskerpropos=None, manage_ticks=True, autorange=False,
- zorder=None, *, data=None)
x:绘制箱型图的数据。
·sym:表示异常值对应的符号,默认为空心圆圈。
·vert:表示是否将箱形图垂直摆放,默认为垂直摆放。
·whis:表示箱形图上下须与上下四分位的距离,默认为1.5倍的四分位差。
·positions:表示箱体的位置。
·widths:表示箱体的宽度,默认为0.5。
·patch_artist:表示是否填充箱体的颜色,默认不填充。
·meanline:是否用横跨箱体的线条标出中位数,默认不使用。
·showcaps:表示是否显示箱体顶部和底部的横线,默认显示。
·showboxs:表示是否显示箱形图的箱体,默认显示。
·showfliers:表示是否显示异常值,默认显示。
·labels:表示箱形图的标签。
·boxpropos:表示控制箱体属性的字典。
- diamonds = pd.read_csv('./data/DiamondsPrices2022.csv')
- diamonds.boxplot(column=['price'], showmeans=True, return_type='axes', figsize=(8, 8))
- plt.title("价格中的异常值", size=12)
- plt.show()