应用统计方法,包括描述性统计、趋势分析、异常检测和假设检验。用于分析分布、检验显著性、检测异常、计算相关性,或解读统计结果时触发。触发词:统计分析、数据统计
描述性统计、趋势分析、异常检测、假设检验,以及何时对统计结论保持谨慎的指导。
根据数据选择合适的集中趋势度量:
| 情况 | 使用 | 原因 |
|---|---|---|
| 对称分布,无异常值 | 均值 | 最有效的估计量 |
| 偏斜分布 | 中位数 | 对异常值具有鲁棒性 |
| 分类或有序数据 | 众数 | 非数值数据的唯一选项 |
| 高度偏斜且有异常值(如每用户营收) | 中位数 + 均值 | 同时报告;两者差距反映偏斜程度 |
业务指标务必同时报告均值和中位数。 若两者差异显著,数据存在偏斜,单独使用均值会产生误导。
报告关键分位数,比单纯使用均值讲述更丰富的故事:
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()
同比/环比对比:
增长率:
简单增长率:(当期 - 上期)/ 上期
CAGR:(终值 / 初值)^ (1 / 年数)- 1
对数增长:ln(当期 / 上期)—— 对波动较大的序列更合适
检查周期性规律:
对于业务分析人员(非数据科学家),使用直观的方法:
始终传达不确定性。 提供区间而非点估计:
何时升级到数据科学家:非线性趋势、多重季节性、外部因素(营销费用、节假日),或当预测准确度对资源分配至关重要时。
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))]
不要自动删除异常值,而是:
说明你的做法:"我们排除了 47 条记录(0.3%),这些交易金额超过 5万 元,代表独立分析的大宗企业订单。"
检测时间序列中的异常值:
当需要判断观察到的差异是否可能真实存在或只是随机波动时,使用假设检验。常见场景:
| 场景 | 检验方法 | 适用时机 |
|---|---|---|
| 比较两组均值 | 独立样本 t 检验 | 正态数据,两组 |
| 比较两组比例 | 比例 z 检验 | 转化率、二元结果 |
| 比较配对测量 | 配对 t 检验 | 同一实体的前后对比 |
| 比较三组以上均值 | 方差分析(ANOVA) | 多个细分或变体 |
| 非正态数据,两组 | Mann-Whitney U 检验 | 偏斜指标、有序数据 |
| 类别变量之间的关联 | 卡方检验 | 两个分类变量 |
统计显著性意味着差异不太可能由随机因素造成。
实际显著性意味着差异足够大,对业务决策有意义。
在大样本情况下,差异可以在统计上显著但在实践中毫无意义。始终报告:
发现相关性时,明确考虑:
可以说的:"使用功能X的用户留存率高30%" 在没有更多证据的情况下不能说的:"功能X导致了30%更高的留存率"
当测试许多假设时,某些会因偶然因素而"显著":
汇总数据中的趋势在数据分细分后可能反转:
你只能分析"幸存"进入数据集的实体:
群体趋势不一定适用于个体:
警惕虚假精确: