📅  最后修改于: 2023-12-03 14:50:44.831000             🧑  作者: Mango
四分位数(quartile)是统计学中常用的概念,常用来分析数据的分布情况。 四分位数有三个,分别是上四分位数、中位数和下四分位数。 四分位数与百分位数的概念很相似,都是将全体数据分为若干份,只不过百分位数是按照百分比来计算的,而四分位数是按照四等分来计算的。
下面介绍一下四分位数公式的计算方法:
def quartile(data):
'''
计算数据的四分位数
'''
n = len(data)
data.sort()
#计算中位数
if n % 2 == 0:
Q2 = (data[n//2-1] + data[n//2]) / 2
else:
Q2 = data[n//2]
#计算下四分位数和上四分位数
Q1 = data[n//4] if n%4==0 else (data[n//4] + data[n//4+1])/2
Q3 = data[n//4*3] if n%4==0 else (data[n//4*3] + data[n//4*3+1])/2
#计算四分位差
IQR = Q3 - Q1
#计算异常值
lower_bound = Q1 - 1.5 * IQR
upper_bound = Q3 + 1.5 * IQR
outliers = [x for x in data if x < lower_bound or x > upper_bound]
print(f'下四分位数Q1={Q1}')
print(f'中位数Q2={Q2}')
print(f'上四分位数Q3={Q3}')
print(f'四分位差IQR={IQR}')
print(f'异常值:{outliers}')
调用函数:
data = [1, 2, 2, 3, 4, 6, 7, 8, 9, 10, 12, 34]
quartile(data)
输出结果:
下四分位数Q1=2.0
中位数Q2=6
上四分位数Q3=10
四分位差IQR=8.0
异常值:[34]