五数概括法
通俗的说就是最小,第一四分位,第二四分位,第三四分位,最大数
箱形图
箱形图是基于五数概括法的数据的一个图形汇总。
箱形图的说明:
(1)边界分别为第一四分位数和第三四分位数
(2)在箱体上中位数即第二四分数处画垂线
(3)利用四分位数间距IQR = Q3-Q1,找到界限,超出即为异常值。
IQR左 = Q1 - 1.5×IQR
IQR右 = Q3 + 1.5×IQR
(4)虚线被称为触须线,触须线的端点为最小值和最大值
(5)每个异常值的位置用符号'*'来标出。
箱线图提供了另一种检测异常值的方法,但他和Z-分数检测出的异常值不一定相同,可选一种或两种。
练习
数据集的第一四分位数为42,第三四分位数为50,计算箱形图的上、下界限。数据值65是否应该认为是一个异常值?
上限:50+1.5*8 = 62
65大于上限,是异常值
import numpy as np
import pandas as pd
from pandas import Series
data = [8408,1374,1872,8879,2459,11413,608,14138,6452,1850,2818,1356,10498,7478,4019,4341,739,2127,3653,5794,8305]
data_sale = Series(data)
data_sale
a
min 608.000000
25% 1872.000000
50% 4019.000000
75% 8305.000000
max 14138.000000
b
下界限:1872-1.5*(8305-1872) = -7777.5
上界限: 8305+1.5*(8305-1872) = 17954.5
c. 最小最大值都在界限范围内,数据中没有异常值
d. 可以发现,因为最大上限只有179.54亿
e. 箱线图代码
import matplotlib.pyplot as plt
import matplotlib.pyplot as plt
plt.matplotlib.rcParams['font.sans-serif'] = ['SimHei']
df = pd.DataFrame(data_sale,columns = ['销售业绩'])
df.boxplot()
plt.show()
prepar_data = [23.5,22.8,38.3,41.3,40.6,15.6,12.4,11.5,33.3,16.0,16.9,10.3,3.4,24.2,12.1,20.6,11.9,4.1,13.6,10.7,13.2,13.5,19.5,21.4,24.5,10.4,10.8,10.0,10.9,15.1,6.6,13.2,13.6,12.8,18.7,11.4,23.6,27.3,20.4,36.6,21.5,26.3,23.7,11.7,23.2,14.5]
data_fund = Series(prepar_data)
data_fund.describe()
count 46.000000
mean 18.206522
std 9.102708
min 3.400000
25% 11.750000
50% 15.350000
75% 23.425000
max 41.300000
上限:11.75 - 1.5*(23.425-11.75) = -5.75
下限:23.425 + 1.5*(23.425-11.75) = 40.93
没有异常值,都在这个范围内。