目录
一、问题
表1:
2003年的SARS病毒,我们只需要根据几年前的数据预测出2003年在正常情况下的数据,然后和实际2003年的数据做出比较,就能进行评估
表3:
二、对例题如何评估分析思路
1.第一种
我们只需要找到商品零售业、旅游业和综合服务业的历年的的基本水平,然后分析一下如果按照正常的模式,如果没有疫情,在未来的某一年应该达到怎样的水平,然后再和实际的水平做一个比较,就可以得到定量的分析
2.第二种
我们也可以根据每年的某个月来预测2003年的某个月的数据,比如用每年2月的数据来预测2003年2月的数据
3.第三种
我们可以对每年每个月的和进行预测,然后如果要预测某个月,把这个月的数据每年占总和的比例进行预测,然后用2003年的某个月的比例乘以总和就是这个月的数据
三、模型的分析和预测
1.给出假设
2.建立灰色预测模型GM(1,1)
3.模型的求解
这里平均值是每年12个月的平均值,总共六年,六个数据
a为什么取0.4?
a先取0.5,如果发现经不起检验就适当的调高或者调低,但是范围在0~1里面
z(1)(k)是怎么得出的?
z(1)(k)=0.4*x(1)(k)+(1-0.4)*x(1)(k-1)
a和b有了之后就可以带入
带入之后把x换成t+1也就是换成2003,就能得出x的平均值为126.8826,年总值就是用12乘以平均值
四、编程实现
代码演示:
clc,clear
han1=[83.0,79.8,78.1,85.1,86.6,88.2,90.3,86.7,93.3,92.5,90.9,96.9;
101.7,85.1,87.8,91.6,93.4,94.5,97.4,99.5,104.2,102.3,101.0,123.5;
92.2,114.0,93.3,101.0,103.5,105.2,109.5,109.2,109.6,111.2,121.7,131.3;
105.0,125.7,106.6,116.0,117.6,118.0,121.7,118.7,120.2,127.8,121.8,121.9;
139.3,129.5,122.5,124.5,135.7,130.8,138.7,133.7,136.8,138.9,129.6,133.7;
137.5,135.3,133.0,133.4,142.8,141.6,142.9,147.3,159.6,162.1,153.5,155.9;
163.2,159.7,158.4,145.2,124,144.1,157,162.6,171.8,180.7,173.5,176.5]
han1(end,:)=[];%相当于han1=han1(1:6:);
m=size(han1,2);%把月份提取出来
x0=mean(han1,2);%返回x矩阵每行的平均值,其中的2代表返回行
x1=cumsum(x0)%一次累加
alpha=0.4;n=length(x0);
z1=alpha*x1(2:n)+(1-alpha)*x1(1:n-1)%求邻域生成数
Y=x0(2:n);B=[-z1,ones(n-1,1)];
ab=B\Y
k=6;
x7hat=(x0(1)-ab(2)/ab(1))*(exp(-ab(1)*k)-exp(-ab(1)*(k-1)))
z=m*x7hat
u=sum(han1)/sum(sum(han1)) %sum(han1)是每一列的数据,sum(sum(han1))是每一列加每一行总的数据,相当于每一月的均值
v=z*u
输出:
han1 =
列 1 至 11
83.0000 79.8000 78.1000 85.1000 86.6000 88.2000 90.3000 86.7000 93.3000 92.5000 90.9000
101.7000 85.1000 87.8000 91.6000 93.4000 94.5000 97.4000 99.5000 104.2000 102.3000 101.0000
92.2000 114.0000 93.3000 101.0000 103.5000 105.2000 109.5000 109.2000 109.6000 111.2000 121.7000
105.0000 125.7000 106.6000 116.0000 117.6000 118.0000 121.7000 118.7000 120.2000 127.8000 121.8000
139.3000 129.5000 122.5000 124.5000 135.7000 130.8000 138.7000 133.7000 136.8000 138.9000 129.6000
137.5000 135.3000 133.0000 133.4000 142.8000 141.6000 142.9000 147.3000 159.6000 162.1000 153.5000
163.2000 159.7000 158.4000 145.2000 124.0000 144.1000 157.0000 162.6000 171.8000 180.7000 173.5000
列 12
96.9000
123.5000
131.3000
121.9000
133.7000
155.9000
176.5000
x1 =
87.6167
186.1167
294.5917
413.0083
545.8167
691.2250
z1 =
127.0167
229.5067
341.9583
466.1317
603.9800
ab =
-0.0993
85.5985
x7hat =
162.8793
z =
1.9546e+03
u =
列 1 至 11
0.0794 0.0807 0.0749 0.0786 0.0819 0.0818 0.0845 0.0838 0.0872 0.0886 0.0866
列 12
0.0920
v =
列 1 至 11
155.2152 157.7365 146.4023 153.5421 160.1400 159.8337 165.0649 163.7924 170.5317 173.1473 169.3064
列 12
179.8394
>>
我们可以得出
v就是2003年的实际数据