1 ARMA時間序列機器特性
下面介紹一種重要的平穩時間序列——ARMA時間序列。
ARMA時間序列分為三種:
AR模型,auto regressiv model
MA模型,moving average model
ARMA模型,auto regressive moving average model
可證ARMA時間序列具有遍歷性,因此可以通過它的一個樣本估計自協方差函數及自相關函數。
2 ARMA、AR、MA模型的基礎知識(略)
3 例:隨機模擬下列序列,樣本容量10000,其中樣本符合均值為零,方差為1的標准正太分布。計算自相關值
MATLAB代碼如下:
%% DEMO1 % 利用模型數據研究隨機模擬下序列。計算自相關函數 clc;clear; rng('default'); % 初始化隨機種子,保持隨機種子一致 elps = randn(1,10000); % 產生10000個服從正態分布的隨機數 x(1) = 0; % 賦初始值 for j = 2:10000 x(j) = 0.8 * x(j-1) + elps(j) - 0.4 * elps(j-1); % 產生樣本點 end y = (x - mean(x)); % 把數據中心化處理 gama0 = var(x); % 求樣本方差 for j = 1:10 gama(j) = y(j+1:end)*y(1:end-j)'/10000; %求自協方差函數 end rho = gama/gama0; %求自相關函數 rho2 = autocorr(x); % 直接利用MATLAB工具箱求自相關函數。 disp([rho(1),rho(2),rho(4),rho(4)]); disp([rho2(2),rho2(3),rho2(4),rho2(5)]) % 其自相關函數的計算結果基本一致 % 0.5430 0.4296 0.2551 0.2551 % 0.5430 0.4297 0.3396 0.2552
4 例:利用MATLAB計算自相關值
%% DEMO2 % 利用模型數據研究隨機模擬下序列。計算偏自相關函數 clc;clear; rng('default'); % 初始化隨機種子,保持隨機種子一致 elps = randn(1,10000); % 產生10000個服從正態分布的隨機數 x(1) = 0; % 賦初始值 for j = 2:10000 x(j) = 0.8 * x(j-1) + elps(j) - 0.4 * elps(j-1); % 產生樣本點 end y = (x - mean(x)); % 把數據中心化處理 gama0 = var(x); % 求樣本方差 L = 10; for j = 1:L gama(j) = y(j+1:end)*y(1:end-j)'/10000; %求自協方差 end rho = gama/gama0; % 求自相關系數 f(1,1)=rho(1); for k = 2:L s1 = rho(k);s2=1; % 計算初始值 for j = 1:k-1 s1 = s1-rho(k-j)*f(k-1,j); s2 = s2-rho(j)*f(k-1,j); f(k,k)=s1/s2; end for j = 1:k-1 f(k,j) = f(k-1,j)-f(k,k)*f(k-1,k-j); end end pcorr=diag(f)'; %提取偏相關函數 pcorr2=parcorr(x); %直接利用MATLAB工具箱計算偏相關函數 disp([pcorr(1),pcorr(2),pcorr(4),pcorr(4)]); disp([pcorr2(2),pcorr2(3),pcorr2(4),pcorr2(5)]) % 利用公式和利用MATLAB工具箱計算的偏相關值基本一致 % 0.5430 0.1911 0.0057 0.0057 % 0.5431 0.1913 0.0694 0.0056
5 ARMA模型時間序列的建模與預報
步驟:
第一:首先進行模型的識別與定價,即要判斷是AR(p),MA(q),還是ARMA(p,q)模型的類別,並估計階數p和q。其實這都是歸結到模型的定階問題。
第二:當定階后,就要對模型參數進行估計。
第三:定階與參數估計完成后,還有對模型進行檢驗,即要檢驗殘差是否為平穩白噪聲。若檢驗獲得通過,則ARMA模型建模完成。
第四:作為時間序列建模后的一個重要應用,還要討論ARMA模型的時間序列的預報。
6 MATLAB中的GARCH工具箱可以實現時間序列建模的功能。工具箱中的模型ARMAX(R,M,Nx)為ARMA模型函數。下面通過一些實例來進行建模的演示。
7 MATLAB中arima模型和arimax模型的區別
一元時間序列模型:arma和arima,具有差分和不差分的區別
多元時間序列模型:arimax,時間序列一維以上的不同時間序列,在先生生活中預測往往受很多因素的影響。
7.1 arima模型的參數說明:
7.1.1 如果差分為0的話就是arma模型。
7.1.2 創建
模式1:Md1 = arima % 創建一個0級別的ARIMA模型,也就是arima(0,0,0)
模式2:Md1 = arima(p,D,q) % 創建一個非季節性的線性時間序列模型,其中p為AR模型的階數,D為幾階差分,q為MA模型的階數
模式3:Md1 = arima(Name,Value) % 創建一個線性時間序列模型,采用增加額外選項、值的方式。Name是可選項,Value為選項的值。Name必須用(' ')這種內部引用方式。對應的格式可以是Name1,Value,Name2,Value2.....
7.1.3 創建方法:
方法一:如果直接輸入采用模式2的形式Md1 = arima(p,D,q)的方式;Md1 = arima(1,1,1) % 表示一階差分的AR1,MA1模型。但是這個模型沒有任何的參數。是屬於首先建立整個模型的結構框架的形式:
因此:輸出的也是一個對象引用的內容:
Md1 =
ARIMA(1,1,1) Model:
--------------------
Distribution: Name = 'Gaussian'
P: 2
D: 1
Q: 1
Constant: NaN
AR: {NaN} at Lags [1]
SAR: {}
MA: {NaN} at Lags [1]
SMA: {}
Variance: NaN
方法二:對應Name-Value的變量輸入方式。其實這些Name和Value的鍵和值也是這個對象里面的內容。因此這里把所有的鍵和值列出來。進行解釋一下。
鍵:'AR'
解釋:非季節自回歸的參數。默認為空NaNs
鍵:'ARLags'
解釋:與AR系數相關的正整數滯后向量。默認為1,2
鍵:'Beta'
解釋:與AR系數相關的正整數滯后向量。默認[ ];非回歸系數回歸內容
鍵:'Constant'
解釋:線性時間序列中的標量常數,也就是常數項。默認NaN;
鍵:'D'
解釋:非負整數表示的非季節性差分滯后算子多項式的次數(非季節性的一體化程度)在線性時間序列。默認0;
鍵:'Distribution'
解釋:創新過程的條件概率分布。分布是“高斯”或“T”。或者,將其指定為具有字段名稱的數據結構,以存儲分布“高斯”或“T”。如果分布是“t”,則結構也需要字段自由度來存儲自由度。默認高斯分布;
鍵:'MA'
解釋:非季節性移動平均系數對應於可逆多項式細胞載體。當未指定malags,馬是一種細胞載體的系數在滯后1,…對非季節性移動平均多項式的次數。當指定的MALags,馬是一個相當長的細胞載體與MALags的滯后相關系數。默認NaN;
鍵:'MALags'
解釋:與MA系數相關的正整數滯后向量。默認0;
鍵:'SAR'
解釋:季節AR模型。
鍵:'SARLags'
解釋:。
鍵:'SMA'
解釋:。
鍵:'SMALags'
解釋:。
鍵:'Seasonality'
解釋:
線性時間序列模型中季節性差分滯后算子多項式的非負整數。默認為0;
鍵:'Variance'
解釋:模型創新的正標量方差,或支持的條件方差模型對象(例如,GARCH模型對象)。
7.1.4 建模舉例:
比如有這么一個模型ARIMA(2,1,1)
表達式如下:
對應的MATLAB建模公式如下:
tdist = struct('Name','t','DoF',10); model = arima('Constant',0.4,'AR',{0.8,-0.3},'MA',0.5,'D',1,'Distribution',tdist,'Variance',0.15)
對應對象里面的內容如下:
model = ARIMA(2,1,1) Model: -------------------- Distribution: Name = 't', DoF = 10 P: 3 D: 1 Q: 1 Constant: 0.4 AR: {0.8 -0.3} at Lags [1 2] SAR: {} MA: {0.5} at Lags [1] SMA: {} Variance: 0.15
解釋:Constant:對應的是常數項:0.4
AR:對應的是AR模型的滯后項的參數:0.8 -0.3
MA:對應的是MA模型的參數:0.5
D:為一階差分形式
Distribution:tdist,如果加上分布,這里用一個結構體來說明,這里指的是t分布,有10個自由度。也可以不加這個分布,默認為高斯分布。
Variance:指的是常數項的方差是0.5,在有些教材中一般都是在公式下面打一個小括號,對應每一個參數的表示方差(0.5)
8 其他相關配套函數
estimate | Estimate ARIMA or ARIMAX model parameters |
filter | Filter disturbances using ARIMA or ARIMAX model |
forecast | Forecast ARIMA or ARIMAX process |
impulse | Impulse response function |
infer | Infer ARIMA or ARIMAX model residuals or conditional variances |
Display parameter estimation results for ARIMA or ARIMAX models | |
simulate | Monte Carlo simulation of ARIMA or ARIMAX models |
.
.
..................................