统计分析技能

描述性统计、趋势分析、异常检测、假设检验以及关于何时对统计结论保持谨慎的指南。

描述性统计方法

集中趋势

根据数据选择合适的中心度量:

情况 使用 原因
对称分布,无异常值 均值 最有效的估计量
偏斜分布 中位数 对异常值稳健
分类或有序数据 众数 非数值数据的唯一选择
高度偏斜且有异常值(例如每用户收入) 中位数 + 均值 同时报告;差异显示偏斜程度

对于业务指标,始终同时报告均值和中位数。 如果它们显著偏离,则数据偏斜,仅凭均值会产生误导。

离散度和变异性

用于业务场景的百分位数

报告关键百分位数,讲述比均值更丰富的故事:

p1:   底部 1%(下限 / 典型最小值)
p5:   正常范围的低端
p25:  第一四分位
p50:  中位数(典型用户)
p75:  第三四分位
p90:  前 10% / 重度用户
p95:  正常范围的高端
p99:  前 1% / 极端用户

示例叙述:"中位会话时长为 4.2 分钟,但前 10% 的用户每次会话花费超过 22 分钟,将均值拉高至 7.8 分钟。"

描述分布

描述你分析的每个数值分布:

趋势分析与预测

识别趋势

移动平均线用于平滑噪声:

# 7 天移动平均线(适用于具有周季节性的日度数据)
df['ma_7d'] = df['metric'].rolling(window=7, min_periods=1).mean()

# 28 天移动平均线(同时平滑周和月模式)
df['ma_28d'] = df['metric'].rolling(window=28, min_periods=1).mean()

环比比较

增长率

简单增长:(当前 - 上一期)/ 上一期
复合年增长率:(期末 / 期初)^ (1 / 年数) - 1
对数增长:ln(当前 / 上一期) —— 更适合波动序列

季节性检测

检查周期性模式:

  1. 绘制原始时间序列——先目视检查
  2. 计算星期几平均值:是否有清晰的周模式?
  3. 计算月份平均值:是否有年度周期?
  4. 比较期间时,始终使用同比或同期比较,以避免混淆趋势与季节性

预测(简单方法)

对于业务分析师(而非数据科学家),使用直接的方法:

始终传达不确定性。提供范围而非点估计:

何时升级给数据科学家:非线性趋势、多种季节性、外部因素(营销支出、节假日),或者当预测准确性对资源分配至关重要时。

异常值和异常检测

统计方法

Z 分数法(适用于正态分布数据):

z_scores = (df['value'] - df['value'].mean()) / df['value'].std()
outliers = df[abs(z_scores) > 3]  # 超过 3 个标准差

IQR 法(对非正态分布稳健):

Q1 = df['value'].quantile(0.25)
Q3 = df['value'].quantile(0.75)
IQR = Q3 - Q1
lower_bound = Q1 - 1.5 * IQR
upper_bound = Q3 + 1.5 * IQR
outliers = df[(df['value'] < lower_bound) | (df['value'] > upper_bound)]

百分位法(最简单):

outliers = df[(df['value'] < df['value'].quantile(0.01)) |
              (df['value'] > df['value'].quantile(0.99))]

处理异常值

不要自动移除异常值。而是:

  1. 调查:这是数据错误、真实的极端值还是不同的群体?
  2. 数据错误:修复或移除(例如年龄为负数、时间戳在 1970 年)
  3. 真实极端值:保留它们,但考虑使用稳健统计量(中位数替代均值)
  4. 不同群体:将其分出来单独分析(例如企业客户 vs 中小企业客户)

报告你的处理方式:"我们排除了 47 条记录(0.3%),其交易金额超过 $50K,这些代表企业批量订单,已单独分析。"

时间序列异常检测

检测时间序列中的异常值:

  1. 计算期望值(移动平均或去年同期值)
  2. 计算与期望值的偏差
  3. 标记超过阈值(通常为残差的 2-3 个标准差)的偏差
  4. 区分点异常(单个异常值)和变化点(持续偏移)

假设检验基础

何时使用

当需要确定观察到的差异是真实存在的还是可能由随机因素导致时,使用假设检验。常见场景:

框架

  1. 零假设(H0):没有差异(默认假设)
  2. 备择假设(H1):存在差异
  3. 选择显著性水平(alpha):通常为 0.05(5% 的假阳性概率)
  4. 计算检验统计量和 p 值
  5. 解释:如果 p < alpha,拒绝 H0(存在真实差异的证据)

常见检验

场景 检验 何时使用
比较两个组均值 t 检验(独立样本) 正态数据,两组
比较两个组比例 z 比例检验 转化率、二元结果
比较配对测量 配对 t 检验 同一实体的前后对比
比较 3+ 组均值 方差分析(ANOVA) 多个细分或变体
非正态数据,两组 Mann-Whitney U 检验 偏斜指标、有序数据
类别间关联 卡方检验 两个分类变量

实际显著性与统计显著性

统计显著性意味着差异不太可能是由偶然因素导致的。

实际显著性意味着差异足够大,对业务决策有意义。

差异可能具有统计显著性但在实际上无意义(在大样本中常见)。始终报告:

样本量考虑

何时对统计结论保持谨慎

相关性不等于因果性

发现相关性时,明确考虑:

可以说:"使用功能 X 的用户留存率提高 30%" 没有更多证据不能说:"功能 X 导致留存率提高 30%"

多重比较问题

当你检验多个假设时,有些会偶然"显著":

辛普森悖论

聚合数据中的趋势在细分数据时可能反转:

幸存者偏差

你只能分析"幸存"到数据集中的实体:

生态学谬误

聚合趋势可能不适用于个体:

锚定于特定数字

警惕虚假精确: