四分位数
四分位数(Quartile)也称四分位点,是指在统计学中把所有数值由小到大排列并分成四等份,处于三个分割点位置的数值。
箱线图
利用数据中的五个统计量:最小值、第一四分位数、中位数、第三四分位数与最大值来描述数据的一种方法。
四分位差:IQR = Q3-Q1,IQR(interquartile range)
异常值:OUTLIER<Q1-1.5IQR or OUTLIER>Q3+1.5IQR
from matplotlib import pyplot as plt
list = [1,2,3,4,5,6,7,8,20,18,15,100,80,3]
#求list的四分位点
def quartile_value(list,num):
list.sort()
location = num *(len(list)+1)/4
location_int = int(location)
quartile = list[location_int-1]*(location_int+1-location)+list[location_int+1-1]*(location-location_int)
return quartile
Q1 = quartile_value(list,1)
Q2 = quartile_value(list,2)
Q3 = quartile_value(list,3)
IQR = Q3 - Q1
#较小值的内限
inner_outlier_low = Q1 - 1.5 * IQR
#较大值的内限
inner_outlier_high = Q3 + 1.5 * IQR
#较小值的外限
outer_outlier_low = Q1 - 3 * IQR
outer_outlier_high = Q3 + 3 * IQR
#温和异常值
for value in list:
if outer_outlier_low<value<inner_outlier_low or inner_outlier_high <value <outer_outlier_high:
print(value)
#极端异常值
for value in list:
if value <outer_outlier_low or value > outer_outlier_high:
print(value)
plt.boxplot(list,labels=['Data Analays'])
plt.title('Watch Data')
plt.show()