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
.
.
.
.
.
.
.
.
.
.
.
..................................