python处理时间序列非平稳_【Python算法】--非平稳时间序列分析
【Python算法】--非平穩時間序列分析
1.非平穩時間序列分析
上節介紹了對平穩時間序列進行分析的方法。實際上,在自然界中絕大部分序列都是非平穩的。因而對非平穩序列的分析更普遍、更重要,創造出來的分析方法也更多。
對非平穩時間序列的分析方法可以分為確定性因素分解的時序分析和隨機時序分析兩大類。
確定性因素分解的方法把所有序列的變化都歸結為4個因素(長期趨勢、季節變動、循環變動和隨機波動)的綜合影響,其中長期趨勢和季節變動的規律性信息通常比較容易提取,而由隨機因素導致的波動則非常難確定和分析,對隨機信息浪費嚴重,會導致模型擬合精度不夠理想。
隨機時序分析法的發展就是為了彌補確定性肉素分解方法的不足。根據時間序列的不同特點,隨機時序分析可以建立的模型有ARIMA模型、殘差自回歸模型、季節模型、異方差模型等。 本節重點介紹使用ARIMA模型對非平穩時間序列進行建模的方法。
2.差分運算
1.p階差分
相距一期的兩個序列值之間的減法運算稱為一階差分運算。
2.步差分
相距k期的兩個序列值之間的減法運算稱為k步差分運算。
3.ARIMA模型
差分運算具有強大的確定性信息提取能力,許多非平穩序列差分后會顯示出平穩序列的性質,這時稱這個非平穩序列為差分平穩序列。對差分平穩序列可以使用 ARMA 模型進行擬合。ARIMA 模型的實質就是差分運算與 ARMA 模型的組合,掌握了 ARMA 模型的建模方法和步驟以后,對序列建立 ARIMA 模型是比較簡單的。
差分平穩時間序列建模步驟如圖所示:
例:就餐飲企業而言,經常會碰到如下問題: 由于餐飲行業是生產和銷售同時進行的,因此銷售預測對于餐飲企業十分必要。如何基于菜品歷史銷售數據,做好餐飲銷售預測,以便減少萊品脫銷現象和避免因備料不足而造成的生產延誤,從而減少菜品生產等待時間,提供給客戶更優質的服務,同時可以減少安全庫存量,做到生產準時制,降低物流成本。
餐飲銷售預測可以看作是基于時間序列的短期數據預測,預測對象為具體菜品銷售量。 常用按時間順序排列的一組隨機變量X1, X2, … , Xt來表示一個隨機事件的時間序列,簡記為{Xt};用x1,x2, … , xn或{xt , t = 1,2, … , n}表示該隨機序列的 n 個有序觀察值,稱之為序列長度為 n 的觀察值序列。 稱之為序列長度為n的觀察值序列。
應用上述理論,可對2015/1/1~2015/2/6某餐廳的銷售數據進行建模。
具體數據如圖所示:
1.檢驗序列的平衡性
①原始序列的時序圖:
時序圖顯示該序列具有明顯的單調遞增趨勢,可以判斷為是非平穩序列。
② 原始序列的自相關圖:
自相關圖顯示自相關系數長期大于零,說明序列間具有很強的長期相關性。
③ 原始序列的單位根檢驗,如圖所示:
單位根檢驗統計量對應的p值顯著大于0.05,最終將該序列判斷為非平穩序列(非平穩序列一定不是白噪聲序列)。
2.對一階差分后的序列再次做平穩性判斷
① 一階差分之后序列的時序圖:
② 一階差分之后序列的自相關圖:
一階差分之后序列的單位根檢驗,如圖所示:
結果顯示,一階差分之后的序列的時序圖在均值附近比較平穩的波動、自相關圖有很強的短期相關性、單位根檢p值小于0.05,所以一階差分之后的序列是平穩序列。
對一階差分后的序列做自噪聲檢驗,如圖所示:
輸出的p值遠小于0.05,所以一階差分之后的序列是平穩非白噪聲序列。
3.對一階差分之后的平穩非白噪聲序列擬合ARMA模型
下面進行模型定階。模型定階就是確定p和q。 第一種方法:人為識別。經過一節差分后自相關圖顯示出一階截尾,偏自相關圖顯示出拖尾性,所以可以考慮用MA(1)模型擬合一階差分后的序列,即對原始序列建立 ARIMA(0,1,1)模型。
第二種方法:相對最優模型識別。 計算ARMA(p,q),當p和q均小于等于3的所有組合的BIC信息量,取其中BIC信息
量達到最小的模型階數。計算完成BIC矩陣如下:432.068472???422.510082??426.088911?????426.595507
423.628276???426.073601??NaN????????????NaN
426.774824???427.395787??430.709154?????NaN
430.317524???NaN?????????NaN????????????436.478109
p值為0、q 值為1時最小BIC 值為:430.1374。p、q 定階完成。 用AR(1)模型擬合一階差分后的序列,即對原始序列建立ARIMA(0,1,1)模型。雖然兩種方法建立的模型是一樣的,但模型是非唯一的,可以檢驗 ARIMA(1,1,0)和 ARIMA(1,1,1),這兩個模型也能通過檢驗。
4.對一階差分后的序列擬合AR(1)模型進行分析 模型檢驗。殘差為白噪聲序列,p 值為:0.627016。 參數檢驗和參數估計如圖所示:
5.ARIMA模型預測 應用 ARIMA(0,1,1)對表某餐廳的銷售數據做為期5天的預測,結果如圖所示:
需要說明的是,利用模型向前預測的時期越長,預測誤差將會越大,這是時間預測的典型特點。
總結
以上是生活随笔為你收集整理的python处理时间序列非平稳_【Python算法】--非平稳时间序列分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Podfile 文件模板
- 下一篇: BMC REDFISH