一、极差

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

二、分位距

  • 常用分位距有:四分位距、八分位距、十分位距等
  • 四分位距 = 第三个四分位数 - 第一个四分位数
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}")

输出: 

三、平均差

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

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

  • 甲组平均差 = 甲组离差绝对值的平均值 = 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}')

输出:

08-20 14:07