① matlab怎麼進行時間序列分析arima模型
時間序列及其分析概述 ? 時間序列 ? 時間序列的特點及其建立 ? 時間序列分析的概念、特徵和作用 ? 時間序列分解 ? 時間序列分析的相關特徵量 ? 時間序列分析方法 2/74 1.1 時間序列 自然界以及社會生活的各種事物都在運動、變化和發展著,將它們按時 間順序記錄下來,就可以得到各種各樣的時間序列。對時間序列進行分析研 究,可以揭示事物運動、變化和發展的內在規律,對於人們正確認識事物並 由此做出科學的決策具有重要的現實意義。 1.1.1 時間序列定義 定義 1:時間序列就是一組統計數據,依其發生時間的先後順序排成的 序列。 定義 2:同一現象在不同時間上的相繼觀察值排列而成的序列稱為時間 序列。 定義 3:對某一個或一組變數 x (t ) 進行觀察測量,將在一系列時刻 t1 ? ? ? t n 所 得 到 的 離 散 數 據 組 成 的 序 列 集 合 { x (t1 ), ? , x (t n )},稱為時間序列,記為 X ? { x (t1 ),? , x (t n )}。 這種有時間意義的序列也稱為動態數據 3/74 1.1 時間序列 時間序列取值一般有兩種方式: (1) X 取值觀測時間點處的瞬間值 (2) X 取值觀測時間點期間的累計值 有些數據雖然不是時間序列,數據與時間無直接關系,但可以近 似看做時間序列。因此,時間序列的廣義定義為:有先後順序的數 據通稱為時間序列。
② 你好 請問怎麼用matlab確定ARMA模型的階數,謝謝!
%下面要對差分以後的序列進行擬合和預測,求出最好的階數
z=[DX;zeros(12,1)];
z=iddata(z);
test=[];
for p=1:12
for q=1:12
m=armax(z(1:200),[p q]);
AIC=aic(m);
test=[test;p q AIC];
end
end
for k=1:size(test,1)
if test(k,3)==min(test(:,3))
p_test=test(k,1);
q_test=test(k,2);
break;
end
end
%擬合
m1=armax(z(1:200),[p_test q_test]);
figure(5);
e = resid(m1,z);
plot(e);
set(gca,'Xlim',[0 ls]);
figure(6);
subplot(2,1,1)
autocorr(e.outputdata)
subplot(2,1,2)
parcorr(e.outputdata)
set(gca,'Xlim',[0 ls]);
%預測過程
pr=predict(m1,z,12);
po=pr.outputdata;
figure(7)
plot(po,'r')
hold on
plot(y,'b');
set(gca,'Xlim',[0 ls]);
③ 用matlab 做時間序列分析應該用什麼工具箱
要把抄這個工具箱添加進matlab 中就行了。具體方法:如果是Matlab安裝光碟上的工具箱,重新執行安裝程序,選中即可。
如果是單獨下載的工具箱,一般情況下僅需要把新的工具箱解壓到某 個目錄,然後用ddpath(對於多個目錄的使用genpath()或者pathtool添 加工具箱的路徑,然後用which newtoolbox_command.m來檢驗是否可 以訪問。
如果能夠顯示新設置的路徑,則表明該工具箱可以使用了。
具體請看工具箱自己代的README文件。
④ 如何利用matlab確定時間序列ARMA模型的階數
滿意請採納
%下面要對差分以後的序列進行擬合和預測,求出最好的階數
z=[DX;zeros(12,1)];
z=iddata(z);
test=[];
for p=1:12
for q=1:12
m=armax(z(1:200),[p q]);
AIC=aic(m);
test=[test;p q AIC];
end
end
for k=1:size(test,1)
if test(k,3)==min(test(:,3))
p_test=test(k,1);
q_test=test(k,2);
break;
end
end
%擬合
m1=armax(z(1:200),[p_test q_test]);
figure(5);
e = resid(m1,z);
plot(e);
set(gca,'Xlim',[0 ls]);
figure(6);
subplot(2,1,1)
autocorr(e.outputdata)
subplot(2,1,2)
parcorr(e.outputdata)
set(gca,'Xlim',[0 ls]);
%預測過程
pr=predict(m1,z,12);
po=pr.outputdata;
figure(7)
plot(po,'r')
hold on
plot(y,'b');
set(gca,'Xlim',[0 ls]);
⑤ 如何用matlab做時間序列預測模型
時間序列是按時間順序排列的、隨時間變化且相互關聯的數據序列。分析時間序列的方法構成數據分析的一個重要領域,即時間序列分析。代碼
⑥ 怎麼用matlab確定ARMA模型的階數
matlab 10版以上是有時間序列工具箱的,其它的界面操作,自己去學吧。clc,clear randn('state',sum(clock)); %初始化隨機數發生器 elps=randn(1,10000); %產生 10000個服從標准正態分布的隨機數x(1)=0; %。
>>y=[...]';%注意數據要是列向量哦,>>z=iddata(y);%識別數據,>>armax(z,'na',p,'nc',q);%其中p,q分別是是AR和MA的階數。
比如ARMA(2,2),y(2) = a1*y(1) + e(2),y(3) = a1*y(2)+a2*y(1)+e(3)+b1*e(2),y(4)= a1*y(3)+a2*y(2)+e(4)+b1*e(3)+b2*e(2),y(5)= a1*y(4)+a2*y(3)+e(5)+b1*e(4)+b2*e(3)
具體的,你可以把前面沒有的比如當y(1)時候沒有y(0)和y(-1)
你可以把它們設做NaN然後轉化NaN為0
⑦ matlab高手進,關於ARMA時間序列預測的問題
P是AR(自回歸)的階數 D是差分階數 Q是MA(移動平均)階數,模型ARMA(p,d,q):x1=A1*x(t-1)+.....Ap*x(t-p)+ut+B1*u(t-1)+...Bq*u(t-q)