灰色预测模型

来源:互联网 发布:2016网络大神新书排行 编辑:程序博客网 时间:2024/04/30 16:25

灰色预测模型主要运用小数据的预测问题,比如可以由近期的数据预测出未来的数据

对于灰色预测的思想这里不再写了,到处可以找到详细解释,这里主要对于一个具体事例给出matlab代码(附上详细注释)


%近十年数据89677,99215,109655,120333,135823,159878,182321,209407,246619,300670%预测未来五年数据clc,clear;syms a b;c=[a b]';A=[89677,99215,109655,120333,135823,159878,182321,209407,246619,300670];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+5)  %只推测后10个数据,可以从此修改    F(i)=(A(1)-b/a)/exp(a*(i-1))+b/a;endG=[];G(1)=A(1);for i=2:(n+5)  %只推测后10个数据,可以从此修改    G(i)=F(i)-F(i-1);  %得到预测出来的数据endt1=1999:2008;t2=1999:2013;  %多10组数据Gh=plot(t1,A,'o',t2,G,'*'); %原始数据与预测数据的比较set(h,'LineWidth',1.5);