数据挖掘实践-资金流入流出预测
Task03:时间序列规则与baseline
一、时间序列规则
定义:
时间序列(或称动态数列)是指将同一统计指标的数值按其发生的时间先后顺序排列而成的数列。
简单统计量有:中位数、均值、临近数据。
基于周期因子的时间序列预测:
步骤一:
获得周期因子
方式1:除以周均值 ,然后按列取中位数
方式2:季节指数的计算方式;获得每日(工作日或周末)均值,再除以整体均值
步骤二:
预测
二、基于时间序列规则的资金流入流出预测
比赛成绩如图
更新于20200919:时间序列预测模型
1.时间序列分解
时间序列:将同一统计量的数值按其发生的时间先后顺序排列而成的数列。常用按时间顺序排列的一组随机变量X1,X2,X3…Xt,…表示一个随机事件的事件序列,简记为{Xt}。
时间序列的各种变化都可以归纳成四大类因素的综合影响:
- 长期趋势trend/Tt:导致序列出现明显的长期趋势
- 循环波动circle/Ct:导致序列出现周期性波动
- 季节性变化season/St:导致序列出现和季节变化相关的稳定的周期波动,可以认为是一种特殊的循环波动。
- 随机波动immediate/It:纯随机、与时间无关
可以采用加法结构和乘法结构 分解时间序列 :
- 加法模型:xt = Tt+ Ct + St + It
- 乘法模型:xt = Tt × Ct × St × It
- 加法结构和乘法结构混合分解:
xt = Base × (Cyclet + Residualt)
Base–待预测时段均相同
Cyclet–t时刻周期项
Residualt–t时刻剔除周期项后剩余的残差
STL:seasonal & trend decomposition using Loess
其中LOWESS是局部加权回归local weighted regression
STL是最常用的时间序列分解方法
将时间序列分解为周期项 + 趋势项 + 随机项
时间序列 | 趋势、周期 |
---|---|
水平型时间序列 | 无趋势、无周期 ,简单指数平滑 |
斜坡型时间序列 | 有趋势、无周期 ,Holt两参数指数平滑 |
含趋势、周期的时间序列 | 有趋势、有周期 ,Holt-winters三参数指数平滑 |
2.ARIMA模型
整合移动平均自回归模型Auto regressive integrated moving average
是时间序列预测分析方法。
(python: pip install statsmodels)
ARIMA(p,d,q)中,AR是“自回归”,p为自回归项数;MA为“滑动平均”,q为滑动平均项数,d为使之成为平稳序列所做的差分次数(阶数)。
ARIMA是在ARMA(p,q)基础上,使用差分法解决非平稳序列。ARIMA的模型假定与ARMA的假定一致。当差分阶数d为0时,ARIMA模型就等同于ARMA模型。
非平稳时间序列经过差分处理后可以转换为平稳时间序列,那称这样的时间序列为齐次非平稳时间序列,其中差分的次数就是齐次的阶。
时间序列的预处理包括两个方面的检验,平稳性检验和白噪声检验。
差分的次数并非越多越好,每一次差分运算,都会造成信息的损失,所以应当避免过分的差分,一般在应用中,差分的阶数不超过2.
ARIMA预处理流程:
平稳序列有两种: 严平稳、宽平稳。可以依据时序图观察序列是否平稳。也可以通过自相关系数图观察序列是否平稳。
白噪声检验也称为纯随机性检验, 当数据是纯随机数据时,再对数据进行分析就没有任何意义了, 所以拿到数据后最好对数据进行一个纯随机性检验.
Ljung-Box检验即LB检验,是时间序列分析中检验序列自相关性的方法。