数学建模举例.docx
- 文档编号:28990691
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:20
- 大小:54.77KB
数学建模举例.docx
《数学建模举例.docx》由会员分享,可在线阅读,更多相关《数学建模举例.docx(20页珍藏版)》请在冰豆网上搜索。
数学建模举例
10.1牙膏的销售量
某大型牙膏制造企业为了更好地拓展产品市场,有效地管理库存,公司董事会要求销售部门根据市场调查,找出公司生产的牙膏销售量与销售价格、广告投入等之间的关系,从而预测出在不同价格和广告费用下的销售量。
为此,销售部的研究人员收集了过去30个销售周期(每个销售周期为4周)公司生产的牙膏的销售量、销售价格、投入的广告费用,以及同期其它厂家生产的同类牙膏的市场平均销售价格,见表1-1(其中价格差指其它厂家平均价格与公司销售价格之差)。
试根据这些数据建立一个数学模型,分析牙膏销售量与其它因素的关系,为制订价格策略和广告投入策略提供数量依据
表1-1?
牙膏销售量与销售价格、广告费用等数据
销售
周期
公司销售价格
(元)
其他厂家平均价格(元)
价格差
(元)
广告费用
(百万元)
销售量
(百万支)
1
3.85
3.80
-0.05
5.5
7.38
2
3.75
4.00
0.25
6.75
8.51
3
3.70
4.30
0.60
7.25
9.52
4
3.60
3.70
0.00
5.50
7.50
5
3.60
3.85
0.25
7.00
9.33
6
3.6
3.80
0.20
6.50
8.28
7
3.6
3.75
0.15
6.75
8.75
8
3.8
3.85
0.05
5.25
7.87
9
3.8
3.65
-0.15
5.25
7.10
10
3.85
4.00
0.15
6.00
8.00
11
3.90
4.10
0.20
6.50
7.89
12
3.90
4.00
0.10
6.25
8.15
13
3.70
4.10
0.40
7.00
9.10
14
3.75
4.20
0.45
6.90
8.86
15
3.75
4.10
0.35
6.80
8.90
16
3.80
4.10
0.30
6.80
8.87
17
3.70
4.20
0.50
7.10
9.26
18
3.80
4.30
0.50
7.00
9.00
19
3.70
4.10
0.40
6.80
8.75
20
3.80
3.75
-0.05
6.50
7.95
21
3.80
3.75
-0.05
6.25
7.65
22
3.75
3.65
-0.10
6.00
7.27
23
3.70
3.90
0.20
6.50
8.00
24
3.55
3.65
0.10
7.00
8.50
25
3.60
4.10
0.50
6.80
8.75
26
3.70
4.25
0.60
6.80
9.21
27
3.75
3.65
-0.05
6.50
8.27
28
3.75
3.75
0.00
5.75
7.67
29
3.80
3.85
0.05
5.80
7.93
30
3.70
4.25
0.55
6.80
9.26
问题重述
根据过去30个销售周期(每个销售周期为4周)公司生产的牙膏的销售量、销售价格、投入的广告费用,以及同期其它厂家生产的同类牙膏的市场平均销售价格,见表1-1。
根据这些数据建立一个数学模型,分析牙膏销售量与其它因素的关系,为制订价格策略和广告投入策略提供数量依据
问题分析
由于牙膏是生活必需品,对大多属顾客来说,在购买同类产品的牙膏是更多地会在意不同品牌之间的价格差异,而不是它们的价格本身。
因此,在研究各个因素对销量的影响时,用价格差代替公司销售价格和其他厂家平均价格更为合适。
模型假设
1.画出牙膏销售量与价格差,公司投入的广告费用的散点图
2.由散点图确定两个函数模型,再由这两个函数模型解出回归模型
3.对模型进行改进,添加新的条件确定更好的回归模型系数,得到新的回归模型
4.对模型进一步改进,确定最终的模型
符号约定
牙膏销售量为y,其他厂家平均价格和公司销售价格之差(价格差)为x1,公司投入的广告费用为x2,其他厂家平均价格和公司销售价格分别为x3和x4,x1=x3-x4。
基于上面的分析,我们仅利用1x和2x来建立y的预测模型。
模型的建立和求解
1.基本模型
利用表1-1的数据用matlab作出y与x1的散点图(图1-1),y与x2的散点图(图1-2)
代码如下:
x1=[-0.050.250.600.250.20.150.05-0.150.150.20.10.40.450.350.30.50.50.4-0.05-0.05-0.10.20.10.50.6-0.0500.050.55];
x2=[5.56.757.255.576.56.755.255.2566.56.2576.96.86.87.176.86.56.2566.576.86.86.55.755.86.8];
y=[7.388.519.527.59.338.288.757.877.187.898.159.18.868.98.879.2698.757.957.657.2788.58.759.218.277.677.939.26];
A1=polyfit(x1,y,1);
yy1=polyval(A1,x1);
A2=polyfit(x2,y,2);
x5=5:
0.05:
7.25;
yy2=polyval(A2,x5);
subplot(1,2,1);plot(x1,y,'o',x1,yy1);
title('图1y对x1的散点图');
subplot(1,2,2);plot(x2,y,'o',x5,yy2);
title('图2y对x2的散点图');
图(1-1)与图(1-2)
从图1可以发现,随着1x的增加,y的值有比较明显的线性增长趋势,图中的直线是用线性模型:
(1)
拟合的(其中
是随机误差)。
而在图2中,当x2增大时,y有向上弯曲增加的趋势,图中的曲线是用二次函数模型:
(2)
综合上面的分析,结合模型
(1)和
(2)建立如下的回归模型:
(3)
(3)式右端的x1和x2称为回归变量(自变量),
是给定价格差x1,广告费用x2时,牙膏销售量y的平均值,其中的参数
称为回归系数,由表1-1的数据估计,影响y的其他因素作用都包含在随机误差
中。
如果模型选择合适,
应该大致服从值为0的正态分布。
2.模型求解
在刚刚运行的代码后面,继续使用regress工具求解,代码为:
x6=[ones(30,1)x1'x2'(x2.^2)'];
[b,bint,r,rint,stats]=regress(y',x6,0.05)
运行结果如图(1-3)
得到模型(3)的回归系数估计值及其置信区间(置信水平α=0.05)、检验统计量
F,p,
得结果见表1-2
,
参数
参数估计值
参数置信区间
17.3244
[5.7282,28.9206
1.3070
[0.6829,1.9311]
-3.6956
[-7.4989,0.1077]
0.3486
[0.0379,0.6594]
=0.9054F=82.9409p<0.0001
=0.0490
表1-2模型(3)计算结果
图(1-3)
3.结果分析
表1-2显示,
=0.9054指因变量y(销售量)的90.54%可由模型决定,F值远远超过F检验的临界值,P远小于α,因而模型(3)整体来看是可用的
表1-2的回归系数中
的置信区间包含零点,表示回归变量
(对因变量y的影响)是不太显着的,但由于
是显着的,我们仍将
留在模型中
4.销售量预测
将回归系数的估计值带入模型(3),即可预测公司未来某个销售周期牙膏的销售量y,预测值记为
,得到模型(3)的预测方程:
(4)
只需要知道该销售周期的价格差x1和投入的广告费用x2,就可以计算预测值
。
5.模型改进
模型(3)中回归变量x1和x2对因变量y的影响是相互独立的,即牙膏销售量y的均值与广告费用x2的二次关系由回归系数
和
确定,而不依赖于价格差x1,同样的,y的均值与x1的线性关系由回归系数
确定,而不依赖于x2。
根据直觉和经验可以猜想,x1和x2之间的交互作用会对y有影响,不妨简单地用x1,x2的乘积代表它们的相互作用,于是将模型(3)增加一项,得到:
(5)
在这个模型中,y的均值与2x的二次关系为
,由系数确
定,并依赖于价格差x1。
在上述运行程序后继续输入代码:
x7=[ones(30,1)x1'x2'(x2.^2)'(x1.*x2)'];
[b,bint,r,rint,stats]=regress(y',x7,0.05);
b,bint,stats
结果见图(1-4)
图(1-4)
计算结果即为表1-3
参数
参数估计值
参数置信区间
29.1133
[13.7013,44.5252]
11.1342
[1.9778,20.2906]
-7.6080
[-12.6932,-2.5228]
0.6712
[0.2538,1.0887]
-1.4777
[-2.8518,-0.1037]
=0.9209F=72.7771P<0.0001
=0.0426
表1-3模型(5)计算结果
表3与表2的结果相比,
有所提高,说明模型(5)比模型(3)有所进步。
并且,所有参数的置信区间,特别是X1,X2的交互作用项X1X2的系数
的置信区间不包含零点,所以有理由相信模型(5)比模型(3)更符合实际。
在保持广告费用x2=6.5百万元不变的条件下,分别对模型(3)和(5)中牙膏销售量的均值与价格差x1的关系作图,见图1-5和图1-6,代码为:
yy3=17.3244+1.307*x1+(-3.6956)*6.5+0.3486*6.5*6.5;
plot(x1,yy3);
gridon
figure
(2)
yy4=29.1133+11.1342*x1+(-7.608*6.5)+0.6712*6.5*6.5+(-1.4777)*6.5*x1;
plot(x1,yy4);
gridon
图1-5
图1-6
在保持价格差x1=0.2元不变的条件下,分别对模型(3)和(5)中牙膏销售量的均值
与广告费用x2的关系作图,见图1-7和图1-8,代码如下:
figure(3)
yy5=17.3244+1.307*0.2+(-3.6956)*x2+0.3486*x2.*x2;
bb=polyfit(x2,yy5,2);
xx5=5.25:
0.05:
7.25;
yy51=polyval(bb,xx5);
plot(xx5,yy51);
gridon;
figure(4)
yy6=29.1133+11.1342*0.2+(-7.608*x2)+0.6712*x2.*x2+(-1.4777)*x2*0.2;
bb=polyfit(x2,yy6,2);
xx6=5.25:
0.05:
7.25;
yy61=polyval(bb,xx6);
plot(xx6,yy61);
gridon;
图1-7
图1-8
6.模型的进一步改进
完全二次多项式模型:
与1x和2x的完全二次多项式模型?
(6)
相比,模型(5)只少
项,我们不妨增加这一项,建立模型(10)。
这样做的好处之一是
MATLAB统计工具箱有直接的命令rstool求解,并且以交互式画面给出y的估计值
和预
测空间。
代码为:
x=[x1'x2'];
rstool(x,y','quadratic')
结果为图1-9
图1-9
点击Export,可以得到模型(6)的回归系数估计值为
=(
)=(32.0984,14.7436,-8.6367,-2.1038,1.1074,0.7594)
所以回归模型为:
Y=32.0984+14.7436*x1-8.6367*x2-2.1038*x1*x2+1.1074
+0.7594
10.2软件开发人员的薪金
一家技术公司人事部门欲建立模型研究薪金与资历、管理责任、教育程度的关系,分析人事策略的合理性,作为新聘用人员薪金的参考。
为此,研究人员收集了46名软件开发人员的档案资料,如表2-1,其中资历一列指从事专业工作的年数,管理一列中1表示管理人员,0表示非管理人员,教育一列中1表示中学程度,2表示大学程度,3表示更高程度(研究生)
表2-1软件开发人员的薪金与资历、管理责任、教育程度的关系
编号
薪金
资历
管理
教育
01
13876
1
1
1
02
11608
1
0
3
03
18701
1
1
3
04
11283
1
0
2
05
11767
1
0
3
06
20872
2
1
2
07
11772
2
0
2
08
10535
2
0
1
09
12195
2
0
3
10
12313
3
0
2
11
14975
3
1
1
12
21371
3
1
2
13
19800
3
1
3
14
11417
4
0
1
15
20263
4
1
3
16
13231
4
0
3
17
12884
4
0
2
18
13245
5
0
2
19
13677
5
0
3
20
15965
5
1
1
21
12366
6
0
1
22
21352
6
1
3
23
13839
6
0
2
24
22884
6
1
2
25
16978
7
1
1
26
14803
8
0
2
27
17404
8
1
1
28
22184
8
1
3
29
13548
8
0
1
30
14467
10
0
1
31
15942
10
0
2
32
23174
10
1
3
33
23780
10
1
2
34
25410
11
1
2
35
14861
11
0
1
36
16882
12
0
2
37
24170
12
1
3
38
15990
13
0
1
39
26330
13
1
2
40
17949
14
0
2
41
25685
15
1
3
42
27837
16
1
2
43
18838
16
0
2
44
17483
16
0
1
45
19207
17
0
2
46
19364
20
0
1
一、问题重述
研究人员收集了46名软件开发人员的档案资料,以这资料建立模型研究薪金与资历、管理责任、教育程度的关系,分析人事策略的合理性,作为新聘用人员薪金的参考
二、问题分析
按照常识,薪金自然随着资历(年)的增长而增加,管理人员的薪金应高于非管理人员,教育程度越高薪金也越高
三、模型假设
1.建立薪金与资历,管理责任,教育程度之间的多元线性回归模型
2.利用matlab的统计工具箱计算回归系数及置信区间
3.在上述模型中增加管理与教育的交互项,建立新的回归模型
4.利用matlab的统计工具箱计算回归系数及置信区间并与上面结果比较得出结论
四、符号约定
对于问题,在符合题意并且与实际情况较吻合的情况下,薪金记作y,资历(年)记作x1,为了表示是否非管理人员,定义
,为了表示3种教育程度,定义
,
,这样,中学用x3=1,x4=0来表示,大学用x3=0,x4=1表示,研究生则用x3=0,x4=0表示。
五、模型的建立与求解
1.基本模型
根据假设,薪金y与资历x1,管理责任x2,教育程度x3,x4之间的多元线性回归方程为:
y=a0+a1x1+a2x2+a3x3+a4x4+
(1)
2.模型求解
直接利用matlab统计工具箱中的命令regress求解回归系数估计值及其置信区间(置信水平α=0.05)、检验统计量
F,p,
,代码为:
x1=[1?
1?
1?
1?
1?
2?
2?
2?
2?
3?
3?
3?
3?
4?
4?
4?
4?
5?
5?
5?
6?
6?
6?
6?
7?
8?
8?
8?
8?
10?
10?
10?
10?
11?
11?
12?
12?
13?
13?
14?
15?
16?
16?
16?
17?
20]';
x2=[1?
0?
1?
0?
0?
1?
0?
0?
0?
0?
1?
1?
1?
0?
1?
0?
0?
0?
0?
1?
0?
1?
0?
1?
1?
0?
1?
1?
0?
0?
0?
1?
1?
1?
0?
0?
1?
0?
1?
0?
1?
1?
0?
0?
0?
0]';
x3=[1?
0?
0?
0?
0?
0?
0?
1?
0?
0?
1?
0?
0?
1?
0?
0?
0?
0?
0?
1?
1?
0?
0?
0?
1?
0?
1?
0?
1?
1?
0?
0?
0?
0?
1?
0?
0?
1?
0?
0?
0?
0?
0?
1?
0?
1]';
x4=[0?
0?
0?
1?
0?
1?
1?
0?
0?
1?
0?
1?
0?
0?
0?
0?
1?
1?
0?
0?
0?
0?
1?
1?
0?
1?
0?
0?
0?
0?
1?
0?
1?
1?
0?
1?
0?
0?
1?
1?
0?
1?
1?
0?
1?
0]';
y=[13876?
11608?
18701?
11283?
11767?
20872?
11772?
10535?
12195?
12313?
14975?
21371?
19800?
11417?
20263?
13231?
12884?
13245?
13677?
15965?
12366?
21352?
13839?
22884?
16978?
14803?
17404?
22184?
13548?
14467?
15942?
23174?
23780?
25410?
14861?
16882?
24170?
15990?
26330?
17949?
25685?
27837?
18838?
17483?
19207?
19346]';
x0=ones(46,1);?
x=[x0?
x1?
x2?
x3?
x4];
[b,bint,r,rint,stats]=regress(y,x,0.05);
x0=ones(46,1);?
x=[x0?
x1?
x2?
x3?
x4];
[b,bint,r,rint,stats]=regress(y,x,0.05);
b=vpa(b,8)
bint=vpa(bint,8)
stats=vpa(stats,8)
结果如图2-1
图(2-1)
即模型
(1)的计算结果是表2-2
参数
参数估计值
参数置信区间
a0
11032
[10258,11807]
a1
546
[484,608]
a2
6883
[6248,7517]
a3
-2994
[-3826,-2162]
a4
148
[-636,931]
=0.957F=226p<0.0001
=1.057*10^6
表2-2模型
(1)计算结果
3.结果分析
?
从表2-2知
=0.975,即因变量(薪金)的95.7%可由模型确定,F值远远超过F的检验的临界值,p远小于
,因而模型
(1)从整体来看是可用的。
比如,利用模型可以估计(或预测)一个大学毕业,有2年资历,费管理人员的薪金为:
?
y1=a0+a1*x1+a2*x2+a3*x3+a4*x4+
=12272
?
?
模型中各个回归系数的含义可初步解释如下:
x1的系数为546,说明资历增加1年薪金增长546?
;x2的系数为6883,说明管理人员薪金多6883?
;x3的系数为-2994,说明中学程度薪金比更高的少2994?
;x4的系数为148,说明大学程度薪金比更高的多148?
,但是应该注意到a4置信区间包含零点,说明这个系数的解释不可靠的。
?
需要指出,以上解释是就平均值来说,并且,一个因素改变引起的因变量的变化量,都是在其他因素不变的条件下成立的。
4.进一步的讨论
a4的置信区间包含零点,说明基本模型
(1)存在缺点。
为了寻找改进的方向,常用残差分析方法(残差
指薪金的实际值y与用模型估计的薪金y1之差,是模型
(1)中随机误差
的估计值,这里用了一个符号)。
我们将影响因素分成资历与管理-教育组合两类,管理-教育组合的定义如表三:
组合
1
2
3
4
5
6
管理
0
1
0
1
0
1
教育
1
1
2
2
3
3
表2-3管理-教育组合?
为了对残差进行分析,下面用matlab绘图,代码为:
x5=[2563543153246165335216342326113644136143643131]';
[b,bint,r,rint,stats]=regress(y,x,0.05);
subplot(2,2,1);
plot(x1,r,'r+');title('模型
(1)随机误差与x1的关系');
subplot(2,2,2);
plot(x5,r,'b+');title('模型
(1)随机误差与x2-x3,x4组合间的关系');
结果如图2-2
图(2-2)
从图1看,残差大概分成3个水平,这是由于6种管理—教育组合混合在一起,在模型中未被正确反映的结果,、;从图2看,对于前4个管理—教育组合,残差或者全为正,或者全为负,也表明管理—教育组合在模型中处理不当。
?
在模型
(1)中国管理责任和教育程度是分别起作用的,事实上,二者可能起着交互作用,如大学程度的管理人员的薪金会比二者分别的薪金制和高一点。
?
以上分析提醒我们,应在基本模型
(1)中增加管理x2与教育x3,x4的交互项,建立新的回归模型。
5.更好的模型
增加x2与x3,x4的交互项后,模型记作
y=a0+a1*x1+a2*x2+a3*x3+a4*x4+a5*x2*x3+a6*x3*x2+
(2)
输入代码:
x0=ones(46,1);x=[x0?
x1?
x2?
x3?
x4?
x2.*x3?
x2.*x4];
[b,bint,r,rint,stats]=regress(y,x,0.05);b=vpa(b,8)
bint=vpa(bint,8)
stats=vpa(stats,8)?
运行结果如图2-3
图(2-3)
即模型
(2)的计算结果是表2-4
参数
参数估计值
参数置信区间
a0
11204
[11044,11363]
a1
497
[486,508]
a2
7048
[6841,7255]
a3
-1727
[-1939,7255]
a4
-348
[-545,-152]
a5
-3071
[-3372,-2769]
a6
1836
[1571,2101]
=0.9988F=5545P<0.0001
=3.0047*10^4
表2-4模
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数学 建模 举例