资源描述:
《智能控制系统matlab仿真.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、智能控制系统实验报告ARMA模型ARMA(p,q)是一个线性时间序列预测模型,适用于平稳的时间序列,即对于任何时刻t,都有,E(at)=0.协方差矩阵,对于任意有。AR模型(0.1)当误差项自相关时,可以被有限阶滑动平均表示(0.2)这里是零均白噪声,协方差矩阵非奇异。结合AR过程和MA误差项,得到ARMA过程:(0.3)对于一个很大的阶数n,AR(n)接近ARMA(p,q)(0.4)从得到残差的估计值(0.5)其中利用多变量最小二乘法求解,然后使用估计值建立多变量回归模型(0.6)(0.7)(0.8)(0.9)(0.10)最小二乘
2、法求解公式,以AR(p)为例。(0.11)记(0.12)(0.13)最小化目标函数(0.14)解得(0.15)以下是仿真例题:例题1:使用AR模型预测德国西部经济数据。该数据是三元时间序列,包括投资(Investment),可支配输入(income)和消费支出(consumption)三个变量。现使用AR模型预测INCOME,将1960年到1978年的75组用于训练,其余用于测试,利用最小二乘回归估计系数矩阵代码如下:clearclcdata1=load('e1.txt');%data1=data1';data2=log(data1
3、);data3=data2(:,2:end)-data2(:,1:end-1);%差分数据[K,num]=size(data3);data=data3;T=73;recordaic=100;forp=2:-1:2clearZ;clearZc;fort=p+1:T+pY(:,t-p)=data(:,t);%构造矩阵Ymiddle1=data(:,(t-p):(t-1));middle=fliplr(middle1);Z(:,t-p)=[1;middle(:)];%构造矩阵Zend%---------------直接求伪逆%B1=Y*p
4、inv(Z)%------------------y=Y(:);middleb=inv(Z*Z')*Z;b=kron(middleb,eye(K))*y;%------------------最小二乘函数b1=regress(Y(:),kron(Z',eye(K)));B1=reshape(b,K,K*p+1)%权值矩阵%-------------B=reshape(b,K,K*p+1);%权值矩阵%B=[-0.017,-0.32,0.146,0.961,-0.161,0.115,0.934;0.016,0.044,-0.153,0
5、.289,0.050,...%0.019,-0.010;0.013,-0.002,0.225,-0.264,0.034,0.355,-0.022];fort=p+1:num%fort=T+p+1:numO(:,t-p)=data(:,t);middle2=data(:,(t-p):(t-1));middlec=fliplr(middle2);Zc(:,t-p)=[1;middlec(:)];endYc=B*Zc;%----------直接伪逆Yc1=B1*Zc;data41=Yc1+data2(:,p+1:end-1);%第三个到第
6、八十九个数dataf1=exp(data41);%反对数rmse1=(sum((data1(3,3:91)-dataf1(3,:)).^2)/(89-1))^0.5%计算均方根误差%-----------data4=Yc+data2(:,p+1:end-1);%%反差分第三个到第八十九个数dataf=exp(data4);%反对数U=dataf(:,1:T)-data1(:,p+1:T+p);sigmaU=(1/T)*U*U';aic=log(det(sigmaU))+2*p*K*K/T;ifaic7、ic=aic;m=p;Yc_b=Yc;dataf_b=dataf;endendsubplot(2,1,1)plot(1:92-1-m,Yc_b(3,:),'b',1:92-1-m,data3(3,m+1:91),'r');%差分数据画图subplot(2,1,2)plot(1:92-1-m,data1(3,m+1:91),'b',1:92-1-m,dataf_b(3,:),'r');%实际数据画图rmse=(sum((data1(3,m+1:91)-dataf(3,:)).^2)/(91-m-1))^0.5%计算均方根误差运行结果如
8、下:实验分析:效果图如下图所示上面的子图是对数差分数据预测效果,下面的子图是反差分反对数的预测效果图,预测均方根误差为25.1096.可以看出,预测效果很好。例题2:课件ARMA_AR_MA_RepresentGranger Anal