1. 程式人生 > >量化投資_MATLAB在時間序列建模預測及程序代碼

量化投資_MATLAB在時間序列建模預測及程序代碼

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在時間序列建模預測及程序代碼