(十二)时间序列分析
此部分内容来自对《Python数据分析与数据化运营》4.6节 异常检测 的读书笔记。
时间序列是用来研究数据随时间变化趋势而变化的一类算法,它是一种常用的预测性分析方法。它的基本出发点是事物的发展都具有连续性,都是按照它本身固有的规律进行的。在一定条件下,只有规律赖以发生的条件不产生质的变化,则事物在未来的基本发展趋势仍然会延续下去。
时间序列的算法包括移动平均(MA)、指数平滑(ES)、差分自回归移动平均模型(ARIMA)三大主要类别。
13.1 如果有自变量,为什么还要使用时间序列
时间序列通常用于在没有自变量可用的条件下做预测性分析,但在某些场景下,即使有自变量仍然需要用到时间序列。下面以一个案例来说明。
假设要预测地区用电量,有三份数据可用,一份是地区每5分钟一个点的量测值数据,一份是该地区每隔1小时的天气数据,另外还有季节性数据例如节假日、工作休息日等。
表面上看,可以将天气和季节性数据作为自变量、将用电量数据作为因变量建立回归模型,但从本质上考虑,地区的用电情况虽然会受到天气和季节性变化的影响,但这种影响对整个地区的用电情况非常小。回归模型很可能无法满足用户预测的需求。
经过分析与讨论,我们认为用电量趋势中一定会存在随着时间变化而变化的隐形规律,而天气和季节性因素则可以作为外部影响因素对结果加以调整。基于这样的假设,使用ARIMA+SVR结合起来做用电量预测,先通过ARIMA得到下一个时间点t的预测用电量值、预测上下限、预测样本量;然后将这三个特征,再加上天气和季节性因素等作为输入变量,来预测t时刻的真实用电量。结果证明,这种方法比任何单独使用回归和时间序列得到的预测结果更符合实际情况。
在实际运营分析中,可能也存在类似的场景:在要分析的主题中无法确定主要变量因素,或即使确定了主要变量但是无法获得其数据,那么可以采用这种方法实现。
13.2 时间序列不适合商业环境复杂的企业
在国内变化多端的商业环境中,很多因素都会影响企业的运营,而这些因素中的大多数都无法通过时间性规律反映出来,因此时间序列很难在这样的场景下真正发挥效果。常见的对时间序列影响较大的因素包括:
- 融资、并购、收购:当新的资源进入企业之后,原来的企业发展模式都会面临重构。
- 人工造势:很多行业巨擘都有造势的能力,如天猫双11、京东618等。
- 恶意商业活动:当企业被某些恶意商业活动攻击时,会产生很多无法预知的信息,例如恶意流量、黄牛订单、活动刷单、内部订单等。
- 广告活动:广告活动对流量和销售的影响几乎是决定性的,有关用户、销售、流量等方面的分析跟时间规律几乎没有关系,只关乎有多少广告费用。
- 促销活动
- 人为因素
- 系统问题
- 竞争对手影响
- 宏观政策影响
- 企业经营决策的转变
因此,实际运营分析中,只使用时间序列做预测性的分析场景相对较少。