【数据分析】数据的离中趋势之一 - 极差、分位距、平均差

发布于:2024-08-20 ⋅ 阅读:(132) ⋅ 点赞:(0)

一、极差

  • 未分组或单项分组的数据:极差=最大值 - 最小值
  • 已分组数据:极差=最大组的上限 - 最下组的下限
  • 实际应用中,极差可用于检查产品质量的稳定性和进行质量控制。
  • 正常生产条件下,极差在一定范围内波动,如出现不正常情况,极差就会超出一定范围。由此监察产品质量。

二、分位距

  • 常用分位距有:四分位距、八分位距、十分位距等
  • 四分位距 = 第三个四分位数 - 第一个四分位数
import numpy as np
from scipy.stats import iqr
import pandas as pd

data = np.array([2, 3, 4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7, 7, 8, 9, 9])

# numpy
Q1 = np.percentile(data, 25)
Q3 = np.percentile(data, 75)

IQR = Q3 - Q1
print(f'使用 numpy 计算分位距(IQR):{IQR}')

# scipy
IQR = iqr(data, rng=[25, 75], scale=1.0)
print(f'使用 scipy 计算分位距(IQR):{IQR}')

# pandas
df = pd.DataFrame({'Value': [2, 3, 4, 5, 4, 5, 4, 5, 6, 7, 6, 7, 6, 7, 7, 8, 9, 9]})
Q1 = df['Value'].quantile(0.25)
Q3 = df['Value'].quantile(0.75)
IQR = Q3 - Q1
print(f"使用 pandas 计算分位距(IQR):{IQR}")

输出: 

>>> 使用 numpy 计算分位距(IQR):2.75
>>> 使用 scipy 计算分位距(IQR):2.75
>>> 使用 pandas 计算分位距(IQR):2.75

三、平均差

  • 数据组中各数据值与其算术平均数离差绝对值的算数平均数,常用符号“M.D”表示

下图是甲乙两组工人日产量的平均差计算过程:

甲    组 乙    组
日产量 离差 离差绝对值 日产量 离差 离差绝对值
x x - 平均数 | x - 平均数 | x x - 平均数 | x - 平均数 |
4 -12 12 7 -9 9
7 -9 9 12 -4 4
11 -5 5 14 -2 2
14 -2 2 14 -2 2
14 -2 2 15 -1 1
16 0 0 17 1 1
17 1 1 17 1 1
24 8 8 19 3 3
25 9 9 20 4 4
28 12 12 25 9 9
合计 ---- 60 合计 ---- 36
  • 甲组平均差 = 甲组离差绝对值的平均值 = 60 / 10 = 6 (件)
  • 乙组平均差 = 乙组离差绝对值的平均值 = 36 / 10 = 3.6 (件)
import numpy as np

group_a = np.array([4, 7, 11, 14, 14, 16, 17, 24, 25, 28])
group_b = np.array([7, 12, 14, 14, 15, 17, 17, 19, 20, 25])

mean_a = np.mean(group_a)
abs_a = np.abs(group_a - mean_a)
mad_a = np.mean(abs_a)

print(f'甲组的平均差(MAD):{mad_a}')

mean_b = np.mean(group_b)
abs_b = np.abs(group_b - mean_b)
mad_b = np.mean(abs_b)

print(f'乙组的平均差(MAD):{mad_b}')

输出:

>>> 甲组的平均差(MAD):6.0
>>> 乙组的平均差(MAD):3.6


网站公告

今日签到

点亮在社区的每一天
去签到