每年快到年末的时候,我都会做一件事情:预估新的一年的数据,包含收入、人数、费用、利润等等。
针对不同的游戏、不同的用户,不同的历史数据规律,所采取的预估方法各不相同。本篇跟大家分享其中一种方法:用时间序列方法预估未来收入。
一、时间序列定义及特点
时间序列简单的说就是各时间点上形成的数值序列,时间序列分析就是通过观察历史数据预测未来的值。
时间序列中的时间因素,可以是小时、天、周、月、年,或任何固定的时间间隔,依据具体的业务场景而定。
时间序列数据用于描述现象随时间发展变化的特征,一般地,时间序列预测法具有如下的三个基本特点:
(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