文档
时间序列分解:趋势、每周规律与噪声
将每日点击量或展示量拆分为趋势、星期规律和残差,标注趋势方向,并标记模型无法解释的异常日期。
资源 → 高级 → 时间序列分解运行分析阅读需 1 分钟
时间序列分解会把你的每日点击量或展示量拆成三部分:平滑后的趋势、按星期重复出现的规律,以及残差(即前两者之外剩余的部分)。它会将趋势标记为增长、下降或平稳,衡量一周中表现最强与最弱的两天之间的差距,并标记残差异常大的日期。借助它,你可以区分真正的方向性变化和每周的正常起伏。
序列是如何拆分的
- 以居中的 7 日移动平均作为趋势的初步估计。
- 将每一天与该平均值的差距按星期分组。每个星期几的平均差距经过平移,使七个值之和为零,即成为该星期几的季节效应。
- 从原始序列中扣除季节效应,得到去季节化序列,再用连续两次的 7 日平均对其平滑。你看到的更平滑的曲线就是趋势。
- 残差等于原始值减去趋势和季节效应。如果某一天的残差偏离零超过两个标准差(基于全部残差计算),该日就会被标记为异常值。
这是一种加法分解:星期效应表示为点击量或展示量的绝对数值,而不是百分比。页面标题称之为 STL,但实际方法是经典的移动平均分解,而不是 STL 所用的局部回归。Forecasting: Principles and Practice 介绍了经典分解,以及它与 STL 的区别。
趋势是如何标记的
系统会对趋势拟合一条直线,并将其斜率表示为每天相对于趋势平均水平的百分比:
| 每日斜率 | 标签 | 30 天累计 |
|---|---|---|
| +0.25% 或更高 | 增长 | 约 +7.5% 或更高 |
| 介于 −0.25% 与 +0.25% 之间 | 平稳 | 约 ±7.5% 以内 |
| −0.25% 或更低 | 下降 | 约下降 7.5% 或更多 |
卡片中会显示该标签,以及趋势的起始值和结束值、每日变化及其 30 天换算值、从第一天到最后一天的窗口内趋势变化、每周波动幅度(最强的星期效应减去最弱的星期效应,并标明这两天是星期几),以及残差异常值的数量和残差标准差。
如何阅读图表
- 原始值与趋势:每日数值,以及叠加在其上的趋势线。
- 每周季节分量:每个星期几相对于趋势的平均偏离。高于零的柱形表示流量较高的日子。
- 去季节化序列:去除星期效应后的数据,更便于观察周与周之间的变化。
- 残差:趋势和星期规律都无法解释的部分,图中以虚线标出 ±2 个标准差。
每日分量表按日列出星期、原始值、趋势、季节效应、残差、残差 z 值以及异常标记。残差异常值列出被标记的日期及其实际值与预期值。运行之后,在指标中切换点击量和展示量,系统会在浏览器中重新进行分解。
它的假设与盲区
- 固定大小的固定每周规律。如果窗口期内流量翻了一倍,以点击量衡量的星期波动幅度对末期来说偏小,对初期来说则偏大。
- 没有年度周期。一次运行至少覆盖 90 天(较短的范围会向前扩展,如结果上方的说明所示),这对季节建模来说太短。12 月的低谷或夏季的淡季都会表现为趋势。
- 两端不够稳定。移动平均在序列的起点和终点附近会收缩,因此最近一周的趋势依据的天数更少,并会随新数据的到来而变化。
- 异常值会拉动平均值。一个极端日期会使其所在星期几的平均值和残差离散度发生偏移;异常检测采用抗此类干扰的稳健统计方法。
- 缺失的日期按零计算,因此上线时间短于窗口期的资源会在开头呈现为一段平坦的数据。
如何运用分析结果
异常值是需要你解释的日期:可能是一次发布、一次故障、一次新闻报道,或一次 Google 排名更新。添加一条注释,此后仪表板的趋势图上就会显示该日期及其原因。若要确定整体水平究竟是在何时发生变化,可对同一时间范围运行变点检测。