在数据分析中,什么是常用的集中趋势和离散程度的度量方法?

发布时间:2026/6/28 3:38:34

在数据分析中,什么是常用的集中趋势和离散程度的度量方法? 集中趋势与离散程度的度量方法一、集中趋势 — 数据的重心在哪1. 均值Meanxˉ1n∑i1nxi\bar{x} \frac{1}{n}\sum_{i1}^{n}x_ixˉn1​i1∑n​xi​df[salary].mean()优点缺点利用了所有数据点对极端值非常敏感数学性质好便于后续计算偏态分布时代表性差易受极端值影响的经典场景9人月薪: 6K, 7K, 7K, 8K, 8K, 9K, 9K, 10K, 85K 均值 16.6K ← 1人拉高了整组 去掉85K后均值 8K2. 截尾均值Trimmed Mean去掉两端各 p% 的极端值后再求均值兼顾均值的精确性和中位数的稳健性。fromscipy.statsimporttrim_mean# 去掉两端各 5%trim_mean(df[salary],0.05)截掉比例效果0%等同于普通均值5%~10%去除少量极端值常用25%等同于四分位中间50%的均值midhinge50%等同于中位数3. 中位数Median排序后取中间位置的值。n 为奇数取正中间n 为偶数取中间两数的均值。df[salary].median()优点缺点不受极端值影响未利用所有数据点的信息偏态分布下更具代表性不便于数学推导与分位数配合直观小样本时可能不够稳定4. 众数Mode出现次数最多的值。一组数据可能没有众数也可能有多个。df[city].mode()数据类型是否适用分类变量首选唯一的集中趋势指标离散数值可用连续数值通常不适用每个值都只出现一两次5. 各指标对比与选择右偏分布最常见 众数 中位数 均值 左偏分布 均值 中位数 众数 对称分布 均值 ≈ 中位数 ≈ 众数场景推荐原因薪资、房价、订单金额中位数右偏严重均值被拉高考试成绩近似正态均值分布对称均值精确用户城市分布众数分类变量评委打分去掉最高最低截尾均值消除极端打分多峰分布分别报告一个指标无法代表多个峰值二、离散程度 — 数据散得多开1. 极差RangeRxmax−xminR x_{max} - x_{min}Rxmax​−xmin​df[salary].max()-df[salary].min()优点缺点计算极简只依赖两个极端值直觉易懂受异常值影响极大样本越大极差越大不可比2. 方差Variance每个值与均值之差的平方的平均值σ21n∑i1n(xi−xˉ)2\sigma^2 \frac{1}{n}\sum_{i1}^{n}(x_i - \bar{x})^2σ2n1​i1∑n​(xi​−xˉ)2样本方差用 n-1Bessel 校正s21n−1∑i1n(xi−xˉ)2s^2 \frac{1}{n-1}\sum_{i1}^{n}(x_i - \bar{x})^2s2n−11​i1∑n​(xi​−xˉ)2df[salary].var()# 默认 ddof1样本方差优点缺点利用了所有数据单位是原单位的平方如元²不好解释数学性质好受极端值影响3. 标准差Standard Deviation方差的平方根最常用的离散程度指标σσ2\sigma \sqrt{\sigma^2}σσ2​df[salary].std()优点缺点与原数据同单位可解释仍受极端值影响配合均值可定义区间仅适用于单峰、近似对称分布经验法则正态分布下均值 ± 1σ 覆盖约 68% 的数据 均值 ± 2σ 覆盖约 95% 的数据 均值 ± 3σ 覆盖约 99.7% 的数据业务解读示例平均订单金额 200 元标准差 80 元 ±1σ → 120~280 元约68%的订单在这个区间 ±2σ → 40~360 元约95%的订单在这个区间 超过 440 元3σ的订单值得关注4. 变异系数Coefficient of Variation, CV标准差除以均值消除量纲影响CVsxˉ×100%CV \frac{s}{\bar{x}} \times 100\%CVxˉs​×100%cvdf[salary].std()/df[salary].mean()解决的核心问题不同量级的数据无法直接比较标准差。A 产品均值 10 元标准差 2 元 → CV 20% B 产品均值 1000 元标准差 50 元 → CV 5% 标准差 B A但相对波动 B A适用场景不适用比较不同产品的波动均值接近 0 或为负CV 无意义比较不同地区的离散度有负值的数据如温度评估测量精度5. 四分位距IQR第三四分位数与第一四分位数的差IQRQ3−Q1IQR Q3 - Q1IQRQ3−Q1Q1df[salary].quantile(0.25)Q3df[salary].quantile(0.75)IQRQ3-Q1优点缺点不受极端值影响忽略了两端各25%的数据信息配合箱线图直观对小样本不太稳定定义异常值的标配异常值判定下界 Q1 - 1.5 × IQR 上界 Q3 1.5 × IQR 超出此范围 → 温和异常值mild outlier 超出 Q1/Q3 ± 3 × IQR → 极端异常值extreme outlier6. 平均绝对偏差MAD每个值与均值或中位数之差的绝对值的平均值MAD1n∑i1n∣xi−xˉ∣MAD \frac{1}{n}\sum_{i1}^{n}|x_i - \bar{x}|MADn1​i1∑n​∣xi​−xˉ∣(df[salary]-df[salary].mean()).abs().mean()优点缺点直觉好理解“平均每个值偏离均值多远”不如标准差常用比标准差更抗极端值数学性质不如方差/标准差常作为中位数的配套离散指标7. 各指标对比与选择指标抗极端值利用量级信息同单位量纲无关极差✗✗✓✗方差✗✓✗(平方)✗标准差✗✓✓✗MAD△✓✓✗IQR✓△✓✗CV✗✓✗✓选择决策树数据近似正态 ├── 是 → 标准差 均值 └── 否 ├── 有明显极端值 │ ├── 是 → IQR 中位数 │ └── 否 → 标准差 └── 需要跨量级比较 └── 是 → 变异系数 CV三、完整实战示例importpandasaspdimportnumpyasnp dfpd.read_csv(orders.csv)# ── 集中趋势 ──print( 集中趋势 )print(f均值:{df[amount].mean():.2f})print(f中位数:{df[amount].median():.2f})print(f众数:{df[amount].mode().iloc[0]:.2f})print(f截尾均值(5%):{trim_mean(df[amount],0.05):.2f})# ── 离散程度 ──print(\n 离散程度 )print(f极差:{df[amount].max()-df[amount].min():.2f})print(f标准差:{df[amount].std():.2f})print(f方差:{df[amount].var():.2f})Q1df[amount].quantile(0.25)Q3df[amount].quantile(0.75)print(fIQR:{Q3-Q1:.2f})cvdf[amount].std()/df[amount].mean()print(f变异系数:{cv:.2%})# ── 分位数全貌 ──print(\n 分位数 )print(df[amount].quantile([0.01,0.05,0.1,0.25,0.5,0.75,0.9,0.95,0.99]))# ── 分组对比 ──print(\n 分组统计 )df.groupby(channel)[amount].agg(均值mean,中位数median,标准差std,Q1lambdax:x.quantile(0.25),Q3lambdax:x.quantile(0.75),IQRlambdax:x.quantile(0.75)-x.quantile(0.25),CVlambdax:x.std()/x.mean(),)四、常见误区误区正确理解只看均值不看离散程度均值相同的两组数据可能完全不同用标准差衡量偏态数据的离散度偏态数据用 IQR 更合理直接比较不同量级数据的标准差应使用变异系数 CV中位数总比均值好近似正态时均值更精确极差越大数据越分散极差只看两端IQR 更稳健

相关新闻