目录
灰色预测的主要特点是模型使用的不是原始数据序列,而是生成的数据序列。其核心体系是灰色模型( Grey Model ,简称 GM ),即对原始数据作累加生成(或其它方法生成)得到近似的指数规律再进行建模的方法。优点是不需要很多的数据,一般只需要4个数据就够,能解决历史数据少、序列的完整性及可靠性低的问题;能利用微分方程来充分挖掘系统的本质,精度高;
能将无规律的原始数据进行生成得到规律性较强的生成序列,运算简便,易于检验,具有不考虑分布规律,不考虑变化趋势。缺点是只适用于中短期的预测,只适合指数增长的预测。
GM(1,1)表示模型是一阶微分方程,且只含1个变量的灰色模型。
定义1:已知参考数据列: ,一次累加生成序列(1-AGO)
1)对原始数列作一次累加,得
5)求生成序列预测值及模型还原值,令k=1,2,3,4,5,6;
由式(15.7)的时间响应函数可计算得,其中取,
由,取k=1,2,3,4,5,6,得
经验证,该模型的精度较高,可以进行预测和预报。
代码如下,所示:
- x0=[71.1 72.4 72.4 72.1 71.4 72.0 71.6]'; %注意这里为列向量
- n=length(x0);
- lamda=x0(1:n-1)./x0(2:n) %计算级比
- range=minmax(lamda') %计算级比的范围
- x1=cumsum(x0) %累加运算
- B=[-0.5*(x1(1:n-1)+x1(2:n)),ones(n-1,1)];
- Y=x0(2:n);
- u=B\Y %拟合参数u(1)=a,u(2)=b
- syms x(t)
- x=dsolve(diff(x)+u(1)*x==u(2),x(0)==x0(1)); %求微分方程的符号解
- xt=vpa(x,6) %以小数格式显示微分方程的解
- yuce1=subs(x,t,[0:n-1]); %求已知数据的预测值
- yuce1=double(yuce1); %符号数转换成数值类型,否则无法作差分运算
- yuce=[x0(1),diff(yuce1)] %差分运算,还原数据
- epsilon=x0'-yuce %计算残差
- delta=abs(epsilon./x0') %计算相对误差
- rho=1-(1-0.5*u(1))/(1+0.5*u(1))*lamda' %计算级比偏差值,u(1)=a
结果:
-
- lamda =
-
- 711/724
- 1
- 724/721
- 103/102
- 119/120
- 180/179
-
-
- range =
-
- 711/724 103/102
-
-
- x1 =
-
- 711/10
- 287/2
- 2159/10
- 288
- 1797/5
- 2157/5
- 503
-
-
- u =
-
- 50/21333
- 15476/213
-
-
- xt =
-
- 31000.0 - 30928.9*exp(-0.00234379*t)
-
-
- yuce =
-
- 1 至 5 列
-
- 711/10 4996/69 9174/127 10738/149 9203/128
-
- 6 至 7 列
-
- 4519/63 13239/185
-
-
- epsilon =
-
- 1 至 5 列
-
- 0 -29/5051 1523/9300 121/3681 -472/947
-
- 6 至 7 列
-
- 790/2927 89/2353
-
-
- delta =
-
- 1 至 5 列
-
- 0 13/163931 89/39347 18/39481 67/9598
-
- 6 至 7 列
-
- 17/4535 41/77612
-
-
- rho =
-
- 1 至 5 列
-
- 62/3061 25/10679 -11/6077 -61/8199 171/16049
-
- 6 列
-
- -36/11137
-
- >>