平稳时间序列以及MATLAB相关工具箱学习笔记
平穩時間序列以及MATLAB相關工具箱學習筆記
概念
(1)平穩序列
即序列的均值是個常數,與序列長度、起始位置無關。
直觀看上去,該序列類似于圍繞某一個值上下波動(該值為平穩序列均值)。
(2)平穩白噪聲序列
所謂噪聲,可以理解為一種非周期性的擾動。由于其自協方差函數值為0,于是其各序列值沒有任何相關關系,所以說平穩白噪聲序列是一段沒有記憶的平穩序列。
在MATLAB中可用如下代碼生成高斯分布下的平穩白噪聲序列:
基本的平穩時間序列
(1)AR(p)AR(p)AR(p)序列
需要說明的是:
1.ppp為模型階數,需要進行定階。
比說:隨機產生時間序列Xt+0.6Xt?1+0.2Xt?2=ξt\color{#00F}{X_t+0.6X_{t-1}+0.2X_{t-2}=\xi_t}Xt?+0.6Xt?1?+0.2Xt?2?=ξt?中
p=2\color{#00F}{p=2}p=2,則該序列為AR(2)AR(2)AR(2)序列。
2.ψ=(ψ1,ψ2,?,ψp)T\psi=(\psi_1,\psi_2,\cdots,\psi_p)^Tψ=(ψ1?,ψ2?,?,ψp?)T為未知參數,需要對其進行估計。
(2)MA(q)MA(q)MA(q)序列
同樣:
1.qqq為模型階數,需要進行定階。
2.θ=(θ1,θ2,?,θq)T\theta=(\theta_1,\theta_2,\cdots,\theta_q)^Tθ=(θ1?,θ2?,?,θq?)T為未知參數,需要對其進行估計。
(3)ARMA(p,q)ARMA(p,q)ARMA(p,q)序列
1.p,qp,qp,q為模型階數,需要進行定階。
2.θ=(θ1,θ2,?,θq)T,ψ=(ψ1,ψ2,?,ψp)T\theta=(\theta_1,\theta_2,\cdots,\theta_q)^T,\psi=(\psi_1,\psi_2,\cdots,\psi_p)^Tθ=(θ1?,θ2?,?,θq?)T,ψ=(ψ1?,ψ2?,?,ψp?)T為未知參數,需要對其進行估計。
平穩時間序列建模流程
下面逐步分析流程并演示代碼:
(1)平穩性檢驗
先導入一組數據,生成圖像:
由圖可知,其變動范圍較大,均值可能為一常數(肉眼判斷)在定義上有可能滿足平穩序列的條件。
于是,引出了平穩性檢驗的第一種方法:1.時序圖檢驗\color{#00F}{1.時序圖檢驗}1.時序圖檢驗。
除了這種方法,更一般的方法為2.自相關檢驗\color{#00F}{2.自相關檢驗}2.自相關檢驗
平穩序列通常具有短期相關性,該性質用自相關系數來描述就是:隨著延遲期數的增加,平穩序列的自相關系數會很快衰減為0\color{#F00}{隨著延遲期數的增加,平穩序列的自相關系數會很快衰減為0}隨著延遲期數的增加,平穩序列的自相關系數會很快衰減為0。
MATLAB檢驗自相關系數的函數為:
figure(1) r11=autocorr(a) %計算自相關函數 stem(r11)%繪制經線圖 title('自相關系數') figure(2) r12=parcorr(a) %計算偏相關函數 stem(r12)%繪制經線圖 title('偏相關系數')對源數據計算可得圖像:
平穩系序列的自相關系數具有:截尾性、拖尾性、指數衰減性。根據以上兩圖可以進行直觀理解。從以上圖示,該序列都滿足平穩性的判別標準\color{#00F}{該序列都滿足平穩性的判別標準}該序列都滿足平穩性的判別標準。
但如上圖所示,該序列的自相關系數分布圖明顯不展現截尾性、拖尾性、指數衰減性的性質,該序列為不平穩序列。
3.Daniel檢驗法\color{#00F}{3.Daniel檢驗法}3.Daniel檢驗法。
MATLAB程序:
計算結果:
T=11.0235>t0=2.4469T = 11.0235> t_0 =2.4469T=11.0235>t0?=2.4469該序列為非平穩性序列\color{#D1F}{非平穩性序列}非平穩性序列。
其次,若已知序列的類型(AR(p)AR(p)AR(p)序列、MA(q)MA(q)MA(q)序列、ARMA(p,q)ARMA(p,q)ARMA(p,q)序列),可采用4.單位根法\color{#00F}{4.單位根法}4.單位根法進行平穩性檢驗。
θ(B)及ψ(B)\theta(B)及\psi(B)θ(B)及ψ(B)的根均在單位圓內,則該序列平穩。
例子:已知隨機隨機時間序列:
Xt+0.6Xt?1+0.2Xt?2=ξtX_t+0.6X_{t-1}+0.2X_{t-2}=\xi_tXt?+0.6Xt?1?+0.2Xt?2?=ξt?
則θ(B)=1+0.6B+0.2B2\theta(B)=1+0.6B+0.2B^2θ(B)=1+0.6B+0.2B2
(2)構造差分序列
需要指出,并非是所有的非平穩序列都能進行差分使其平穩化,能進行差分的序列須為帶有一定趨勢\color{#F00}{帶有一定趨勢}帶有一定趨勢的非平穩差分序列。
以上兩幅圖為原平穩序列差分后的結果,由圖可知平穩序列的差分序列不會喪失其平穩特性,反倒越加平穩。若1階差分滿足不了,可采用2階甚至多階。
(3)模型定階與擬合(參數估計)
一般地,若已知該序列的類型,可采用直接指定的方式定階。還是這個例子:
Xt+0.6Xt?1+0.2Xt?2=ξt\color{#00F}{X_t+0.6X_{t-1}+0.2X_{t-2}=\xi_t}Xt?+0.6Xt?1?+0.2Xt?2?=ξt?
更一般地,對于一組未知類型的時間序列(已知某化工生產濃度數據、已知1997-2012年我國人均國內生產總值、1974-1981年布料銷售量?\cdots?,可采用試探模型(即通過構造{p=1:m,q=1:np=1:m,q=1:np=1:m,q=1:n}的方法)進行定階。這里,我們可以假設模型為計量經濟學領域的CARCH模型:
這里我們需要用到MATLAB的兩個常用模型指定函數:model=arima(′MALags′,[MA模型滯后項],′ARLags′,[AR模型滯后項],′MA′,MA模型滯后項系數,′AR′,MA模型滯后項系數,′Constant′,常數項)model=arima('MALags',[MA模型滯后項],'ARLags',[AR模型滯后項],'MA',{MA模型滯后項系數},'AR',{MA模型滯后項系數},'Constant',常數項)model=arima(′MALags′,[MA模型滯后項],′ARLags′,[AR模型滯后項],′MA′,MA模型滯后項系數,′AR′,MA模型滯后項系數,′Constant′,常數項)
Xt+0.6Xt?1+0.2Xt?2=ξt\color{#00F}{X_t+0.6X_{t-1}+0.2X_{t-2}=\xi_t}Xt?+0.6Xt?1?+0.2Xt?2?=ξt?
可用如下語句進行指定:
另外,指定模型之后需要進行擬合,具體函數如下:
輸入:Md1為上面用arima指定的模型;y為需要擬合的時間序列;
輸出:EstMd1為擬合得到的模型方程;EstParamCov為返回與估計參數;logL為目標函數值;info為匯總信息。
一段完整的定階與擬合MATLAB程序如下:
(4)模型預報
這里也將有大篇幅的理論推導,這里將不再敘述。
AR預報:
ARMA預報:
這里,EstMd為擬合出來的模型,5為需要預報的值,’Y0‘為預測參量,d為序列。
(5)模型檢驗
模型檢驗常用的方法有:
時間序列檢驗
殘差的 Portmanteau 檢驗
Lagrange 乘數檢驗
MATLAB殘差檢驗的程序如下:
總結
以上是生活随笔為你收集整理的平稳时间序列以及MATLAB相关工具箱学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: windows10下Qt安装及OpenC
- 下一篇: 无法访问局域网的文件服务器,局域网共享文