|
????????? 作者簡介Introduction 姚某某 本節(jié)主要總結「數據分析」的「時間序列」相關模型的思路。 「時間序列」是一個變量在連續(xù)時點或連續(xù)時期上測量的觀測值的序列,它與我們以前見過的數據有本質上的區(qū)別,這個區(qū)別在于之前的數據都在一個時間的橫截面上去測量、計算數據,而「時間序列」給出了一種時間軸線上縱向的視角,將時間作為自變量,測量出一系列縱向數據。 關于「時間序列」的預測模型,我所了解的常用模型有三種:1. 移動平均 2. 指數預測模型 3. ARIMA 預測模型 0. 時序的分解 要研究時序如何預測,首先需要將復雜的時序數據進行分解,將復雜的時序數據分解為單一的分解成分,這樣能利用統(tǒng)計方法進行擬合,然后個個擊破,最后再合成為我們需要預測的未來時序數據。 前人在這一問題上已經得到很好的結論,通過對時序數據現實意義的理解,一般將時序數據分解為四個成分: 1. 水平項 2. 趨勢項 3. 季節(jié)效應(衍生出去為周期項) 4. 隨機波動
通常在分解以上各個成分時,有兩種模式,一個是乘法模型,一個是加法模型。其中,加法模型的季節(jié)效應被認為不依賴于時間序列,二乘法模型認為季節(jié)影響隨著時間會發(fā)生改變。不過兩種模型在計算時可以相通,對乘法模型作對數處理即可。 1. 移動平均 這一方法很簡單,只做簡單講解
即: 較小的 k 值將更快速追蹤時間序列的移動,而較大的 k 值將隨著時間的推移更有效地消除隨機波動。
即: 2. 指數預測模型 指數預測模型也是利用過去的時間序列值的加權平均數作為預測值,它是加權移動平均法的一個特例。 即:只選擇最近時期觀測值的權重,其他數據值的權重則自動推算,原則是時間距離越遠權重越小。 2.1. 單指數平滑 單指數平滑,不考慮季節(jié)和趨勢分解,僅用過去數據值的加權平均數來預測。其思想為: 其中 F 為某時刻的預測值,Y 為某時刻的觀測值。以上公式從 t = 1 開始遞推,則每個時刻的預測值都包含著過去所有觀測值的成分,只是權重不同,令F1 = Y1 ,則: α為平滑常數,越接近于 1 ,則近期觀測值的權重越大;反之,越接近于0,歷史觀測值權重越大。 2.2. Holt 指數平滑 Holt 指數平滑,在單指數平滑的基礎上,還對趨勢項進行了擬合。 由于考慮到了趨勢項,則預測值可表示為: 其中 Lt 為 t 時刻時序水平項的估計值,bt為 t 時刻時序斜率的估計值。 α為水平平滑常數, β為斜率平滑常數。 2.3. Holt-Winters 指數平滑 Holt-Winters 指數平滑,在 Holt 指數平滑的基礎上,還對季節(jié)項(周期項)進行了擬合, 由于還考慮到了季節(jié)項,則預測值表示為: 其中 i 為季節(jié)項的周期,mod 是求余,P 是某時刻時序周期的估計值。
2.4. R 語言實現 以上三種指數平滑模型,采用 forecast 包中的 ets ( ) 函數即可:
3. ARIMA 預測模型 ARIMA 模型的相關資料我找到了,但是并沒有看完和看懂,相對來說其思想確實有些復雜。而且最近買了《統(tǒng)計學方法》和《機器學習》兩本書,發(fā)現自己的線性代數水平還很難看懂這些公式和算法推導,所以準備把《 R 語言實戰(zhàn) 》敲完后轉入線性代數的復習,之后學習方向待定。 這里我就僅把利用 R 語言進行 ARIMA 模型模擬和預測的流程做以總結: 3.1. 確保時序是平穩(wěn)的 時序平穩(wěn)的要求一般有兩個:方差為均值、無趨勢項 方法是利用時序圖估判和 ndiffs ( ) 函數推薦最優(yōu)的差分次數 d 。 3.2. 選擇模型 通過 ACF 和 PACF 圖來判斷 p 和 q 參數的值。 其中 ACF 為自相關函數圖用于判斷 q,PACF 為偏自相關圖用于判斷 p。 p 為自回歸模型(AR)參數,q 為移動平均模型(MA)參數。 3.3. 擬合模型
3.4. 模型評價 模型的殘差應該滿足獨立正態(tài)分布,根據這一條: 1. 使用正態(tài) Q-Q 圖來判斷其正態(tài)性 2. 使用box.test ( ) 函數對模型的殘差進行獨立性檢驗。 3.5. 預測
3.6. 自動預測 forecast 包中的 auto.arima ( ) 函數可以實現最優(yōu) ARIMA 模型的自動選取。 |
|
|