
统计预测和决策实验指导书
统计预测和决策 实验指导书

目录实验一趋势外推法11.1实验目的与要求.1.1.1实验目的1.1.2实验要求1.2二次多项式曲线模型11.2.1方法原理及建模步骤11.2.2模型应用.241.3三次多项式曲线模型41.3.1方法原理及建模步骤-1.3.2模型应用511.4指数曲线模型71.4.1方法原理及其建模步骤.81.4.2模型应用,实验二灰色预测法11112.1实验目的与要求112.1.1实验目的.112.1.2实验要求112.2GM(1,1)模型.112.2.1方法原理及其建模步骤142.2.2模型应用19实验三预测精度测定与评价193.1实验目的与要求,...193.1.1实验目的..193.1.2实验要求..193.2几种常用的测定模型精度的方法193.2.1精度测定的评价指标3.2.2评价指标在模型精度检验中的应用2024实验四多目标决策法.244.1实验目的与要求,.244.1.1实验目的244.1.2实验要求244.2层次分析法.244.2.1方法原理及其建模步骤4.2.2模型应用27
目 录 实验一 趋势外推法 . 1 1.1 实验目的与要求. 1 1.1.1 实验目的 . 1 1.1.2 实验要求 . 1 1.2 二次多项式曲线模型. 1 1.2.1 方法原理及建模步骤 . 1 1.2.2 模型应用 . 2 1.3 三次多项式曲线模型. 4 1.3.1 方法原理及建模步骤. 4 1.3.2 模型应用 . 5 1.4 指数曲线模型. 7 1.4.1 方法原理及其建模步骤. 7 1.4.2 模型应用. 8 实验二 灰色预测法 . 11 2.1 实验目的与要求. 11 2.1.1 实验目的. 11 2.1.2 实验要求 . 11 2.2 GM(1,1)模型. 11 2.2.1 方法原理及其建模步骤 . 11 2.2.2 模型应用 . 14 实验三 预测精度测定与评价 . 19 3.1 实验目的与要求. 19 3.1.1 实验目的 . 19 3.1.2 实验要求 . 19 3.2 几种常用的测定模型精度的方法 . 19 3.2.1 精度测定的评价指标. 19 3.2.2 评价指标在模型精度检验中的应用. 20 实验四 多目标决策法 . 24 4.1 实验目的与要求. 24 4.1.1 实验目的 . 24 4.1.2 实验要求 . 24 4.2 层次分析法. 24 4.2.1 方法原理及其建模步骤 . 24 4.2.2 模型应用 . 27

实验一趋势外推法1.1实验目的与要求1.1.1实验目的理解应用趋势外推法的两个假定条件,掌握多项式曲线外推法模型和指数曲线模型的参数估计方法。1.1.2实验要求可以根据时间序列数据资料散点图的走向趋势,选择恰当的曲线方程利用最小二乘法或拟合法(三和法)等来确定待定的参数,建立曲线预测模型,并用它进行预测的方法。1.2二次多项式曲线模型1.2.1方法原理及建模步骤(一)建模原理二次多项式曲线预测模型为:j,=b +bt+b,t?设有一组统计数据,,J,令Q(b,b,b,)=Z(y,-j) =Z(y,-bo-bt-b,t2)°=最小值1=l=根据多元函数求最值的原理,得:-
1 实验一 趋势外推法 1.1 实验目的与要求 1.1.1 实验目的 理解应用趋势外推法的两个假定条件,掌握多项式曲线外推法模型和指 数曲线模型的参数估计方法。 1.1.2 实验要求 可以根据时间序列数据资料散点图的走向趋势,选择恰当的曲线方程, 利用最小二乘法或拟合法(三和法)等来确定待定的参数,建立曲线预测模 型,并用它进行预测的方法。 1.2 二次多项式曲线模型 1.2.1 方法原理及建模步骤 (一)建模原理 二次多项式曲线预测模型为: 2 0 1 2 ˆ t y b bt b t 设有一组统计数据 1 2 , , , n y y y ,令 2 2 2 0 1 2 0 1 2 1 1 ( , , ) ( ) ( ) ˆ 最小值 n n t t t t t Q b b b y y y b b t b t 根据多元函数求最值的原理,得:

