猿创征文|时间序列分析算法之平稳时间序列预测算法和自回归模型(AR)详解+Python代码实现
目錄
前言
一、平穩(wěn)時間序列預測算法
1.時間序列的分布、均值和協(xié)方差函數(shù)
概率分布
均值函數(shù)
自協(xié)方差函數(shù)
自相關函數(shù)
2.平穩(wěn)序列的自協(xié)方差和自相關函數(shù)
自協(xié)方差函數(shù)
自相關函數(shù)
平穩(wěn)序列的自協(xié)方差序列和自相關函數(shù)列的性質
3.嚴平穩(wěn)時間序列
4.寬平穩(wěn)時間序列
5.聯(lián)系和區(qū)別
聯(lián)系
區(qū)別
6.白噪聲序列
定義
7.獨立同分布序列
定義
二、自回歸模型(Autoregressive model,簡稱AR)
定義
建模步驟
第一步:
第二步:
第三步:
第四步:
模型判定
案例實現(xiàn)
點關注,防走丟,如有紕漏之處,請留言指教,非常感謝
參閱
前言
平滑法花費了將近一個月的時間去講解和模擬算法,講解的非常詳細了我個人認為,而且代碼和原理理解起來也相對簡單,代碼實現(xiàn)起來也幾乎沒有什么難度。若是沒有大家想要詳細了解或者掌握時間序列分析算法的建議可以訂閱本人專欄:一文速學-數(shù)學建模常用模型。里面涉及到各個場景的分析和預測模型基本都具備了,其中平滑法的所有方法:
都包含其中。接下來我們要對平穩(wěn)時間序列預測算法進行研究和推導。但是平穩(wěn)時間序列預測算法的基礎理論還是蠻多蠻復雜的,需要我們對基礎理論有了一定認知才能更輕松的掌握該算法。故我們的開篇第一章先將理論知識全部了解一遍。
希望讀者看完能夠在評論區(qū)提出錯誤或者看法,博主會長期維護博客做及時更新。
一、平穩(wěn)時間序列預測算法
這里的平穩(wěn)是指寬平穩(wěn),其特性是序列的統(tǒng)計特性不隨時間的平移而變化,即均值和協(xié)方差不隨時間的平移而變化。?時間序列是指將某種現(xiàn)象某一個統(tǒng)計指標在不同時間上的各個數(shù)值,按時間先后順序排列而形成的序列。平穩(wěn)時間序列粗略地講,一個時間序列,如果均值沒有系統(tǒng)的變化(無趨勢)、方差沒有系統(tǒng)變化,且嚴格消除了周期性變化,就稱之是平穩(wěn)的。
平穩(wěn)時間序列是時間序列分析中最重要的特殊類型。到目前為止,時間序列分析基本上是以平穩(wěn)時間序列為基礎的,對于非平穩(wěn)時間序列的統(tǒng)計分析,其方法和理論都很有局限性。
這里我們需要了解關于時間序列的基本屬性以及相應點的分布:
1.時間序列的分布、均值和協(xié)方差函數(shù)
概率分布
由于確定時間序列的分布函數(shù)一般不可能,人們更加注意使用時間序列的各種特征量的描述,如均值函數(shù)、協(xié)方差函數(shù)、自相關函數(shù)、偏自相關函數(shù)等,這些特征量往往能代表隨機變量的主要特征。
均值函數(shù)
一個時間序列的均值函數(shù)指:
?即為的均值函數(shù),它實質上是一個實數(shù)列,均值表示隨機過程在各個時刻的擺動中心。
自協(xié)方差函數(shù)
?對稱性:
自相關函數(shù)
?自相關函數(shù)描述了時間序列的自身的相關結構。時間序列的自相關函數(shù)具有對稱性,且有
2.平穩(wěn)序列的自協(xié)方差和自相關函數(shù)
自協(xié)方差函數(shù)
若為平穩(wěn)序列,假定,則我們可以用以下記號表示平穩(wěn)序列的自協(xié)方差函數(shù):
自相關函數(shù)
?相應的,嚴平穩(wěn)序列的自相關函數(shù)記為:
平穩(wěn)序列的自協(xié)方差序列和自相關函數(shù)列的性質
平穩(wěn)時間序列分為嚴平穩(wěn)時間序列與寬平穩(wěn)時間序列。
3.嚴平穩(wěn)時間序列
若對于時間t的任意n個值,序列中的隨機變量聯(lián)合分布與整數(shù)S無關,即有:
則稱為嚴平穩(wěn)/狹義平穩(wěn)/強平穩(wěn)時間序列。嚴平穩(wěn)的概率分布與時間無關。
4.寬平穩(wěn)時間序列
如時間序列有有窮的二階矩陣,且滿足以下兩個條件:
則稱該時間序列為寬平穩(wěn)過程。
 寬平穩(wěn)過程各隨機變量的均值為常數(shù),且任意兩個變量的協(xié)方差僅與時間間隔有關。
