应用时间序列法预测收入

作者:黎湘艳 数据驱动游戏 2020-01-16

每年快到年末的时候,我都会做一件事情:预估新的一年的数据,包含收入、人数、费用、利润等等。

针对不同的游戏、不同的用户,不同的历史数据规律,所采取的预估方法各不相同。本篇跟大家分享其中一种方法:用时间序列方法预估未来收入。

一、时间序列定义及特点

时间序列简单的说就是各时间点上形成的数值序列,时间序列分析就是通过观察历史数据预测未来的值。

时间序列中的时间因素,可以是小时、天、周、月、年,或任何固定的时间间隔,依据具体的业务场景而定。

时间序列数据用于描述现象随时间发展变化的特征,一般地,时间序列预测法具有如下的三个基本特点:

(1)假设事物发展趋势会延伸到未来;

(2)预测所依据的数据具有不规则性;

(3)不考虑事物发展之间的因果关系;

二、时间序列预测步骤

时间序列含有不同的成分,如趋势、季节性、周期性和随机性等。对于一个具体的时间序列,它可能含有上述中的一种成分,也可能同时含有几种成分,含有不同成分的时间序列所用的预测方法是不同的。预测步骤:

第一步:确定时间序列所包含的成分,确定时间序列的类型。

第二步:找出适合此类时间序列的预测方法。

第三步:对可能的预测方法进行评估,以确定最佳预测方案。

第四步:利用最佳预测方案进行预测。

三、实例

R语言、python、spss、EXCEL均能做时间序列分析,本篇将介绍常用的R语言时间序列ARIMA模型进行预测,具体步骤如下:

1、安装forecast包

forecast包是一个封装的ARIMA统计软件包,在默认情况下,R没有预装forecast包,因此需要先安装该包

install.packages("forecast")

2、导入forecast包

library(forecast)

3、导入原始数据

此处虚拟了一组收入数据,从2017年开始以月为单位的收入数据,共有36条。


4、识别模型

4.1查看趋势图



4.2绘制时间序列图

由上图可见,该序列还不平稳,先做一次Log平滑,再做一次二阶差分:



4.3使用decompose函数对数据进行分解

可分成季节部分、趋势部分、随机部分三种



4.4 参数估计

auto.arima提供的最佳模型为ARIMA(0,1,1)(0,0,1)[12],我们可以同时测试两个模型,看看哪个更适合。



说明:在对该序列进行差分前,此处省略了查看ACF和PACF。

5、预测2020年每月收入

5.1根据auto.arima提供的最佳模型,选择ARIMA(0,1,1)来预估




5.2根据auto.arima提供的最佳模型,选择ARIMA(0,0,1)来预估



显然,使用第二个模型参数预估的结果不符合整体的规律,因此将第一个预测结果作为本次的预估收入,即下图的蓝色曲线为预测结果。


四、总结:

时间序列预测法其实是一种回归预测方法,属于定量预测。

基本原理是:一方面承认事物发展的延续性,运用过去时间序列的数据进行统计分析,推测出事物的发展趋势;另一方面充分考虑到偶然因素影响而产生的随机性,为了消除随机波动的影响,利用历史数据进行统计分析,并对数据进行适当处理,进行趋势预测。


作者:黎湘艳  
来源:数据驱动游戏
原地址:https://mp.weixin.qq.com/s/l9J3VitvfwdTMpRXxx0X4Q

最新评论
暂无评论
参与评论

商务合作 查看更多

编辑推荐 查看更多