实验三-回归分析资料
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三 回归分析
1.为了分析X 射线的杀菌作用,用200千伏的X 射线来照射细菌,每次照射6分钟用平板计数法估计尚存活的细菌数,照射次数记为 t ,照射后的细菌数y 如表1所示。
表1 X 射线照射次数与残留细菌数
试求:①给出y 与t 的二次函数回归模型;②在同一坐标系内做出原始数据与拟合结果的散点图;③预测t=16时残留的细菌数;④根据问题实际意义,你认为选择多项式函数是否合适?⑤给出非线性回归模型,并预测照射16次后细菌残留数目。
解:(1)实验程序: t=1:15;
y=[352 211 197 160 142 106 104 60 56 38 36 32 21 19 15];
rstool(t',y','purequadratic')
结果如图1所示:
4
6
8
10
12
50100150200250300350
图1
在Matlab 工作区中输入命令:beta ,rmse
beta =347.8967 -51.1394 1.9897 rmse =22.2649
所以y 与t 的二次回归模型函数:29897.11394.518967.347t t y +-= (2)画出同一坐标散点图,如图2所示,程序如下: [p,s]=polyfit(t,y,2); Y=polyconf(p,t,y); plot(t,y,'k+',t,Y,'r')
051015
50100150200250300350
400
图2 散点图
(3)当t=16时,计算程序如下: [p,s]=polyfit(t,y,2); Y=polyconf(p,16); 结果是:Y =39.0396
即说明预测残留的细菌数y=39.0396个;
(4)用二次函数计算出细菌残留数为39.0396,显然与实际不相符合。根据实际问题的意义可知:尽管二次多项式拟合效果较好,但是用于预测并不理想。因此,如何根据原始数据散点图的规律,选择适当的回归曲线是非常重要的,因此有必要研究非线性回归分析。
(5)由(2)散点图可知,可以假设将要拟合的的非线性模型为t /b ae y =对将要拟合的非线性模型t /b ae y =,建立的M-文件volum.m 如下: function yhat=volum(beta,t) yhat=beta(1)*exp(beta(2).*t);
%输入数据 t=1:15;
y=[352 211 197 160 142 106 104 60 56 38 36 32 21 19 15]; beta0=[150,0]';
%求回归系数
[beta,r,J]=nlinfit(t',y','volum',beta0); beta
y=nlpredci('volum',16,beta,r,J)
得结果:beta =400.0905 -0.2240,y =11.1014,即回归模型为:
t e y 2240.0-0905.400=,那么根据此模型我们可以知道:当t=16时,残留的细菌数y=11.1014,很显然这样的结果会更令人满意!
2.某销售公司将库存占用资金情况、广告投入的费用、员工薪酬以及销售额等方面的数据作了汇总(表 2),该公司试图根据这些数据找到销售额与其他变量之间的关系,以便进行销售额预测并为工作决策提供参考依据。(1)建立销售额的回归模型;(2)如果未来某月库存资金额为150万元,广告投入预算为45万元,员工薪酬总额为27万元,试根据建立的回归模型预测该月的销售额。
表2 库存资金额、广告投入、员工薪酬、销售额汇总表(单位:万元)
月份 库存资金额(x1) 广告投入(x2) 员工薪酬总额(x3) 销售额(y)
1 75.
2 2 77.6
3 80.7
4 76.0
5 79.5
6 81.8
7 67.7
8 98.3
9 74.0 10 151.0 11 90.8 12 102.3 13 115.6 14 125.0 15 137.8 16 175.6 17 155.2 18 174.3
解:首先,作出因变量与各自变量的样本散点图,如图3所示,程序如下:
x1=[75.2 77.6 80.7 76.0 79.5 81.8 67.7 98.3 74.0 151.0 90.8 102.3 115.6 125.0 137.8 175.6 155.2 174.3];
x2=[30.6 31.3 33.9 29.6 32.5 27.9 24.8 23.6 33.9 27.7 45.5 42.6 40.0 45.8 51.7 67.2 65.0 65.4];
x3=[21.1 21.4 22.9 21.4 21.5 21.7 21.5 21.0 22.4 24.7 23.2 24.3 23.1 29.1 24.6 27.5 26.5 26.8];
y=[1090.4 1133.0 1242.1 1003.2 1283.2 1012.2 1098.8 826.3 1003.3 1554.6 1199.0 1483.1 1407.1 1551.3 1601.2 2311.7 2126.7 2256.5]; subplot(1,3,1),plot(x1,y,'g*'); subplot(1,3,2),plot(x2,y,'k+'); subplot(1,3,3),plot(x3,y,'ro');
21.1 21.4 22.9 21.4 21.5 21.7 21.5 21.0 22.4 24.7 23.2 24.3 23.1 29.1 24.6 27.5 26.5 26.8 1090.4 1133.0 1242.1 1003.2 1283.2 1012.2 1098.8 826.3 1003.3 1554.6 1199.0 1483.1 1407.1 1551.3 1601.2 2311.7 2126.7 2256.5
30.6 31.3 33.9 29.6 32.5 27.9 24.8 23.6 33.9 27.7 45.5 42.6 40.0 45.8 51.7 67.2 65.0 65.4