用數據預測未來:時間序列分析
對于本文內容,小編只知道作者介紹了一種用數據預測未來的方法——時間序列分析?!?,內容灰?;页;页X,各位看官enjoy~
應用背景:
通過分析序列進行合理預測,做到提前掌握未來的發展趨勢,為業務決策提供依據,這也是決策科學化的前提。
時間序列分析:
時間序列就是按時間順序排列的一組數據序列。
時間序列分析就是發現這組數據的變動規律并用于預測的統計技術。
分析工具:
SPSS(數據分析的重量級應用,與SAS二選一)
實踐案例:通過歷史數據預測未來數據,所涉及的都是最簡單的實踐,拋磚引玉,重在方法,不論多復雜的數據,方法是一樣的。
如已知前幾年每月的銷售量,預測未來的銷售量。
一、時間序列分析簡介
時間序列分析有三個基本特點:
- 假設事物發展趨勢會延伸到未來
- 預測所依據的數據具有不規則性
- 不考慮事物發展之間的因果關系
并不是所有的時間序列都一定包含四種因素,如以年為單位的詩句就可能不包含季節變動因素。
四種因素通常有兩種組合方式:
- 四種因素相互獨立,即時間序列是四種因素直接疊加而成的,可用加法模型表示:?Y=T+S+C+I
- 四種因素相互影響。即時間序列是四種因素相互綜合的結果,可用乘法模型表示:Y=T*S*C*I
其中,原始時間序列值和長期趨勢可用絕對數表示;季節變動、循環變動、不規則變動可用相對數(變動百分比)表示。
二、季節分解法
當我們對一個時間序列進行預測時,應該考慮將上述四種因素從時間序列中分解出來。
為什么要分解這四種因素?
- 分解之后,能夠克服其他因素的影響,僅僅考量一種因素對時間序列的影響。
- 分解之后,也可以分析他們之間的相互作用,以及他們對時間序列的綜合影響。
- 當去掉這些因素后,就可以更好的進行時間序列之間的比較,從而更加客觀的反映事物變化發展規律。
- 分解之后,序列可以用來建立回歸模型,從而提高預測精度。
所有的時間序列都要分解這四種因素嗎?
通常情況下,我們考慮進行季節因素的分解,也就是將季節變動因素從原時間序列中去除,并生成由剩余三種因素構成的序列來滿足后續分析需求。
為什么只進行季節因素的分解?
- 時間序列中的長期趨勢反映了事物發展規律,是重點研究的對象;
- 循環變動由于周期長,可以看做是長期趨勢的反映;
- 不規則變動由于不容易測量,通常也不單獨分析。
- 季節變動有時會讓預測模型誤判其為不規則變動,從而降低模型的預測精度
綜上所述:當一個時間序列具有季節變動特征時,在預測值錢會先將季節因素進行分解。
步驟:
- 定義日期標示變量:即先將序列的時間定義好,才能分析其時間特征。
- 了解序列發展趨勢:即序列圖,確定乘性還是加性
- 進行季節因素分解
- 建模
- 分析結果解讀
- 預測
1、定義日期標示變量
時間序列的特點就是數據根據時間點的順序進行排列,因此分析之前,SPSS需要知道序列的時間定義,然后才能進行分析時間特征。
根據源數據的格式進行選擇,并輸入第一個個案的具體數值。
此時會在源文件中生成三個新的變量。
2、了解序列發展趨勢
完成日期標示變量的定義之后,需要先對時間序列的變化趨勢有所了解,便于選擇合適的模型。即通過序列圖,確定模型是乘性還是加性。
變量為”銷售數據“,時間軸標簽為”DATE–“,也就是我們自定義的時間。
數據銷量序列圖
如何根據序列圖來判斷模型的乘性或加性?
- 如果隨著時間的推移,序列的季節波動變得越來越大,則建議使用乘法模型。
- 如果序列的季節波動能夠基本維持恒定,則建議使用加法模型。
本例很明顯:隨著時間變化,銷售數據的季節波動越來越大,那么使用乘法模型會更精確。
3、進行季節因素分解
變量為”銷售數據“,且根據序列圖我們知道時間序列模型為乘性。
提示您會新生成四個變量
- ERR(誤差序列):從時間序列中移除季節因素、長期趨勢、和循環變動之后留下的序列,也就是原始序列中的不規則變動構成的序列。
- SAS(季節因素校正后序列):是移除原始序列中的季節因素后的校正序列。
- SAF(季節因子):是從序列中分解出的季節因素。其中的變量值根據季節周期的變動進行重復,如本例中季節周期為12個月,所以這些季節因子沒12個月重復一次。
- STC(長期趨勢和循環變動趨勢):這是原始序列中長期趨勢和循環變動構成的序列。
如圖,周期為12個月,季節因子12個月循環一次。
完成季節因素分解后的序列和原始序列之間有什么差異?
通過回執序列圖的方法把原始序列和除去季節因子的三個序列(誤差序列、季節因素校正后序列、長期無視和循環變動序列)進行比較。
要做四個序列圖,會有四個變量:
- 原始序列:使用變量”銷售數據“;
- 誤差序列:使用變量”ERR“;
- 季節因素校場后序列:使用變量”SAS“
- 長期趨勢和循環變動序列:使用變量”STC“
- 藍色線:原始序列
- 紫色線:長期趨勢和循環變動序列
- 淺棕色:季節因素校正后序列
- 綠色線:誤差序列(不規則變動)
因為誤差序列數值非常小,所以長期趨勢和循環變動序列(長期趨勢+循環變動)與季節因素校正后序列(長期趨勢+循環變動+不規則變動,即誤差)能夠基本重合。
在單獨做”季節因子SAF“的序列圖:
因為是做”季節因子“的序列圖,所以只有一個變量”季節因子SAF“
我們看出:季節因素的周期是12個月,先下降,然后上升到第一個頂點,再有略微的下降后,出現明顯的上升趨勢,到第七個月時達到峰值,然后一路下跌,直到最后一個月份有所回升,之后進入第二個循環周期。
通過對原始序列的季節分解,我們更好的掌握了原始序列所包含的時間特征,從而選用適當的模型進行預測。
三、專家建模法
時間序列的預測步驟有四步:
- 繪制時間序列圖觀察趨勢
- 分析序列平穩性并進行平穩化
- 時間序列建模分析
- 模型評估與預測
平穩性主要是指時間序列的所有統計性質都不會隨著時間的推移而發生變化。
對于一個平穩的時間序列,具備以下特征:
- 均數和方差不隨時間變化
- 自相關系數只與時間間隔有關,與所處的時間無關
自相關系數是研究序列中不同時期的相關系數,也就是對時間序列計算其當前和不同滯后期的一系列相關系數。
平穩化的方法——差分。
差分就是指序列中相鄰的兩期數據之差。
- 一次差分=Yt-Yt-1
- 二次差分=(Yt-Yt-1)-(Yt-1-Yt-2)
具體的平穩化操作過程會有專家建模法自動處理,我們只需要哼根據模型結果獨處序列經過了幾階差分即可。
時間序列分析操作:
要分析所有變量,所以選擇”銷售數據“。
【專家建模器】–【條件】,勾選”專家建模器考慮季節性模型“。
勾選”預測值“,目的是生成預測值,并保存模型。
時間序列分析結果解讀
該表顯示了經過分析得到的最優時間序列模型及其參數,最優時間U型獵魔性為ARIMA(0,1,1)(0,1,1)
求和自回歸移動平均模型ARIMA(p,d,q)(P,D,Q)
- p:出去季節性變化之后的序列所滯后的p期,通常為0或1,大于1的情況很少;
- d:除去季節性變化之后的序列進行了d階差分,通常取值為0,1或2;
- q:除去季節性變化之后的序列進行了q次移動平均,通常取值0或1,很少會超過2;
P,D,Q分別表示包含季節性變化的序列所做的事情。
因此本例可解讀為:對除去季節性變化的序列和包含季節性變化的序列分別進行了一階差分和一次移動平均,綜合兩個模型而建立出來的時間序列模型。
該表主要通過R方或平穩R方來評估模型擬合度,以及在多個模型時,通過比較統計量找到最優模型。
由于原始變量具有季節性變動因素,所以平穩的R方更具有參考意義,等于32.1%,擬合效果一般。
該表提供了更多的統計量可以用來評估時間序列模型的擬合效果。
雖然平穩R方僅僅是32.1%,但是”楊-博克斯Q(18)“統計量的顯著性P=0.706,大于0.05(此處P>0.05是期望得到的結果),所以接受原假設,認為這個序列的殘差符合隨機分布,同時沒有離群值出現,也都反映出數據的擬合效果還可以接受。
時間序列應用預測:
未來一年是到2016年12月,手動輸入即可。
這是未來一年的銷售趨勢。
如果想從全局來觀察預測趨勢,可以在把這一年的趨勢和以前的數據連接起來
此時的變量應該是”原始的銷售數量“和”2016年的預測銷售數量“。
結果如下:
也可以在表中查看具體的數值:
作者:膝蓋哥,是一枚“跪著提需求”的產品經理。常說“不用不用,真的不用了,我跪著就好!”
本文由 @膝蓋哥 原創發布于人人都是產品經理。未經許可,禁止轉載。
請問如果數據是年月日這個顆粒度的,該怎么定義時間呢,默認的定義時間格式沒有這樣的
很棒
很清晰呀,趕緊用實際的數據來跑一跑
可以化繁為簡為何多碼字 ??