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

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

1、场景

很多数据都具有周期性,比如客流量、支付

需要确定周期长短, 比如一周,一个月,结合STL分解 观察周期变化

2、缺点

   没有考虑到节假日、突发事件情况

3、STL分解介绍

将时序图拆解为Trend+Sensoinnal+Residual

4、时间序列规则

选择特征,可以用简单统计量来作为特征,从中提取出有用的信息

a、中位数、均值

b、临近数据,距离待测数据越近的数据对齐影响越大

二、预测步骤

假设给任务是根据前三周的数据预测第四周每天的客流量

基于周期因子的时间序列预测_第1张图片

Step1,获得周期因子

获得星期几的均值,再除以整体均值

基于周期因子的时间序列预测_第2张图片

Step2,计算base

Step3,使用base*周期因子进行预测

假如base=100,可以得到第四周的客流量

基于周期因子的时间序列预测_第3张图片

如果预测下个月每天的情况

如果想预测下个月每天的流量情况,可以基于每个月的规则

(1-30号平均流量)* 周期因子

Step1,计算周期因子(weekday)

Step2,计算每日(1-30号)均值,

Step3,统计星期几(weekday)在每日(day)出现频次

Step4,基于周期因子获得加权值,得到每日的base(去掉周期因子的影响)

Step5,根据每日base和周期因子进行预测

三、特殊日期处理

清明节,2014年4月5-7日 五一,2014年5月1-3日 六一,2014年5月31-6月2日 中秋节:2014年9月6-8日 国庆节:2014年10月1-7日

节假日工具包chinese_calendar

pip install chinesecalendar

import datetime
from chinese_calendar import is_workday, is_holiday
temp  =  datetime.date(2021,1,10)
print(is_workday(temp))
print(is_holiday(temp))

异常情况修正

1)不是真的工作日 => 假日

2)不是真的假日 => 工作日True

你可能感兴趣的:(BI商业智能)