跳到主要内容

描述性统计

问题

描述性统计有哪些常用指标?均值和中位数什么时候用哪个?标准差的含义是什么?

答案

描述性统计是数据分析的起点——在做任何深入分析前,你需要用描述性统计"摸清数据长什么样"。

三大核心维度

集中趋势

指标公式特点适用场景
均值xˉ=xin\bar{x} = \frac{\sum x_i}{n}受异常值影响大正态分布、无明显异常值
中位数排序后取中间值稳健,不受异常值影响有异常值、偏态分布
众数出现次数最多的值用于分类数据分类变量、两极分布
面试高频问题

"均值和中位数什么时候用哪个?"

  • 薪资、房价、收入等右偏分布数据 → 用中位数(少数极高值会拉高均值)
  • 考试成绩、身高等近似正态数据 → 用均值
  • 快速判断:如果 均值 > 中位数,说明数据右偏,应报告中位数
Python 计算
import pandas as pd
import numpy as np

df = pd.DataFrame({'salary': [5000, 6000, 7000, 8000, 100000]})

df['salary'].mean() # 均值: 25200(被 100000 拉高)
df['salary'].median() # 中位数: 7000(更能代表典型值)
df['salary'].mode() # 众数(此例无重复值)

离散程度

指标定义Python
极差最大值 - 最小值df['col'].max() - df['col'].min()
方差偏差平方的平均值 σ2=(xixˉ)2n\sigma^2 = \frac{\sum(x_i - \bar{x})^2}{n}df['col'].var()
标准差方差的平方根 σ\sigmadf['col'].std()
IQRQ3 - Q1(四分位距)df['col'].quantile(0.75) - df['col'].quantile(0.25)
变异系数CV=σxˉCV = \frac{\sigma}{\bar{x}}(标准化离散度)df['col'].std() / df['col'].mean()
标准差的直觉理解

标准差 = "数据平均偏离均值的距离"。

  • 标准差越小,数据越聚集在均值附近
  • 标准差越大,数据越分散
  • 对于正态分布:68% 数据在 ±1σ 内,95% 在 ±2σ 内,99.7% 在 ±3σ 内

分位数与箱线图

分位数
# 常用分位数
df['salary'].quantile(0.25) # Q1(25%分位)
df['salary'].quantile(0.50) # Q2(中位数)
df['salary'].quantile(0.75) # Q3(75%分位)

# 百分位
df['salary'].quantile(0.90) # P90
df['salary'].quantile(0.99) # P99

# 五数概括
df['salary'].describe()
# count, mean, std, min, 25%, 50%, 75%, max

分布形态

指标含义
偏度 = 0对称分布正态
偏度 > 0右偏(右尾长)收入、房价
偏度 < 0左偏(左尾长)考试分数(满分人多)
峰度 = 3正态峰度标准
峰度 > 3尖峰厚尾金融收益率
峰度 < 3平坦均匀分布
偏度和峰度
df['salary'].skew()     # 偏度
df['salary'].kurtosis() # 峰度(Pandas 默认为超额峰度,正态=0)

常见面试问题

Q1: 什么时候用均值,什么时候用中位数?

答案

  • 均值:数据近似对称、无极端异常值、需要后续数学运算(如 t 检验)
  • 中位数:数据偏态、有极端值(如收入、房价)、需要稳健的"典型值"
  • 经验法则:如果 |均值 - 中位数| / 标准差 > 0.5,数据偏态明显,应报告中位数

Q2: 标准差和方差的区别?

答案

  • 方差 = 偏差平方的平均值,单位是原始数据的平方(如万元²)
  • 标准差 = 方差的平方根,单位与原始数据相同(如万元)
  • 实际业务中几乎只用标准差,因为单位可解释
  • 方差在数学推导中更方便(具有可加性)

Q3: 变异系数(CV)什么时候用?

答案: 变异系数 CV=σ/xˉCV = \sigma / \bar{x},用于比较不同量纲/量级数据的离散程度

  • 比较"收入的波动"和"年龄的波动"时,标准差不可比(单位不同),但 CV 可比
  • CV > 1 说明数据离散度非常大

Q4: P90、P99 在数据分析中怎么用?

答案

  • P50(中位数):反映中等水平
  • P90:90% 用户的接口响应时间 < P90 值,常用于 SLA 监控
  • P99:极端情况的阈值,用于发现尾部异常
  • 电商:P90 的客单价 → 高价值用户的门槛

Q5: describe() 输出的指标分别是什么意思?

答案

指标含义
count非空值数量
mean均值
std标准差
min最小值
25%Q1(第一四分位数)
50%Q2(中位数)
75%Q3(第三四分位数)
max最大值

相关链接