matlab量化投资代码,量化投资_MATLAB在时间序列建模预测及程序代码

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

.

.

.

.

.

.

.

.

.

.

.

..................................

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值