一、简介

1 名称由来

灰色模型(Gray Model),邓聚龙教授1982年提出。
常见系统分类:
白色系统是指一个系统的内部特征是完全 已知的,即系统的信息是完全充分的。
黑色系统是指一个系统的内部信息对外界来说是一无所知的,只能通过它与外界的联系来加以观测研究。
灰色系统内的一部分信息是已知的,另一部分信息是未知的,系统内各因素间有不确定的关系。【预测模型】基于灰度预测之房价的预测matlab源码_预测模型
2 算法原理【预测模型】基于灰度预测之房价的预测matlab源码_matlab_02【预测模型】基于灰度预测之房价的预测matlab源码_matlab_03【预测模型】基于灰度预测之房价的预测matlab源码_matlab_04【预测模型】基于灰度预测之房价的预测matlab源码_预测模型_05

二、源代码

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
axis=[1999.00,2000.00,2001.00,2002.00,2003.00,2004.00,2005.00,2006.00,2007.00,2008.00,2009.00,2010.00];%年份
a=[3422.00,3565.00,3866.00,4134.00,5118.00,5855.00,6842.00,7196.00,10320.00,13411,15800,21600];%房价
a1=leija(a,12);%得到X1(k)
f=[0];
bf=cat(2,f,a1);
bf2=cat(2,a1,f);
bf3=ones(11,1);
B=-0.5*(bf+bf2);
B=B(2:12)';
B=cat(2,B,bf3);%得到矩阵B
Y=a(2:12)';%得到矩阵Y
A=(inv(B'*B))*B'*Y;%得到矩阵A
anum=A(1)
bnum=A(2)%两个系数
a1yuce=zeros(1,11);
for i=0:11
    a1yuce(i+1)=(a(1)-bnum/anum)*exp(-anum*i)+bnum/anum;
end %生成X1(k)预测值
ayuce=leijian(a1yuce,12);%生成X(k)预测值
 
plot (axis,ayuce,'g')
hold on  
plot(axis,a,'r')%做出图形
hold on
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%求的绝对残差序列
chazhi=(ayuce-a).^2;
chazhi=sqrt(chazhi);
 
%相对残差序列
xiangdui=chazhi./a;
%平均相对残差
meanxd=mean(xiangdui);
%求关联度
ayuce1=ayuce./ayuce(1);
a1=a./a(1);
zuix=zeros(1,12);
zuid=zeros(1,12);
for i=1:12
zuix(i)=min(sqrt((ayuce1(i)-a1).^2));
zuid(i)=max(sqrt((ayuce1(i)-a1).^2));
end
zuixiao=min(zuix');
zuida=max(zuid');
e=zeros(1,12);
for i=1:12
    e(i)=(zuixiao+0.5*zuida)/(abs(ayuce1(i)-a1(i))+0.5*zuida);
end
R=mean(e)
%后验差检验
%原始序列的均值
meana=mean(a);
%原始序列的均方差
S1=sqrt(sum((a-meana).^2)/11);
%残差的均值
meanchazhi=mean(chazhi);
S2=sqrt(sum((chazhi-meanchazhi).^2)/11);
%方差比
C=S2/S1
%残差概率
k=0;
for i=1:12
    if   abs((chazhi(i)-meanchazhi))<0.6745*S1
        k=k+1;
    end
end
P=k/12
%GM(1,1)残差模型
eyuce=yuce(e,12);
ayuce=ayuce-eyuce;
%plot(axis,ayuce,'k')
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%求的绝对残差序列
chazhi=(ayuce-a).^2;
chazhi=sqrt(chazhi);
 
%相对残差序列
xiangdui=chazhi./a;
%平均相对残差
meanxd=mean(xiangdui);
%求关联度
ayuce1=ayuce./ayuce(1);
a1=a./a(1);
zuix=zeros(1,12);
zuid=zeros(1,12);
for i=1:12
zuix(i)=min(sqrt((ayuce1(i)-a1).^2));
zuid(i)=max(sqrt((ayuce1(i)-a1).^2));
end
zuixiao=min(zuix');
zuida=max(zuid');
e=zeros(1,12);
for i=1:12
    e(i)=(zuixiao+0.5*zuida)/(abs(ayuce1(i)-a1(i))+0.5*zuida);
end
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75.
  • 76.
  • 77.
  • 78.
  • 79.
  • 80.
  • 81.
  • 82.
  • 83.
  • 84.
  • 85.
  • 86.
  • 87.
  • 88.
  • 89.
  • 90.
  • 91.
  • 92.
  • 93.
  • 94.
  • 95.
  • 96.

三、运行结果

【预测模型】基于灰度预测之房价的预测matlab源码_matlab_06【预测模型】基于灰度预测之房价的预测matlab源码_matlab_07【预测模型】基于灰度预测之房价的预测matlab源码_预测模型_08