matlab算法记录学习

1、 残差自相关性分析,以及如何消除残差

详情建模数第六章

clc,clear,close ally=[20.96;21.40;21.96;21.52;22.39;22.76;23.48;23.66;24.10;24.01;24.54;24.30;25.00;25.64;26.36;26.98;27.52;27.78;28.24;28.78];x=[127.3;130.0;132.7;129.4;135.0;137.1;141.2;142.8;145.5;145.3;148.3;146.4;150.2;153.1;157.3;160.7;164.2;165.6;168.7;171.7]; rstool(x,y)%数据Dw检验,相关性检验,函数考虑时间,证明时间是否有滞后性a=ones(numel(x),1);%有多少个数据,要改b=0.176*x-1.455*a;%预测函数值,要改c=y-b   % 残差=实际值-预测值c1=c(2:end,1);%残差e(t)c2=c(1:end-1,1);%e(t-1)plot(c1,c2,'*')%残差散点图xlabel('e(i-1)'),ylabel('e(i)')hold on%画横纵坐标d=0;d1=-0.15:0.001:0.25;plot(d,d1,'.r')hold onplot(d1,d,'.r')% DW的程序:num=c(1:19)'*c(2:20);den=sum(c(2:20).^2);p = num/den%p值DW=2*(1-p)%DW<dl,残差存在明显自相关,接着消除随机误差项自相关后的回归模型。
clc,clear,close ally=[20.96;21.40;21.96;21.52;22.39;22.76;23.48;23.66;24.10;24.01;24.54;24.30;25.00;25.64;26.36;26.98;27.52;27.78;28.24;28.78];x=[127.3;130.0;132.7;129.4;135.0;137.1;141.2;142.8;145.5;145.3;148.3;146.4;150.2;153.1;157.3;160.7;164.2;165.6;168.7;171.7]; rstool(x,y)%数据Dw检验,相关性检验,函数考虑时间,证明时间是否有滞后性a=ones(numel(x),1);%有多少个数据,要改b=0.176*x-1.455*a;%预测函数值,要改c=y-b   % 残差=实际值-预测值c1=c(2:end,1);%残差e(t)c2=c(1:end-1,1);%e(t-1)plot(c1,c2,'*')%残差散点图xlabel('e(i-1)'),ylabel('e(i)')hold on%画横纵坐标d=0;d1=-0.15:0.001:0.25;plot(d,d1,'.r')hold onplot(d1,d,'.r')% DW的程序:num=c(1:19)'*c(2:20);den=sum(c(2:20).^2);p = num/den%p值DW=2*(1-p)%DW<dl,残差存在明显自相关,接着消除随机误差项自相关后的回归模型。

2、时间序列线性二次平均预测法

clc,clear,close all;x1=1:1:39;%输入源数据for i=1:numel(x1)-2    m1(i+2)=(x1(i)+x1(i+1)+x1(i+2))/3;%一次移动平均endfor i=3:numel(x1)-2    m2(i+2)=(m1(i)+m1(i+1)+m1(i+2))/3;%二次移动平均endm1=m1';m2=m2';a=2*m1-m2;b=m1-m2;%预测方程y(t+T)=at+bt*T,看书532页at=a(39,1)%bt=b(39,1)for T=1:6    y(:,T)=at+bt*T;%预测未来数后六位endy

3、 灰度预测模型

clearsyms a b;c=[a b]';A=[174    179    183    189    207 234    220.5 256 270 300 400];%源数据B=cumsum(A);  % 原始数据累加n=length(A);for i=1:(n-1)    C(i)=(B(i)+B(i+1))/2;  % 生成累加矩阵end% 计算待定参数的值D=A;D(1)=[];D=D';E=[-C;ones(1,n-1)];c=inv(E*E')*E*D;c=c';a=c(1);b=c(2);% 预测后续数据F=[];F(1)=A(1);for i=2:(n+10)    F(i)=(A(1)-b/a)/exp(a*(i-1))+b/a ;endG=[];G(1)=A(1);for i=2:(n+10)    G(i)=F(i)-F(i-1); %得到预测出来的数据,预测十年end t1=1995:1995+n-1;t2=1995:1995+n-1+10;G, a, b % 输出预测值,发展系数和灰色作用量plot(t1,A,'o',t2,G)  %原始数据与预测数据的比较

关键字:matlab, 残差, end, 预测

版权声明

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部