5.聯(lián)系和區(qū)別
聯(lián)系
- 若一個序列為嚴平穩(wěn)序列,且有有窮的二階矩陣,那么該序列也必為寬平穩(wěn)序列。
 - 若時間序列為正態(tài)序列(即它的任何有限維分布都是正態(tài)分布),那么該序列為嚴平穩(wěn)序列和寬平穩(wěn)序列是相互等價的。
 
區(qū)別
- 嚴平穩(wěn)的概率分布隨時間的平移而不變,寬平穩(wěn)序列的均值和自協(xié)方差隨時間的平移而不變。
 - 一個嚴平穩(wěn)序列,不一定是寬平穩(wěn)序列;一個寬平穩(wěn)序列也不一定是嚴平穩(wěn)序列。
 
實際中討論的平穩(wěn)時間序列是寬平穩(wěn)時間序列,指對任意時間下,序列的均值、方差存在并為常數(shù),且自協(xié)方差函數(shù)與自相關系數(shù)只與時間間隔k有關。只有平穩(wěn)時間序列才可以進行統(tǒng)計分析,因為平穩(wěn)性保證了時間序列數(shù)據(jù)都是出自同一分布。可以使用單位根檢驗來檢驗時間序列的平穩(wěn)性。
若一個平穩(wěn)時間序列的序列值之間沒有相關性,那么就意味著這種數(shù)據(jù)前后沒有規(guī)律,也就無法挖掘出有效的信息,這種序列稱為純隨機序列。在純隨機序列中,有一種序列稱為白噪聲序列,這種序列隨機且各期的方差一致。平穩(wěn)時間序列分析在于充分挖掘時間序列之間的關系,當時間序列中的關系被提取出來后,剩下的序列就應該是個白噪聲序列。
6.白噪聲序列
定義
若時間序列滿足下列性質:
?則稱此序列為白噪聲序列。
 白噪聲序列是一種特殊的寬平穩(wěn)序列,也是一種最簡單的平穩(wěn)序列。
7.獨立同分布序列
定義
如果時間序列中的隨機變量是相互獨立的隨機變量,且具有相同的分布(當有一階矩時,往往還假定),則稱為獨立同分布序列。
?獨立同分布序列是一個嚴平穩(wěn)序列
 一般來說,白噪聲序列與獨立同分布序列是不同的兩種序列。
 但是當白噪聲序列為正態(tài)序列時,它也是獨立同分布序列,此時我們稱其為正態(tài)白噪聲序列。
二、自回歸模型(Autoregressive model,簡稱AR)
定義
自回歸模型是統(tǒng)計上一種處理時間序列的方法,用同一變數(shù)例如x的之前各期,亦即至來預測本期的表現(xiàn),并假設它們?yōu)橐痪€性關系。因為這是從回歸分析中的線性回歸發(fā)展而來,只是不用x預測y,而是用x預測 x(自己);所以叫做自回歸。
p階自回歸模型的自相關系數(shù)拖尾,偏自相關系數(shù)p階截尾。
?其中:c是常數(shù)項;被假設為平均數(shù)等于0,標準差等于的隨機誤差值;被假設為對于任何的t都不變。
?文字敘述為:X的期望值等于一個或數(shù)個落后期的線性組合,加常數(shù)項,加隨機誤差。
建模步驟
第一步:
對時間蓄力進行白噪音檢測,若經檢驗判定序列為白噪聲,則這種數(shù)據(jù)前后沒有規(guī)律,也就無法挖掘出有效的信息。只有檢測不是白噪音序列才能繼續(xù)。
第二步:
對序列作平穩(wěn)性檢驗,若經檢驗判定為非平穩(wěn),則進行序列的平穩(wěn)化處理,轉第一步;否則轉第三步;
第三步:
對模型進行識別,估計其參數(shù),轉第四步;
第四步:
檢驗模型的適用性,若檢驗通過,則得到擬合模型并可對序列做預測;否則轉第三步;
模型判定
對于觀測到的時間序列,若通過白噪音檢測確定是非白噪音,且經平穩(wěn)性檢驗后確定為平穩(wěn)后,常根據(jù)相關系數(shù)和偏相關系數(shù)來識別模型。判斷該問題是否適用AR模型建模,以及大致確定階數(shù)p。
通過計算自相關系數(shù)SAF,和偏相關系數(shù)PACF。
如果一個時間序列滿足以下兩個條件:
- ACF 具有拖尾性,即 ACF(k) 不會在 k 大于某個常數(shù)之后就恒等于 0。
 - PACF 具有截尾性,即 PACF(k) 在 k>p 時變?yōu)?0。(用來確定階數(shù), PACF 在 p 階延遲后未必嚴格為 0 ,而是在 0 附近的小范圍內波動)
 
