資源簡介
用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)
- 上一篇:變槳距風力發電機組控制的研究
- 下一篇:matlab魯棒控制工具箱
評論
共有 條評論