时间序列的趋势分析

——数据的上下文1

solar-system   无论是网站分析工具、BI报表或者数据的报告,我们很难看到数据以孤立的点单独地出现,通常数据是以序列、分组等形式存在,理由其实很简单,我们没法从单一的数据中发现什么,用于分析的数据必须包含上下文(Context)。数据的上下文就像为每个指标设定了一个或者一些参考系,通过这些参照和比较的过程来分析数据的优劣,就像中学物理上的例子,如果我们不以地面作为参照物,我们无法区分火车是静止的还是行进的,朝北开还是朝南开。

  在实际看数据中,我们可能已经在不经意间使用数据的上下文了,趋势分析、比较分析、细分与分布等都是我们在为数据设置合适的参照环境。所以这边通过一个专题——数据的上下文,来总结和整理我们在日常的数据分析中可以使用的数据参考系,前面几篇主要是基于内部基准线(Internal Benchmark)的制定的,后面会涉及外部基准线(External Benchmark)的制定。今天这篇是第一篇,主要介绍基于时间序列的趋势分析,重提下同比和环比,之前在网站新老用户分析这篇文章,已经使用同比和环比举过简单应用的例子。

同比和环比的定义

  定义这个东西在这里还是再唠叨几句,因为不了解定义就无法应用,熟悉的朋友可以跳过。 ;-)

  同比:为了消除数据周期性波动的影响,将本周期内的数据与之前周期中相同时间点的数据进行比较。早期的应用是销售业等受季节等影响较严重,为了消除趋势分析中季节性的影响,引入了同比的概念,所以较多地就是当年的季度数据或者月数据与上一年度同期的比较,计算同比增长率。

  环比:反应的是数据连续变化的趋势,将本期的数据与上一周期的数据进行对比。最常见的是这个月的数据与上个月数据的比较,计算环比增长率,因为数据都是与之前最近一个周期的数据比较,所以是用于观察数据持续变化的情况。

  买二送一,再赠送一个概念——定基比(其实是百度百科里附带的 :-P ):将所有的数据都与某个基准线的数据进行对比。通常这个基准线是公司或者产品发展的一个里程碑或者重要数据点,将之后的数据与这个基准线进行比较,从而反映公司在跨越这个重要的是基点后的发展状况。

同比和环比的应用环境

  其实同比、环比没有严格的适用范围或者针对性的应用,一切需要分析在时间序列上的变化情况的数据或者指标都可以使用同比和环比。

  但是我的建议是为网站的目标指标建立同比和环比的数据上下文,如网站的收益、网站的活跃用户数、网站的关键动作数等,这类指标需要明确长期的增长趋势,同比和环比能够为网站整体运营的发展状况提供有力的参考。

  还有个建议就是不要被同比和环比最原始或者最普遍的应用所束缚住:同比就是今年每个月或每季度的数据与去年同期比,环比就是这个月的数据与上个月比。对于方法的应用需要根据实际的应用的环境,进行合理的变通,选择最合适的途径。所以同比和环比不一定以年为周期,也不一定是每月、季度为时间粒度的统计数据,我们可以根据需要选择任意合适的周期,比如你们公司的产品运营是以周、半月、甚至每年的特定几个月为周期循环变动,那完全可以将这些作为同比的周期。

  特别对于互联网这个瞬息万变的环境,常用的年与年之间的同比,以季度或月为粒度的统计可能不再合适,为了适应快速的变化,以月为周期、周为周期的同比,以天为粒度、小时为粒度的统计数据进行环比将变成常见的方式,因为要适应这种快速的变化,我们需要做出更迅速的决策和调整,当然数据要适应这种快速决策的需要。

应用实例

  同比和环比被广泛地应用于各个领域,在Google的图片中搜索同比和环比会有丰富的包含了同比环比的图表显示在你的眼前,所以这里只举个简单的例子:因为很多的互联网产品的数据变化情况会以“周”为周期进行波动(周末会出现明显的上升或者下降趋势),所以这里以一周的数据为例来看下同比和环比的展现效果。还是虚拟数据,为了展示上的需要而临时设定的:

