資源簡介
在matlab中實(shí)現(xiàn)ARIMA時(shí)間序列預(yù)測。函數(shù)形式如下:
function [result] = ARIMA_algorithm(data, Periodicity, ACF_P, PACF_Q, n)
其中data為預(yù)測所用的數(shù)據(jù),為一維列向量;Periodicity為數(shù)據(jù)的周期;ACF_P和PACF_Q分別是p值和q值;n為想要預(yù)測的數(shù)據(jù)的個(gè)數(shù)。所返回的結(jié)果result是預(yù)測出來的數(shù)據(jù)(一維列向量),同時(shí)會(huì)畫出預(yù)測數(shù)據(jù)的折線圖。
代碼片段和文件信息
function?[result]?=?ARIMA_algorithm(data?Periodicity?ACF_P?PACF_Q?n)
m1?=?length(data);
%the?number?of?raw?data
for?i?=?Periodicity+1:m1
????y(i-Periodicity)?=?data(i)-data(i-Periodicity);
end
%eliminating?the?periodicity
w?=?diff(y);
%first-order?differential?for?eliminating?the?Trending
m2?=?length(w);
%the?number?of?data?after?first-order?differential
k?=?0;
%the?number?of?initial?exploration?models
for?i?=?0:ACF_P
????for?j?=?0:PACF_Q
????????if?i?==?0?&&?j?==?0
????????????continue
????????elseif?i?==?0
????????????ToEstMd?=?arima(‘MALags‘1:j‘Constant‘0);
????????elseif?j?==?0
????????????ToEstMd?=?arima(‘ARLags‘1:i‘Constant‘0);
????????else
????????????ToEstMd?=?arima(‘ARLags‘1:i‘MALags‘1:j‘Constant‘0);
????????end
????????%specify?the?structure?of?t
評(píng)論
共有 條評(píng)論