📜  四分位数公式(1)

📅  最后修改于: 2023-12-03 14:50:44.831000             🧑  作者: Mango

四分位数公式介绍

四分位数(quartile)是统计学中常用的概念,常用来分析数据的分布情况。 四分位数有三个,分别是上四分位数、中位数和下四分位数。 四分位数与百分位数的概念很相似,都是将全体数据分为若干份,只不过百分位数是按照百分比来计算的,而四分位数是按照四等分来计算的。

下面介绍一下四分位数公式的计算方法:

1.先将n个数据从小到大排序

2.计算出中位数

  • 如果n为偶数,中位数为第(n/2)个数和第(n/2+1)个数的平均数
  • 如果为奇数,则中位数为第(n+1)/2个数

3.计算出上四分位数(Q3)

  • 将中位数的右侧数据按照与中位数相同的方法计算一个中位数,即(n+1)/2到n的数,中位数称为上四分位数Q3

4.计算出下四分位数(Q1)

  • 将中位数的左侧数据按照与中位数相同的方法计算一个中位数,即1到(n-1)/2的数,中位数称为下四分位数Q1

5.计算出四分位距

  • 四分位距的计算公式为 IQR=Q3-Q1

6.异常值的判断

  • 异常值的界定规则如下:
  • 1)小于Q1-1.5IQR的数据(用另一种说法:小于下四分位数减1.5倍的四分位距);
  • 2)大于Q3+1.5IQR的数据(用另一种说法:大于上四分位数加1.5倍的四分位距)。
示例代码
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]