量化投資_MATLAB在時間序列建模預測及程序代碼
阿新 • • 發佈:2018-04-05
randn color post 序列 dia 遍歷 研究 mode 時間
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
.
.
.
.
.
.
.
.
.
.
.
..................................
量化投資_MATLAB在時間序列建模預測及程序代碼