• 大小: 12KB
    文件类型: .m
    金币: 2
    下载: 1 次
    发布日期: 2021-07-20
  • 语言: Matlab
  • 标签: ARIMA  

资源简介

用MATLAB实现ARIMA模型实现某些变量对时间序列的预测

资源截图

代码片段和文件信息

%288行需要修改

P = [9.885221744 10.20403649 10.81126212 11.32143803 11.78456961 12.36376419 12.87447109 12.93952409 13.23393159 13.67602663 13.96096496 14.35589401 14.67697756 14.97024921 15.32655143 15.66344728 15.94669421 16.165401 16.37847394 16.5464483 16.70811183 16.90083282 17.02735669 17.20649544 17.39505592 17.57254919 17.7176666 17.87828918 18.03524921 18.17052462 18.22239048 18.37793086];
F = [9.885221744 10.20403649 10.81126212 11.32143803 11.78456961 12.36376419 12.87447109 12.93952409 13.23393159 13.67602663 13.96096496 14.35589401 14.67697756 14.97024921 15.32655143 15.66344728 15.94669421 16.165401 16.37847394 16.5464483 16.70811183 16.90083282 17.02735669 17.20649544 17.39505592 17.57254919 17.7176666 17.87828918 18.03524921 18.17052462 18.22239048 18.37793086]; 
%----------------------由于时间序列有不平稳趋势,进行两次差分运算,消除趋势性----------------------% 
for i=2:32 
    Yt(i)=P(i)-P(i-1); 
end 
for i=3:32 
    L(i)=Yt(i)-Yt(i-1); 
end 
L=L(3:32); 
Y=L(1:29); 

%画图
figure; 
plot(P); 
title(‘原数据序列图‘); 
hold on; 
pause  
plot(Y‘r‘); 
title(‘两次差分后的序列图和原数对比图‘); 
pause   

%--------------------------------------对数据标准化处理----------------------------------------------% 
%处理的算法 : (data - 期望)/方差
Ux=sum(Y)/29                          % 求序列均值 
yt=Y-Ux; 
b=0; 
for i=1:29
   b=yt(i)^2/29+b; 
end 
v=sqrt(b)                              % 求序列方差 
Y=yt/v;                            % 标准化处理公式 
f=F(1:29); 
t=1:32; 

%画图
figure;
plot(fY‘r‘) 
title(‘原始数据和标准化处理后对比图‘); 
xlabel(‘年份t‘)ylabel(‘GDP值的自然对数经过2次差分后的值‘); 
legend(‘原始数据 F ‘‘标准化后数据Y ‘); 
pause   
%--------------------------------------对数据标准化处理----------------------------------------------% 
 
 
%------------------------检验预处理后的数据是否符合AR建模要求,计算自相关和偏相关系数---------------% 

%---------------------------------------计算自相关系数-----------------------------------% 
R0=0;
for i=1:29 
     R0=Y(i)^2/29+R0;   %标准化处理后的数据的方差
end 

for k=1:20 
    
    %R  协方差   
    R(k)=0; 
    for i=k+1:29
        R(k)=Y(i)*Y(i-k)/29+R(k);   
    end 
end 
x=R/R0                      %自相关系数x = 协方差/方差

%画图
figure; 
plot(x) 
title(‘自相关系数分析图‘); 
pause   
%-----------------------------------计算自相关系数-------------------------------------% 
 
%-----------------------解Y-W方程,其系数矩阵是Toeplitz矩阵(多普里兹矩阵)。求得偏相关函数X-------------------

X1=x(1); 
X11=x(1); 
B=[x(1) x(2)]‘; 
x2=[1 x(1)]; 
A=toeplitz(x2);                       
X2=A\B                          %x=a\b是方程a*x =b的解
X22=X2(2) 
 
B=[x(1) x(2) x(3)]‘; 
x3=[1 x(1) x(2)]; 
A=toeplitz(x3);                       
X3=A\B 
X33=X3(3) 
 
B=[x(1) x(2) x(3) x(4)]‘; 
x4=[1 x(1) x(2) x(3)]; 
A=toeplitz(x4);                       
X4=A\B 
X44=X4(4) 
 
B=[x(1) x(2) x(3) x(4) x(5)]‘; 
x5=[1 x(1) x(2) x(3) x(4)]; 
A=toeplitz(x5);                       
X5=A\B 
X55=X5(5) 
 
B=[x(1) x(2) x(3) x(4) x(5) x(6)]‘; 
x6=[1 x(1) x(2) x(3) x(4) x(5)]; 
A=toeplitz(x6);                       
X6=A\B 
X66=X6(6) 
 
B=[x(1) x(2) x(3) x(4)

评论

共有 条评论