周一 周二 周三 周四 周五 周六 周日
上周收益 113 134 123 145 137 196 187
本周收益 129 122 134 149 146 215 208
同比增长 14.16% -8.96% 8.94% 2.76% 6.57% 9.69% 11.23%
环比增长 -27.88% -5.43% 9.84% 11.19% -2.01% 47.26% -3.26%

time-series-trend-analysis

  从图中可以看出数据在一周中的变化趋势,周中和周末之间存在明显的差异,周末的收益会有明显的上涨,在使用同比的时候需要抓到这类数据的周期性的变化规律,让数据的对比能够更加有效地反映数据的变化。同时在Excel里面可以直接为一组基于时间序列的数据绘制趋势线,正如图中的虚线所示,本周收益在一周中的变化趋势就显得非常明显,这里用的是指数的拟合,Excel的趋势线提供了线性、指数、对数、幂等回归分析的方式,同时也包含多项式和移动平均等趋势分析的方法。

  最后看看我们经常在使用的网站分析工具里面有没有同比和环比的功能呢?这里以Google Analytics和百度统计为例截了两张图,首先看下百度统计登录进去后的网站概况:
Baidu-dashboard-compare

  百度统计默认就为我们提供了一个比较环境,上方表格中是今天与昨天的数据对比及变化情况,还提供了预测的功能;下方的折线图显示的是每小时数据的变化,提供前一天或者上周的同一天(百度可能已经意识到网站大部分会存在以周为变化周期的趋势,所以很多地方都提供了以周为单位的参考数据)的每个整点的数据对照,同时可以选择不同的时间区间和各类指标。再看看Google Analytics的Dashboard:
GA-dashboard-compare

  Google不像百度那样一进去就能看到对照数据,需要我们手工去选择,在时间区间的选择界面提供了“Compare to Past”的勾选按钮,如果默认是近一个月的数据,那么参照数据就是再往前推一个月的每日变化数据,Timeline的选择面板做得非常炫,可以自定义地选择任何有效的时间区间,当然也同样提供不同的参考指标,鼠标移到图中相应日期的点后会显示具体的数据及差异的大小。

  同比和环比是最简单直观的基于时间序列的趋势分析方法,通过观察关键指标的变化情况来洞察网站的发展和运营情况,同时衡量目标的实现程度。所以这篇文章的主题是使用趋势分析的方法来为网站的目标设定数据的上下文,下一篇将主要针对KPI指标进行数据上下文的选择和设定。

时间序列的趋势分析》上有 17 条评论

  1. yoyo

    GA里有提供一个用户基准化功能Benchmarking,当我选择我所在的行业类别进行对比的时候发现我各个指标的数据都比基准线数据差。应该表明我的网站在同行业同规模网站中处下游水平。但我总感觉数据有点不对,Travel sites of similar size 的Bounce Rate一直维持在35%左右,比我想像中低很多。我能想到的唯一解释是我属于电商网站,而GA的基准数据可能包括了很多资讯类网站。 博主有什么看法?谢谢

    回复
  2. joegh 文章作者

    @yoyo: 我不太清楚GA的Benchmarking的具体数据数据是怎么得到,网站的分类是如何进行的,按照我的理解,如果GA的Benchmarking的数据是全球的,那么中西方的用户在网站的使用习惯的差异,会导致数据上存在较大的差异,另外你说的Bounce Rate其实跟网站的Landing Page的设计很有关系,举个简单的例子:如果我的博客的最新文章的全文都显示在首页,跟目前只显示内容概要的这两种方式对Bounce Rate的影响绝对是显著的。

    回复
  3. Pingback 引用通告: 时间序列的趋势分析 ‹‹ 网客设计

  4. yuxiujian

    同比与环比的计算方法是什么?百度下的结果是(本期-上期)/上期,但感觉joegh是(本期-上期)/本期 这么计算的吧 是我错了还是?

    回复
  5. joegh 文章作者

    @yuxiujian: 你好,感谢你的提醒,确实应该是“(本期-上期)/上期”,发现我这里的计算是除本期了,不好意思。

    回复
  6. Pingback 引用通告: 行走在互联网路上——UE之旅 » 指标的移动平均

陈刚 进行回复 取消回复

电子邮件地址不会被公开。 必填项已用 * 标注

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>