那么就可以嘗試使用AR模型。
案例實現(xiàn)
Python中用statsmodels.tsa.ar_model包中的AutoReg來實現(xiàn)自回歸。
from statsmodels.tsa.ar_model import AutoReg?該類函數(shù)參數(shù)為:
ar_model = AutoReg(endog,lags,trend='c',seasonal=False,exog=None,hold_back=None,period=None,missing='none',*,deterministic=None,old_names=False)這里不展開一一講解,想要詳細了解的可以去看官方解釋:
statsmodels.tsa.ar_model.AutoReg — statsmodels
通常情況下只需要輸入序列endog和階數(shù)lags:
endog:接受類型為數(shù)組類型,一維時間序列。
lags:模型階數(shù),如果是整數(shù),則模型中包含的滯后數(shù)或要包含的滯后指數(shù)列表。例如,[1,4]將只包括lags為1和4,而lags=4將包括滯后1、2、3和4。
from statsmodels.tsa.ar_model import AutoReg import numpy as np# 生成N(0,1)隨機正態(tài)分布(白噪聲) noise = np.random.randn(200) wnoise = (noise-np.mean(noise))/np.std(noise)# 生成AR(2)線性序列 X(t)=0.5X(t-1)+0.1X(t-2) X = [20,10] # 初值 for i in range(200):x2 = 0.5*X[i+1]+0.1*X[i]+wnoise[i]X.append(x2)# 2階AR模型擬合(OLS) AR2_model = AutoReg(X, 2).fit() # 模型預測第3到第202個時間點的數(shù)據(jù) predict = AR2_model.predict(2,201) # 計算殘差 residual = X[2:]-predict我們模擬生成了AR線性蓄力之后,再進行AR2階擬合得到預測值,之后使用matplotlib展示 :
import matplotlib.pyplot as plt plt.figure() plt.subplot(311) plt.plot(X[2:]) plt.subplot(312) plt.plot(predict) plt.subplot(313) plt.plot(residual)?
點關注,防走丟,如有紕漏之處,請留言指教,非常感謝
以上就是本期全部內容。我是fanstuck ,有問題大家隨時留言討論 ,我們下期見。
參閱
平穩(wěn)時間序列的相關概念_someday or one day的博客-CSDN博客_平穩(wěn)時間序列
(五十一)時間序列分析二:平穩(wěn)時間序列分析(ARMA)_小粉橋反手王的博客-CSDN博客_平穩(wěn)時間序列時間序列模型 (六):平穩(wěn)時間序列模型 :自回歸AR 、移動平均 MA 、ARMA 模型_wamg瀟瀟的博客-CSDN博客_平穩(wěn)時間序列模型
平穩(wěn)時間序列_百度百科
自回歸模型AR(p)的python實現(xiàn)【案例】_Noema_pku的博客-CSDN博客_python自回歸模型
時間序列分析—自回歸(AR) - 知乎瓷片
總結
以上是生活随笔為你收集整理的猿创征文|时间序列分析算法之平稳时间序列预测算法和自回归模型(AR)详解+Python代码实现的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 疑难杂症---共享打印机驱动安装失败0x
 - 下一篇: 1.如何判断正交表对错