一、時間序列規則
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預處理流程: