GM(1,1)模型
- 格式:doc
- 大小:95.50 KB
- 文档页数:6
年份 0 1 2 3 4 5 6 7 8 9
数据 142 340 200 500 900 800 490
980 463 1100
建立GM(1,1)预测模型
原始数据列为:
(0)1423402005009008004909804631100X
(1)累加生成数列为:
(1) 142 482 682 1182 2082 2882 3372 4352 4815 5915X
(2)构造数据矩阵B和数据向量Y:
(1)(1)(1)1()[()(1)]2ZkXkXk
0 312 582 932 1632 z =2482 3127 3862 4583.5 5365
-312 1 -582 1 -932 1 -1632 1 -2482 1 -3127 1 -3862 1 -4583.5 1 -5365 1B
340
200
500
Y= 900
800
490
980
463
1100
(3)计算系数
1ˆ()TTBBBY alpha =
-0.1062
371.6018
(4)得出预测模型
11d0.1062371.6018dXXt
10ˆ11atXkXeaa
u = -3500.5
v =3642.5
1-0.1062ˆ1-3500.53642.5tXke
(5)进行参差检验
1)根据预测公式,计算 (1)ˆX
u =-3500.5
v =3642.5
10ˆ11akXkXeaa
1-0.1062ˆ1-3500.53642.5tXke
X2 =[ 0.1420 0.5499 1.0036 1.5080 2.0690
2.6927 3.3863 4.1576 5.0153 5.9690
7.0296]
2)累减生成序列 (0)ˆX 得X3=[0.1420 0.4079 0.4536 0.5044
0.5609 0.6238 0.6936 0.7713 0.8577
0.9537 1.0605]
而原始数据为
(0)1423402005009008004909804631100X
3)计算绝对参差和相对参差序列
绝对参差序列
daita0 =[0 67.9459 253.6339 4.4388
339.0664 176.2445 203.6132 208.7053
394.6761 146.2682]
(0){0 67.9459 253.6339 4.4388 339.0664 176.2445 203.6132 208.7053 394.6761 146.2682}相对参差序列
kesi =[ 0 0.1998 1.2682 0.0089
0.3767 0.2203 0.4155 0.2130
0.8524 0.1330]
{0,19.98%,126.82%,0.89%,37.67%,22.03%41.55%21.3%85.24%13.3%},,,,
平均相对参差
meankesi =0.3688
36.88%>0.01
且613.3%0.01模型精确度不高
(6)进行关联度检验:
1)计算绝对参差序列
(0){0 67.9459 253.6339 4.4388 339.0664 176.2445 203.6132 208.7053 394.6761 146.2682}2)计算关联系数
)max()max()min()0()0()0()0()(k
aita =[1.0000 0.7439 0.4376 0.9780 0.3679 0.5282 0.4922 0.4860
0.3333 0.5743]
3)计算关联度
101)(101kkr
meanaita =0.5941 611()6krk=0.5941<0.6 不满意(0.5)
(7)进行后验差检验
1)计算X0均值、均方差
X0mean=mean(X0)=591.5000
X0std=std(X0) = 333.6516
2)计算参差均值、均方差
daita0mean=mean(daita0)= 179.4592
daita0std=std(daita0)= 131.2836
3)计算C=daita0std/X0std
C = 0.3935
4)计算小参差概率
010.6745SS S0 =225.0480
|()|kk e =[179.4592 111.5134
74.1747 175.0204 159.6072 3.2147 24.1540 29.2461 215.2168
33.1910]
对所有的e都小于S0,故小参差概率
0()10.95kPS P=1>0.8
而同时 C = 0.3935<0.5,故预测模型是合格的
X0=[142 340 200 500 900 800 490 980 463 1100];
X1(1)=X0(1)
for k=2:10
X1(k)=X1(k-1)+X0(k)
end
for k=2:10
z(k)=(1/2)*(X1(k)+X1(k-1))
end
B=[(-z(2:10))' ones(9,1)]
Y=(X0(2:10))'
alpha=inv(B'*B)*B'*Y
u=alpha(2)/alpha(1)
v=X0(1)-u
u=alpha(2)/alpha(1)
v=X0(1)-u
for n=0:10
X2(n+1)=v*exp(-alpha(1)*n)+u
end
X2
X3(1)=X2(1)
for m=1:10
X3(m+1)=X2(m+1)-X2(m)
end
daita0=abs(X0-X3(1:10))
kesi=daita0./X0
meankesi=mean(kesi)
aita=(min(daita0)+0.5*max(daita0))./(daita0+0.5*max(daita0))
meanaita=mean(aita)
X0mean=mean(X0)
X0std=std(X0)
daita0mean=mean(daita0)
daita0std=std(daita0) C=daita0std/X0std
S0=0.6745*X0std
e=abs(daita0-daita0mean)
P=length(find(e