每张统计图都是一个时间序列,大多数误读都来自把趋势、星期规律和噪声混在一起。本文用四周的每日会话一步步演示:抹平一周内的周期看出趋势,量出星期几的规律,再抓住一次被周环比合计掩盖的单日埋点故障。之后介绍核心方法、预测基线和常见错误。
读完你会知道
- 判断变化之前,先把趋势、季节性和噪声拆开
- 和同一个星期几或同一季节比,而不是和相邻时段比
- 7 日移动平均能看出每日网站数据的趋势
- 周合计可能掩盖单日 20% 的下跌
- 先赢过季节性朴素预测,再相信模型
什么是时间序列分析?
时间序列分析(Time Series Analysis)是研究按固定间隔记录的数据的一套方法,比如每日会话、每周注册、每月收入,用来弄清它随时间怎么变化:长期方向、重复出现的规律、围绕规律的噪声,以及打破规律的异常点。同样的方法也用来预测接下来会怎样。
几乎每张统计图都是时间序列。扫一眼折线和真正分析它的区别,在于把这些成分拆开,这样才能分清是真变化,还是只是星期一。
时间序列的四个成分
| 成分 | 是什么 | 网站统计里的例子 |
|---|---|---|
| 趋势 | 长期向上或向下的走势 | 自然流量每月增长 2% |
| 季节性 | 按固定日历重复的规律 | 工作日比周末高;零售 12 月高峰 |
| 周期 | 更长、不规则的起伏 | 预算周期、宏观经济放缓 |
| 噪声(残差) | 剩下的随机波动 | 每天几个百分点的上下浮动 |
简单的模型是加法模型:数值 = 趋势 + 季节性 + 噪声。如果季节波动随水平一起变大(网站在增长,周末照样下降 10%),乘法模型更合适:数值 = 趋势 × 季节性 × 噪声。大多数流量数据更接近乘法模型。
| 成分 | 是什么 | 例子 |
|---|---|---|
| 趋势 | 长期方向 | 自然流量每月 +2% |
| 季节性 | 固定日历规律 | 工作日高于周末 |
| 周期 | 更长的不规则起伏 | 预算周期 |
| 噪声 | 随机波动 | 每天 ±3% 浮动 |
大多数网站流量更接近乘法模型:趋势 × 季节性 × 噪声。
计算示例:四周的每日会话
某 B2B 网站四周的每日会话数,周一到周日(示例数据):
| 周 | 周一 | 周二 | 周三 | 周四 | 周五 | 周六 | 周日 | 合计 |
|---|---|---|---|---|---|---|---|---|
| 1 | 1,083 | 1,129 | 1,115 | 1,084 | 962 | 859 | 914 | 7,146 |
| 2 | 1,131 | 1,132 | 1,146 | 1,080 | 1,020 | 872 | 951 | 7,332 |
| 3 | 1,191 | 1,234 | 1,143 | 1,129 | 1,022 | 887 | 974 | 7,580 |
| 4 | 1,196 | 1,237 | 889 | 1,166 | 1,075 | 942 | 1,024 | 7,529 |
第 1 步:去掉季节性,看趋势。 7 日移动平均抹平了一周内的规律:第 1 周末 1,021,第 2 周末 1,047,第 3 周末 1,083。流量在稳定增长,每周约 3%。
第 2 步:量出季节性。 用前三周每个星期几的平均值除以总平均值,得到星期指数:周一 1.08、周二 1.11、周三 1.08、周四 1.05、周五 0.95、周六 0.83、周日 0.90。周六通常比平均水平低 17%,周六下降不算新闻。
第 3 步:找出不合规律的点。 第 4 周的周三只有 889 次会话。前三个周三平均 1,135,波动只有 ±17 左右。即使算上增长,889 也比预期低 20% 以上,远在正常波动之外,是一个异常。这次的原因是:标签管理器的一次改动让定价页上的统计脚本消失了一天。
简单对比会怎么说: 第 4 周合计 7,529,第 3 周 7,580,只下降了 0.7%。一天 22% 的下跌藏在了周合计里。用同类比同类,同一个星期几对比同一个星期几,才能抓到它。
趋势(7 日均值)
1,021 → 1,083
▲ 6.1%
周六指数
0.83
第 4 周周三
889
▼ 比预期低 22%
每日会话 · 28 天
每日会话7 日移动平均核心方法
平滑
移动平均(每日网站数据用 7 日,每周数据用 4 周)可以去掉季节性和噪声,露出趋势。指数平滑给近期的点更高权重,反应更快。
季节对比
和上一个周期的同一时段比:上周同一天、去年同一周。同比和环比是最简单的形式,另见季节性。
分解
把序列拆成趋势、季节和残差三部分(比如用 STL 分解)。残差大的地方,就是还没被解释的事件所在。
自相关
今天的数和昨天的相关,也和上周二的相关。这违背了大多数基础统计检验要求的独立性,所以检验一项改动时,不要把 28 天当成 28 个独立样本。
预测
| 方法 | 思路 | 适合 |
|---|---|---|
| 季节性朴素预测 | 下周一 = 上周一 | 其他方法都必须超过的基线 |
| 移动平均 + 增长率 | 平滑水平 × 近期增长 × 星期指数 | 快速做计划 |
| 指数平滑(Holt-Winters) | 按权重更新水平、趋势和季节性 | 比较稳定的业务指标 |
| ARIMA / SARIMA | 显式建模自相关 | 前后依赖很强的序列 |
| 带日历特征的回归 | 把节假日、活动、星期几作为变量 | 已知驱动因素时,见回归分析 |
一定要拿预测和季节性朴素基线比。复杂模型赢不了「上周同一天」,就没有带来价值。
常见错误
- 比较的周期里星期几构成不同。 有五个周末的月份会比只有四个的看起来差。
- 忽略埋点变化。 新的同意横幅、脚本更新、机器人过滤会造成看起来像真实变化的台阶,要做标注。
- 过度解读单个点。 一次尖峰不是趋势,先和噪声水平比一比。
- 用直线拟合曲线。 增长往往会放缓,拿一个好季度的线性趋势外推会高估。
- 忘了时区和不完整的周期。 按报表时区,「今天」要到午夜才完整。
在 TapCub 里做时间序列分析
TapCub 的每张趋势图都可以和上一周期或去年同期按星期几对齐对比,并标注上线和埋点变化,见对比时间段和添加图表标注。指标监控里的异常规则会学习过去 28 天同一个星期几的均值和波动,数值落在区间之外就告警,和上面第 3 步的逻辑一样。需要更深入的建模,可以导出每日序列在笔记本里分析,见设置流量告警。
参考资料
- Hyndman, R. J. and Athanasopoulos, G. (2021). Forecasting: Principles and Practice, 3rd ed. OTexts.
- NIST/SEMATECH. e-Handbook: introduction to time series analysis.
- Cleveland, R. B. et al. (1990). STL: a seasonal-trend decomposition procedure based on Loess. Journal of Official Statistics, 6(1).
这篇文章对你有帮助吗?
我们会根据反馈修改和补充这篇内容。
提交没有成功,请稍后再试。
谢谢你的反馈,我们会据此改进这篇内容。你已经反馈过这篇了,谢谢。

