一、时间序列规则
1.为什么要重视规则
很多比赛都可基于对背景的理解和数据分析获得有用规则,通过“if A then B“等方式设计效果良好的基准方案
2.中位数、临近数据等简单统计量,可作为特征
1)中位数:稳健
2)均值:当分布较符合正态分布时
3)临近数据:临待预测数据较近的数据
3.基于周期因子的时间序列预测
支付数据、客流量数据、交通数据等时间序列通常都具有明显的周期性
•周期性是核心
•确定周期(一周、一月)
•确定组成一个周期的元素(周1-周日、1号-31号)
•结合STL分解观察周期变化
缺点:不考虑节假日、突发事件等
例:给定如下数据,预测第4周每天的客流量(以星期为周期)
Step1获得周期因子
•两种方式
•方式(1):除以周均值 ,然后按列取中位数
•方式(2):季节指数的计算方式;获得每日(工作日或周末)均值,再除以整体均值
Step2预测
•乘以base
•如何确定base
直接用最后一周的平均客流(建议去周期后再平均)
二、时间序列预测模型
1.时间序列分解
1)概念:时间序列是指将同一统计量的数值按其发生的时间先后顺序排列而成的数列。常用按时间顺序排列的一组随机变量X_1,X_2,⋯X_t,⋯表示一个随机事件的时间序列,简记为 {X_t}
2)特征:时间序列的各种变化都可以归纳成四大类因素的综合影响
1.长期趋势(trend):会导致序列出现明显的长期趋势
2.循环波动(circle):会导致序列呈现出周期性波动
3.季节性变化(season): 会导致序列呈现出和季节变化相关的稳定的周期波动.
4.随机波动(immediate): 纯随机、与时间无关
其中季节变动视为一种特殊的循环波动
3)分解:可采用加法结构或乘法结构分解时间序列
(1)加法模型:
x_t=T_t+C_t+S_t+I_t
(2)乘法模型:
x_t=T_t×C_t×S_t×I_t
T_t—趋势项
C_t—周期项
S_t—季节项
I_t—随机项
还有加法结构与乘法结构的混合分解方式
IJCAI 2017季军方案
Base——待预测时段均相同
〖Cycle〗_t——t 时刻周期项(可采用《03.时间序列规则与baseline》中的周期因子获得)
〖Residaul〗_t——t 时刻剔除周期项后剩余的残差
在真实问题中,趋势项常常不明显,可采用这种方式获得残差,利用天气等协变量对残差建模
4.STL(Seasonal and Trend decompositionusing Loess )分解。最常用的分解方法
将时间序列分解为周期项(季节项)C_t+趋势项T_t+随机项I_t。
STL(Seasonal and Trend decompositionusing Loess )分解可将时间序列分为三类
1.没有趋势、也没有周期的序列(水平型时间序列)
2.只有趋势、没有周期的序列(斜坡型时间序列;可分段)
3.有趋势、有周期的序列(含趋势和周期的时间序列)
可采用指数平滑预测各项,水平型时间序列:简单指数平滑,斜坡型时间序列:Holt两参数指数平滑,含趋势和周期的时间序列:Holt-winters三参数指数平滑。
1)简单指数平滑(单参数指数平滑)
假定:在较短时间间隔内,序列取值是较稳定模型为x ̂_(t+1)=α×x_t+〖(1-α)×x ̂〗_t
0<α<1。x_t为t时刻真实值,x ̂_t为t时刻平滑值,x ̂_1通常设为x_1
2)Holt两参数指数平滑
假定序列有一个比较固定的线性趋势,模型为[if !msEquation]x ̂_(t+1)=α〖×x〗_t+〖(1-α)×(〗_ x_(t-1)+r_(t-1))[endif], [if !msEquation]r ̂_t=β×(x ̂_(t+1)-x ̂_t)+〖(1-β)× 〗_ r_(t-1)[endif]
0<α<1, 0<β<1,r_1的设置有多种方式r_1=x_2-x_1,r_1=[(x_2-x_1)+(x_3-x_2
)+(x_4-x_3)]/3,[if !msEquation]r_1=(x_n-x_1)/(n-1)[endif]
3)Holt三参数指数平滑
假定序列既有趋势、又含周期; 若没有趋势,则r_t趋向0。模型为 [if !msEquation]x ̂_(t+1)=α〖×(x〗_t-s_(t-π))+〖(1-α)×(〗_ x_(t-1)+r_(t-1))[endif],[if !msEquation]r ̂_t=β×(x ̂_(t+1)-x ̂_(t-π))+〖(1-β)× 〗_ r_(t-1)[endif],s ̂_t=γ〖×(x〗_t-x ̂_(t+1))+〖(1-γ)×s_(t-π)〗_s_t为周期项,π为周期长度,周期项初始可设置为0。
2.ARIMA模型
Auto Regressive Integrated Moving,Average model(整合移动平均自回归模型)ARIMA(p,d,q)在ARMA模型的基础上使用差分法解决非平稳序列"Φ(B)",∇^d x_t=Θ(B)ε_t,B 为延迟算子,x_(t-1)= x_t×B 。∇^d为差分多项式 ∇^d=〖(1-B)〗^d,"Φ(B)"为自回归多项式"Φ(B)=1-",φ_1 B-⋯-φ_p B^p,Θ(B)为滑动平均多项式Θ(B)","="1-" θ_1 B-⋯-θ_q B^q,模型假定与ARMA模型一致。 ARMA(p,q)对平稳序列建模y_t=u+φ_1 y_(t-1)+φ_2 y_(t-2)+⋯+φ_p y_(t-p)+ε_t+θ_1 ε_(t-1)+θ_2 ε_(t-2)+⋯+θ_q ε_(t-q),u 、φ_i、θ_i都是常数,ε_(t-1)是t-1时刻的残差,〖E(ε〗_t)=0,Var(ε_t )=〖σ_ε〗^2,这个假定保证了残差序列零均值等方差,E(ε_t ε_s)=0,s≠t这个假定保证了残差序列彼此不相关,E(x_t ε_s)=0,s≠t 这个假定表明了不同时刻的序列值与残差不相关。
ARIMA预处理流程: