Task02 时间序列规则

1 时间序列规则

1.1 为什么要重视规则

很多比赛都可基于对背景的理解和数据分析获得有用规则,通过“ if A then B等方式设计基准方案。
在企业、公司里也常采用基于规则的方案。
对于本次赛题,我们需要从过去的数据预测未来的数据,从预测的角度说,周期性是核心。

1.2 基于周期因子的时间序列预测

假设给定下面的数据,任务是预测第四周每天的客流量。

.周一周二周三周四周五周六周日周均值
第一周20107050250200100100
第二周261866501801408080
第三周1586760270160120100

明显能看到周一到周日的周期波动。预测的核心任务就是尽可能准确的提取这种周期。

1.2.1 step1 获得周期因子

方式(1)除以周均值,按列取中位数

.周一周二周三周四周五周六周日
第一周0.20.10.70.52.521
第二周0.3250.2250.8250.6252.251.751
第三周0.150.080.670.62.71.61.2
中位数0.20.10.70.62.51.751

方式(2)季节指数的计算方式;获得每日均值 ,再除以整体均值

.周一周二周三周四周五周六周日
第一周20107050250200100
第二周2618665018014080
第三周1586760270160120
均值20.331267.6753.33233.33166.67100
因子0.220.130.730.572.501.791.07

1.2.2 预测

做预测时,只要将周期因子,乘以一个base,就可以做下一周的预测。
比如取最后一周的平均客流量100作为base,那么我们直接乘上周期因子,就得到下一周的预测:

.周一周二周三周四周五周六周日
中位数0.20.10.70.62.51.751
预测 (base=100)20107060250175100

从周期性看来,最后三天的值都偏大,这样会导致我们平均出来的base也是偏大的。需要去掉周期性因素后,再取平均,也就是去除趋势的影响,让结果更具说服力。具体做法,就是用客流量除以周期因子。

.周一周二周三周四周五周六周日
第三周1586760270160120
中位数0.20.10.70.62.51.751
去周期以后的客流量758095.710010891.4120

此外,直接用最后一周的平均客流量作为base并不一定是最好的方法。也许最后三天或最后五天的均值能更好的反映最新的情况。具体取多少天,可以通过测试集的表现来确定。

1.3 如何预测下个月每一天的情况

资金流入出预测比赛的任务是预测下个月每一天的情况,因此需要提取以月为周期的因子,做法可以分为以下几个步骤:
(1)获得每日(1-31号)均值
(2)统计每日为周一到周日的频次

在这里插入图片描述
(3)基于星期后期因子获得加权均值
在这里插入图片描述
在这里插入图片描述
(4)根据因子和每日均值预测

2 基于时间序列规则的资金流入流出预测

2.1 以星期为周期的中位数预测

使用了一个简单的实例讲解如何预测。
(1)设置训练集和测试集
训练集时段设为2014-03-31(周一)到2014-08-03(周日)
测试集时段为2014-08-04到2014-08-31
(2)按星期重新组织申购总额与赎回总额
格式如下:
在这里插入图片描述
(3)提取中位数,并做预测
提取中位数使用median()方法

df_pruchase.median()

在这里插入图片描述

然后按照上述两种方式(1.2.1)提取周期因子

2.2 效果对比

应用Task01中的评价指标,如MAPE
平均绝对百分比误差(Mean Absolute Percentage Error)。
在这里插入图片描述
关于节假日,交易量可能偏高或偏低,时间序列规则没有考虑节假日,需要对节日以及节日前后的预测结果修正。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值