(数据挖掘)基于sarimax的时间序列预测问题

一.问题背景。

题目链接
企业外部环境不稳定,供应链问题面临较多难题。现在给定数据集,包括不同地区,各个时间,销售价格和需求量的情况。
让我们去预测未来几个月的需求量的情况。
第一问:
(1) 产品的不同价格对需求量的影响;

(2) 产品所在区域对需求量的影响,以及不同区域的产品需求量有何特性;

(3) 不同销售方式(线上和线下)的产品需求量的特性;

(4) 不同品类之间的产品需求量有何不同点和共同点;

(5) 不同时间段(例如月头、月中、月末等)产品需求量有何特性;

(6) 节假日对产品需求量的影响;

(7) 促销(如618、双十一等)对产品需求量的影响;

(8) 季节因素对产品需求量的影响。
第二问:
对附件预测数据(predict_sku1.csv)中给出的产品,预测未来3月(即2019年1月、2月、3月)的月需求量。
并分别按天、周、月的时间粒度进行预测,试分析不同的预测粒度对预测精度会产生什么样的影响。

二.解题。

直接说一下建模最重要的部分。
首先这是一个时间序列问题,按照题目要求,分为日粒度,周粒度和月粒度分别进行分析,所以分别先对日周月进行预处理。

预处理和模型介绍

包括特殊日期对需求量的影响,所以直接将节假日和促销节给剔除掉。
第一问分析,季节对产品的影响,发现季节它是呈周期性的规律变化的,所以是一个季节性时间序列问题,那么我们模型就采用统计学上的sarimax算法,如果不是周期性的就采用arima算法。
arima就是arma算法中最经典的一种,

开始建模

对sarimax算法进行建模的要保证两个条件。
1.这个时间序列是一个平稳序列。
均值没有系统的变化,方差没有系统变化,那么就说明是一个平稳的,才有规律可言,预测出来的结果才有意义。
2.这个时间序列是一个非白噪声序列。
非白噪声就是纯随机序列,各序列之间没有关系,没有记忆。满足这两个条件分析才有价值。
如果不满足的话,就是进行一阶二阶差分,让它满足这两个条件,也就相当于提取出了序列的平稳且随机的数据。
(细节就是,adf检验来检验平稳性)
模型训练过程中,就是pdq这三个参数,
p是季节自回归的阶数
d季节差分的次数
q是季节移动平均的阶数
一般不会超过3.
训练出最好的pdq。得到模型。

后处理

最后做一个残差检验。
因为,我们对数据是假设他是满足正太分布的,做这个东西就保证我们拟合是正确的。

最后先把泰迪杯的论文,数据留在桌面吧~到时候复盘。

作者:十八闲客原文地址:https://segmentfault.com/a/1190000043745375

%s 个评论

要回复文章请先登录注册