时间序列预测(下)
總第219篇/張俊紅
前面兩篇給大家介紹了幾種對時間序列直接的預測方法,這一篇給大家講講如何對時間序列進行分解,并根據分解法對數據進行預測。
要對一個指標進行預測,首先得知道影響這個指標的因素都有哪些。假如,現在領導讓你預估下個月的銷量情況,這個時候你會從哪些角度進行考慮呢?也就是什么因素會影響下個月的銷量呢?
正常情況下,第一個需要考慮的因素就是今年比往年整體銷量的增長情況是什么樣子的,我們把這個因素稱為長期趨勢;第二個因素呢就是下個月是一年中的淡季還是旺季,一般業務都是會有淡旺季之分的,我們把這個因素稱為季節因素;與淡旺季相類似還有一個因素是循環因素,淡旺季是針對一年內的數據而言的,而循環因素是針對不同年份之間的,比如股市的熊市和牛市周期;前面這三個都是已知的一些因素,實際中總是會有一些其他我們所不知道的因素,但是又確實影響著指標的實際情況的,我們把這種因素稱為不規則因素。
綜上,一個時間序列可以分為:長期趨勢(T)、季節因素(S)、循環因素(C)、不規則因素(I)四部分。
那么我們應該如何把這四個因素組合起來呢?有兩種組合方式:
加法模型:Y =?T?+?S?+?C?+?I 乘法模型:Y =?T?*?S?*?C?*?I如果各個因素之間對Y值的影響是相互獨立的,那么就用加法模型,反之則需要使用乘法模型。
接下來我們看一下這幾個因素分別如何求取:
1.首先我們可以通過移動平均的方法求出TC值,即長期趨勢和循環因素兩部分;
2.對TC值利用方程(線性、二次項、指數、對數、多項式等)進行擬合,得到的擬合值就是T;
3.利用TC值除T值就可得到循環分量C值;
4.用序列值Y除TC值,即可得到SI,即季節因素+不規則因素
5.求取過去幾年相同季節的平均數,再計算全季總平均數,然后用各季節平均數去除全季總平均數,得到的值就是各季節指數,需要保證各季節指數之和等于4,如果不為4,則需要調整。最后用SI值除S值即可得到I值。
在實際應用中上面的幾個因素不一定同時存在,需要根據實際情況來進行判斷。
以上是關于時間序列各因素的一個拆解,接下來給大家一個舉個例子:
下表為2015年-2019年各個季度的GDP值,這是一個完整的時間序列,我們接下來就看下如何拆解這個時間序列中的各個因素。
先來畫個趨勢圖,看看整體趨勢情況:
先進行第一步,求取移動平均值,因為我們的數據有嚴格的季節性,所以選取4期移動平均,關于移動平均的方法在前面講過,這里就不重復了。
第二步根據求出來的移動平均值,擬合回歸方程,因為看趨勢像線性趨勢,所以直接選擇線性方程進行擬合,結果如下:
第三步利用Y值除移動平均TC值即可得到SI值。
第四步求取季節因素S值,我們先對季節因素做個圖:
可以看到每年的第一季度到第四季度都是穩定上升,接下來求取下具體的季節因素大小,其實就是每個季節的在全年中的一個占比情況。
第五步用SI值除S值,即可得到I值。
最后整體的結果如下:
我們并對2020年各個季度的GDP做了一個預測,即下圖中紅線部分,每個季度的預測值等于該季度對應的TSC,因為每個值對應的I不相同,所以就沒放進來,當然也可以對不同季度的I值取均值放進來。
以上就是關于時間序列預測的下部分。為了理解更加深刻,大家一定要自己跟著過程計算一遍。
總結
- 上一篇: 时间序列预测(中)
- 下一篇: 基于业务解释的特征重要性计算