[00 =-22(y-b -br +br)=0 Ob.00--22(-b-b1+br)=0ab.00--22-b-b +br) =0Ob,经整理可得:[Zy=nb+bt+b,Ey=bEi+b2+bEtZty=bZ?+bE+hZi解这个三元一次方程便可求得参数bo、b和b,。(二)建模步骤第一步、通过绘制散点图和计算差分,初步确定预测模型;第二步、求模型的参数;第三步、进行预测和确定预测的置信区间。1.2.2模型应用二次多项式曲线模型的应用,以《统计预测和决策》第三版71页例题中的实际数据为例,其建模过程的MATLAB程序如下。某商店某种产品的销售量如下年份199920002001200220042003200520062007销售量/万件10.018.025.030.535.038.040.039.538.0试预测2008年的销售量,并要求在90%的概率保证程度下,给出预测的置信区间。模型应用的MATLAB程序代码disp(输入建模数据序列:)y=[10.0 18.0 25.030.535.0 38.0 40.0 39.5 38.0]n=length(y) ;2
2 ( ) ( ) ( ) 2 0 1 2 0 2 0 1 2 1 2 2 0 1 2 2 2 0 2 0 2 0 Q y b b t b t b Q y b b t b t t b Q y b b t b t t b 经整理可得: 2 0 1 2 2 3 0 1 2 2 2 3 4 0 1 2 y nb b t b t ty b t b t b t t y b t b t b t 解这个三元一次方程便可求得参数 0 1 2 b b b 、 和 。 (二)建模步骤 第一步、通过绘制散点图和计算差分,初步确定预测模型; 第二步、求模型的参数; 第三步、进行预测和确定预测的置信区间。 1.2.2 模型应用 二次多项式曲线模型的应用,以《统计预测和决策》第三版 71 页例题中 的实际数据为例,其建模过程的 MATLAB 程序如下。 某商店某种产品的销售量如下 年份 1999 2000 2001 2002 2003 2004 2005 2006 2007 销售量/万件 10.0 18.0 25.0 30.5 35.0 38.0 40.0 39.5 38.0 试预测 2008 年的销售量,并要求在 90%的概率保证程度下,给出预测的置信 区间。 模型应用的 MATLAB 程序代码 disp('输入建模数据序列:') y=[10.0 18.0 25.0 30.5 35.0 38.0 40.0 39.5 38.0] n=length(y);

t=linspace(-(n-1)/2,(n-1)/2,n);A=[sum(t)sum(t.2)nsum(t)sum(t.3)sum(t.2)sum(t.~2)sum(t.3)sum(t. ~4)J;B=[sum (y)sum(t.*y)sum((t. 2).*y)]:X=inv(A)*B;disp(输出二次多项式曲线模型y=b0+bl*t+b2*t_2中的参数b0、bl、b2:b0=x(1, 1)b1=x(2, 1)b2=x (3, 1)disp(输出二次多项式曲线模型的拟合值:)y0=b0+bl.*t+b2.*t.2disp(输出样本标准差:)SE=[(sum((y-y0).2))/(n-3)]~(1/2)disp(输出平均相对误差绝对值:")MAPE=sum(abs(y-yO)/y)/nfigure%t=linspace(1999,2007,9);t=linspace(1,n,n) ;yl=y;y2=y0;plot(t,yl,'k-*",t,y2,'b-s')xlabel(时间')ylabel(销售量(单位:万件))title(二次多项式曲线模型的拟合曲线)legend(实际值,模型计算值”,2)disp(输出模型的预测值:)t=(n-1)/2+1y0=b0+bl.*t+b2.*t.~23
3 t=linspace(-(n-1)/2,(n-1)/2,n); A=[ n sum(t) sum(t.^2) sum(t) sum(t.^2) sum(t.^3) sum(t.^2) sum(t.^3) sum(t.^4)]; B=[sum(y) sum(t.*y) sum((t.^2).*y)]; X=inv(A)*B; disp('输出二次多项式曲线模型 y=b0+b1*t+b2*t^2 中的参数 b0、b1、b2:') b0=X(1,1) b1=X(2,1) b2=X(3,1) disp('输出二次多项式曲线模型的拟合值:') y0=b0+b1.*t+b2.*t.^2 disp('输出样本标准差:') SE=[(sum((y-y0).^2))/(n-3)]^(1/2) disp('输出平均相对误差绝对值:') MAPE=sum(abs(y-y0)/y)/n figure %t=linspace(1999,2007,9); t=linspace(1,n,n); y1=y; y2=y0; plot(t,y1,'k-*',t,y2,'b-s') xlabel('时间') ylabel('销售量(单位:万件)') title('二次多项式曲线模型的拟合曲线') legend('实际值','模型计算值',2) disp('输出模型的预测值:') t=(n-1)/2+1 y0=b0+b1.*t+b2.*t.^2

二次多项式曲线模型的拟合曲线4035302520喜1510#0235467891时间练习题《统计预测和决策》95页思考与练习的第7题。1.3三次多项式曲线模型1.3.1方法原理及建模步骤(一)建模原理三次多项式曲线预测模型为j,=b+bt+b,t+b,t设有一组统计数据J,J2,…,,令Q(bs,b,b,b,)=Z(y,-)-Z(y,-b -bt-b,t2-b,t)=最小值(=ltsl与二次多项式一样,通过多元函数求最值的思想可以得到以下方程组,4
4 练习题 《统计预测和决策》95 页'思考与练习'的第 7 题。 1.3 三次多项式曲线模型 1.3.1 方法原理及建模步骤 (一)建模原理 三次多项式曲线预测模型为 2 3 0 1 2 3 ˆ t y b b t b t b t 设有一组统计数据 1 2 , , , n y y y ,令 2 2 3 2 0 1 2 3 0 1 2 3 1 1 ( , , , ) ( ) ( ) ˆ 最小值 n n t t t t t Q b b b b y y y b b t b t b t 与二次多项式一样,通过多元函数求最值的思想可以得到以下方程组

y=nb+bt+bt?+btZy=bt+bE?+bZr+bZty=bt+b+b4+btZty=br+hEt+b,r +bt解这个三元一次方程就可求得bo、b、b,、b四个参数。(二)建模步骤第一步、通过绘制散点图和计算差分,初步确定预测模型;第二步、求模型的参数;第三步、进行预测和确定预测的置信区间。1.3.2模型应用三次多项式曲线模型的应用,以《统计预测和决策》第三版75页例题中的实际数据为例,其建模过程的MATLAB程序如下。某市2001~2007年棉布产量时间序列资料如下表所示,试预测2009年的棉布产量。年份2001200220032004200520062007252340374379375385430棉布产量(亿米)34588-41045一阶差分--5429-91435二阶差分一三阶差分25202321-模型应用的MATLAB程序代码disp(输入建模数据序列:")y=[252340374379375385430]n=length(y) ;t=linspace(-(n-1)/2, (n-1)/2,n) :A=[sum(t. 2)nsum(t)sum(t. 3)sum(t. 4)sum(t)sum(t. 2)sum(t. 3)sum(t. 2)sum(t. 3)sum(t. 4)sum(t. 5)sum(t. 3)sum(t. 4)sum(t. 5)sum(t. 6)J;5
5 2 3 0 1 2 3 2 3 4 0 1 2 3 2 2 3 4 5 0 1 2 3 3 3 4 5 6 0 1 2 3 y nb b t b t b t ty b t b t b t b t t y b t b t b t b t t y b t b t b t b t 解这个三元一次方程就可求得 0 1 2 3 b b b b 、 、 、 四个参数。 (二)建模步骤 第一步、通过绘制散点图和计算差分,初步确定预测模型; 第二步、求模型的参数; 第三步、进行预测和确定预测的置信区间。 1.3.2 模型应用 三次多项式曲线模型的应用,以《统计预测和决策》第三版 75 页例题中 的实际数据为例,其建模过程的 MATLAB 程序如下。 某市 2001~2007 年棉布产量时间序列资料如下表所示,试预测 2009 年 的棉布产量。 年份 2001 2002 2003 2004 2005 2006 2007 棉布产量(亿米) 252 340 374 379 375 385 430 一阶差分 — 88 34 5 -4 10 45 二阶差分 — — -54 -29 -9 14 35 三阶差分 — — — 25 20 23 21 模型应用的 MATLAB 程序代码 disp('输入建模数据序列:') y=[252 340 374 379 375 385 430] n=length(y); t=linspace(-(n-1)/2,(n-1)/2,n); A=[ n sum(t) sum(t.^2) sum(t.^3) sum(t) sum(t.^2) sum(t.^3) sum(t.^4) sum(t.^2) sum(t.^3) sum(t.^4) sum(t.^5) sum(t.^3) sum(t.^4) sum(t.^5) sum(t.^6)];

B=[sum(y)sum(t.*y)sum((t.2).*y)sum((t.3).*y));X=inv(A)*B;disp(输出三次多项式曲线模型y=b0+b1*t+b2*t~2+b3*t~3中的参数bo、bl、b2、b3:)b0=x (1, 1)b1=x (2, 1)b2=x (3, 1)b3=x (4, 1)disp(输出三次多项式曲线模型的模型计算值:)y0=b0+bl.*t+b2.*t.~2+b3.*t.~3disp(输出样本标准差:)SE=[(sum((y-y0).2))/(n-3)]~(1/2)disp(输出平均相对误差绝对值:)MAPE=sum(abs(y-yO)/y)/nfigure%t=linspace(2001,2007,7);t=linspace(1,n,n) ;yl=y;y2=y0;plot(t,yl,'k-*",t, y2,'r-s')xlabel(时间)ylabel(棉布产量(单位:亿米))title(三次多项式曲线模型的拟合曲线)legend(实际值,模型计算值,2)disp(输出模型的预测值:)%t=(n-1)/2+2t=(n-1)/2+1y0=b0+bl.*t+b2.*t.~2+b3.*t.36
6 B=[sum(y) sum(t.*y) sum((t.^2).*y) sum((t.^3).*y)]; X=inv(A)*B; disp('输出三次多项式曲线模型 y=b0+b1*t+b2*t^2+b3*t^3 中的参数 b0、 b1、b2、b3:') b0=X(1,1) b1=X(2,1) b2=X(3,1) b3=X(4,1) disp('输出三次多项式曲线模型的模型计算值:') y0=b0+b1.*t+b2.*t.^2+b3.*t.^3 disp('输出样本标准差:') SE=[(sum((y-y0).^2))/(n-3)]^(1/2) disp('输出平均相对误差绝对值:') MAPE=sum(abs(y-y0)/y)/n figure %t=linspace(2001,2007,7); t=linspace(1,n,n); y1=y; y2=y0; plot(t,y1,'k-*',t,y2,'r-s') xlabel('时间') ylabel('棉布产量(单位:亿米)') title('三次多项式曲线模型的拟合曲线') legend('实际值','模型计算值',2) disp('输出模型的预测值:') %t=(n-1)/2+2 t=(n-1)/2+1 y0=b0+b1.*t+b2.*t.^2+b3.*t.^3

三次多项式曲线模型的拟合曲线4404204003360之号340320y编30028026024023561时间练习题《统计预测和决策》94页思考与练习的第3题。1.4指数曲线模型1.4.1方法原理及其建模步骤(一)方法原理1.指数曲线预测模型:j,=aer(a>0)对函数模型=ae做线性变换得:Iny,=Ina+bt这样,就把指数曲线模型转化为线性模型了。2.修正指数曲线模预测模型:=a+bc (0<c<l)7
7 练习题 《统计预测和决策》94 页'思考与练习'的第 3 题。 1.4 指数曲线模型 1.4.1 方法原理及其建模步骤 (一)方法原理 1. 指数曲线预测模型: ˆ ( 0) bt t y ae a 对函数模型 ˆ bt t y ae 做线性变换得: ln ln t y a bt 这样,就把指数曲线模型转化为线性模型了。 2. 修正指数曲线模预测模型: ˆ ( ) t t y a bc c 0 1

(二)建模步骤第一步、通过绘制散点图和计算差分和差分比率,初步确定预测模型;第二步、求模型的参数;第三步、进行预测和确定预测的置信区间。1.4.2模型应用指数曲线模型的应用,以《统计预测和决策》第三版78页例题中的实际数据为例,其建模过程的MATLAB程序如下。某商品1999~2007年投入市场以来,社会总需求量统计资料如下表,试预测2008年的社会总需求量。年份199920002001200220032004200520062007740总需求量(万件)16527045012202010312054609000模型应用的MATLAB程序代码%用两边取对数的方法求指数曲线预测模型:y=a*exp(b*t)中的两个参数a,bclf;disp(输入建模数据序列:")y=[165.0,270.0,450.0,740.0,1220.0,2010.0,3120.0,5460.0,9000.0]%nl=size (y);%n=nl (1, 2) ;n=length(y) ;t=linspace(l,n, n) ;Y=log (y) ;b=(sum(t.*Y)-n*mean(t)*mean(Y))/(sum(t.2)-n*(mean(t))2);A=mean(Y)-b*mean(t);a=exp(A) ;disp(输出指数曲线模型y=a*exp(bt)中的参数:")abdisp(输出指数曲线模型的模型计算值:")8
8 (二)建模步骤 第一步、通过绘制散点图和计算差分和差分比率,初步确定预测模型; 第二步、求模型的参数; 第三步、进行预测和确定预测的置信区间。 1.4.2 模型应用 指数曲线模型的应用,以《统计预测和决策》第三版 78 页例题中的实际 数据为例,其建模过程的 MATLAB 程序如下。 某商品 1999~2007 年投入市场以来,社会总需求量统计资料如下表,试 预测 2008 年的社会总需求量。 年份 1999 2000 2001 2002 2003 2004 2005 2006 2007 总需求量(万件) 165 270 450 740 1220 2010 3120 5460 9000 模型应用的 MATLAB 程序代码 %用两边取对数的方法求指数曲线预测模型: y=a*exp(b*t) 中的两个参数 a,b clf; disp('输入建模数据序列:') y=[165.0,270.0,450.0,740.0,1220.0,2010.0,3120.0,5460.0,9000.0] %n1=size(y); %n=n1(1,2); n=length(y); t=linspace(1,n,n); Y=log(y); b=(sum(t.*Y)-n*mean(t)*mean(Y))/(sum(t.^2)-n*(mean(t))^2); A=mean(Y)-b*mean(t); a=exp(A); disp('输出指数曲线模型 y=a*exp(bt) 中的参数:') a b disp('输出指数曲线模型的模型计算值:')