怎么用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

温馨提示:答案为网友推荐,仅供参考