《软件开发人员的薪金》由会员分享,可在线阅读,更多相关《软件开发人员的薪金(15页珍藏版)》请在金锄头文库上搜索。
1、软件开发人员的薪金 摘要 本文所要解决的是研究软件开发人员的薪金与他们的资历、 管理责任、 教育程度等之间的关系,建立一个模型,以便分析公司人事策略的合理性,并作为新聘人员薪金的考虑。根据题设条件,结合实际情况,建立线性回归模型,方程表达式: 01 1223344=+y aa xa xa xa x 其中0a,1a,2a,3a,4a是回归系数, 为随机误差,1x,2x,3x,4x分别为资历、管理水平和教育程度。结合题目所给的数据,运用matlab 软件的命令 rearess,求出了软件开发人员的薪金与资历、管理水平、教育水平之间的线性回归方程: 1234=11300+546+6883-2994+
2、148+yxxxx 分析后同时运用残差分析法发现模型的缺陷, 改进影响软件开发人员薪金的因素,改变模型,使得管理责任因素和教育程度因素对薪金是交互作用的,这样合理化模型后,得出了影响软件开发人员薪金因素的最佳多元回归模型。建立回归方程: 011223344523632=+y aa xa xa xa xa x xa x x 并用运用 matlab 软件得出了该模型的较准确的解: 12342342=11204+497+7048-1727-348-3071+1836+yxxxxx xx x 并对回归方程和各个因素运用残差分析法进行了显著性检验, 去掉异常数据后,在运用 matlab 软件求解,得出更
3、为准确的解: 4232432199713056-356-1737-704149811200xxxxxxxxy 再次运用残差分析法对模型进行检验,说明模型可用。 综上所述,本文对数据进行深入分析,运用MATLAB 软件画图,制作表格,更形象地反映数据, 简单明了, 运用残差分析法对模型进行检验,说明模型可用。 关键字:线性回归模型 ressess 残差分析法 一问题重述 一家高技术公司人事部门为研究软件开发人员的薪金与他们的资历、 管理责任、 教育程度等之间的关系, 要建立一个模型, 以便分析公司人事策略的合理性,并作为新聘用人员薪金的参考。他们认为目前公司人员的薪金总体上是合理的,可以作为建模
4、的依据,于是调查了 46 名软件开发人员的档案资料,如表,其中资历一列指从事专业工作的年数,管理一列中 1 表示管理人员,0 表示非管理人员,教育一列中 1 表示中学程度,2 表示大学程度,3 表示更高程度(研究生) 。 表一 软件开发人员的薪金与他们的资历、管理责任、教育程度之间的关系 编号 薪金 资历 管理 教育 编号 薪金 资历 管理 教育 1 13876 1 1 1 24 22884 6 1 2 2 11608 1 0 3 25 16978 7 1 1 3 18701 1 1 3 26 14803 8 0 2 4 11283 1 0 2 27 17404 8 1 1 5 11767 1
5、 0 3 28 22184 8 1 3 6 20872 2 1 2 29 13548 8 0 1 7 11772 2 0 2 30 14467 10 0 1 8 10535 2 0 1 31 15942 10 0 2 9 12195 2 0 3 32 23174 10 1 3 10 12313 3 0 2 33 23780 10 1 2 11 14975 3 1 1 34 25410 11 1 2 12 21371 3 1 2 35 14861 11 0 1 13 19800 3 1 3 36 16882 12 0 2 14 11417 4 0 1 37 24170 12 1 3 15 202
6、63 4 1 3 38 15990 13 0 1 16 13231 4 0 3 39 26330 13 1 2 17 12884 4 0 2 40 17949 14 0 2 18 13245 5 0 2 41 25685 15 1 3 19 13677 5 0 3 42 27837 16 1 2 20 15965 5 1 1 43 18838 16 0 2 21 12366 6 0 1 44 17483 16 0 1 22 21351 6 1 3 45 19207 17 0 2 23 13839 6 0 2 46 19346 20 0 1 二模型假设 (1)薪金自然随着资历(年)的增长而增加;
7、 (2)管理人员的薪金应高于非管理人员; (3)教育程度越高薪金也越高; (4)管理责任、教育程度、资历诸因素之间没有交互作用; (5)资历(年) 、管理水平、教育程度分别对薪金的影响是线性的; (6)目前公司软件开发人员的薪金是合理的; (7)在模型改进中我们假设资历(年) 、管理水平、教育程度之间存在交互作 用 。 三问题的分析 对于问题,在符合题意并且与实际情况较吻合的情况下,薪金记作y,资历 ( 年 ) 记 作1x, 为 了 表 示 是 否 非 管 理 人 员 , 定 义 为了表示 3 种教育程度,定义 , 这样,中学用3x=1,4x=0 来表示,大学用3x=0,4x=1 表示,研究生
8、则用3x=0,4x=0 表示。 对于影响变量的这些定性因素(管理,教育),在模型求解过程中我们采用“0-1”变量来处理,并运用数学软件 matlab 来求解,最后对所得的解进行讨论和分析。 四模型的建立及求解 1. 符号的说明: y 软件开发人员的薪金 1x 资历 2x 管理责任 3x,4x 教育程度 ia 带估计的回归系数(i=1,2,3,4,5,6) 随机误差 b 随机误差, 回归系数的样本估计值 intb 回归系数的估计值的置信区间 r 残差向量-y x intr R 的置信区间 stats 回归模型的检验统计量 2R 回归方程的决定系数 F 统计量值 p F对应的概率值 2s 剩余方差
9、 置信水平 2.模型的建立 薪金y与资历1x,管理责任2x,教育程度3x,4x之间的多元线性回归方程为: 01 1223344=+y aa xa xa xa x 3.模型的求解 直接利用 matlab 统计工具箱中的命令 regress 求解,使用格式为: b,bint,r,rint,stats=regress(y,x,slpha) 其中输入 y 为模型(1)中的 y 的数据(n 维向量,n=30) ,x 为对应于回归系数ia的数据矩阵,alpha 为置信区间;输出 b 为ia的估计值,bint 为 b 的置信区间,r 为残差向量,rint 为 r 的置信区间,stats 为回归模型的检验统计
10、量,有四个值,第 1 个是回归方程的决定系数2R(R是相关系数) ,第 2 个是F统计量值,第 3个是与F统计量值对应的概率值p,第 4 个是剩余方差2s。 根据上述方程式,我们用数学软件 matlab 对模型进行求解 可以得到回归系数及其置信区间(置信水平=) ,检验统计量2R,F,p,2s的结果,见表二。 表二 模型(1)的计算结果 参数 参数估计值 参数置信区间 0a 11032 10258,11807 1a 546 484,608 2a 6883 6248,7517 3a -2994 -3826,-2162 4a 148 -636,931 2R= F=226 p 2s= 五.结果分析和
11、检验 一结果分析 从表二知2R=,即因变量(薪金)的%可由模型确定,F值远远超过F的检验的临界值,p远小于,因而模型(1)从整体来看是可用的。比如,利用模型可以估计(或预测)一个大学毕业,有2 年资历,费管理人员的薪金为: 0112233441=+yaa xa xa xa x=12272 模型中各个回归系数的含义可初步解释如下:1x的系数为 546,说明资历增加 1 年薪金增长 546 ;2x的系数为 6883,说明管理人员薪金多 6883 ;3x的系数为-2994,说明中学程度薪金比更高的少 2994 ;4x的系数为 148,说明大学程度薪金比更高的多 148 ,但是注意到4a置信区间包含零
12、点,说明这个系数的解释不可靠。 需要指出,以上解释是就平均值来说,并且,一个因素改变引起的因变量的变化量,都是在其他因素不变的条件下成立的。 二结果检验 4a的置信区间包含零点,说明基本模型(1)存在缺点。为了寻找改进的方向,常用残差分析方法(残差指薪金的实际值y与用模型估计的薪金 y1 之差,是模型(1)中随机误差的估计值,这里用了一个符号) 。我们将影响因素分成资历与管理-教育组合两类,管理-教育组合的定义如表三: 表三 管理教育 组合 1 2 3 4 5 6 管理 0 1 0 1 0 1 教育 1 1 2 2 3 3 为了对残差进行分析, 图 1 给出了与资历x1的关系, 图 2 给出与
13、管理x2-教育x3,x4组合间的关系。 图 1 模型(1)与1x的关系 图 2 模型(1)与2x3x,4x组合 的关系 从图一看,残差大概分成 3 个水平,这是由于 6 种管理教育组合混合在一起, 在模型中未被正确反映的结果, 、 ; 从图 2 看, 对于前 4 个管理教育组合,残差或者全为正,或者全为负,也表明管理教育组合在模型中处理不当。 在模型(1)中国管理责任和教育程度是分别起作用的,事实上,二者可能起着交互作用,如大学程度的管理人员的薪金会比二者分别的薪金制和高一点。 以上分析提醒我们,应在基本模型(1)中增加管理2x与教育3x,4x的交互项,建立新的回归模型。 六优化方向 通过以上
14、分析,我们在模型一中增加管理2x与教育3x,4x的交互项,建立新的回归模型。模型记作: 011223344523632=+y aa xa xa xa xa x xa x x 利用 matlab 的统计工具得到的结果如表四: 表四 模型(2)的计算结果 参数 参数估计值 参数置信区间 0a 11204 11044,11363 1a 497 486,508 2a 7048 6841,7255 3a -1727 -1939,7255 4a -348 -545,-152 5a -3071 -3372,-2769 6a 1836 1571,2101 2R= F=5545 p 2s= 由表四可知,模型(2
15、)的2R和F值都比模型(1)有所改进,并且所有回归系数的置信区间都不含零点,表明模型(2)是完全可用的。 与模型(1)类似,作模型(2)的两个残差分析图(图 3,图 4) ,可以看出,已经消除了图 1,图 2 中的不正常现象,这也说明了模型(2)的适用性。 图 3 模型(2)与1x的关系 图 4 模型(2)与2x3x,4x 组合的关系 从图 3,图 4 还可以发现一个异常点:具有 10 年资历、大学程度的管理人员(从表 1 可以查出是 33 号) ,他的实际薪金明显地低与模型的估计值,也明显低于与他有类似经历的其他人的薪金。这可能是由我们未知的原因造成的,为了使个别的数据不致影响整个模型,应该
16、讲这个异常数据去掉,对模型(2)重新估计回归系数,得到的结果如表五,残差分析图见图 5,图 6.可以看出,去掉异常数据后结果又有改善。 表五 模型(2)去掉异常数据后的计算结果 参数 参数估计值 参数置信区间 0a 11200 11139,11261 1a 498 494,503 2a 7041 6962,7120 3a -1737 -1818,-1656 4a -356 -431,-281 5a -3056 -3171,-2942 6a 1997 1894,2100 2R= F=36701 p 2s= 图 5 模型(2)去掉异常数据后 图 6 模型(2)去掉异常数据后与 与1x的关系 与2x
17、3x,4x 组合的关系 对于回归模型(2) ,用去掉模型异常数据(33 号)后估计出的系数,得到的结果是满意的。作为这个模型的应用之一,不妨用它来制订”6 种管理教育组合人员的“基础”薪金(即资历为零的薪金,当然,这也是平均意义上的) 。利用模型(2)和表五容易得到表六: 表六 6 种管理教育组合人员的“基础”薪金 组合 管理 教育 系数 “基础”薪金 1 0 1 0a+3a 9463 2 1 1 0a+2a+5a+3a 13448 3 0 2 0a+4a 10844 4 1 2 0a+2a+4a+6a 19882 5 0 3 0a 11200 6 1 3 0a+2a 18241 7 从表六可
18、以看出,大学程度的管理人员的薪金 比研究生程度的管理人员的薪金高,而大学程度的非管理人员的薪金比研究生程度的管理人员的薪金高,而大学程度的非管理人员的薪金比研究生的非管理人员的薪金略低 。当然,这是根据这家公司实际数据建立的模型得到的结果,并不具普遍性。 七模型评价 本文在模型建立时结合实际情况, 对问题进行了适当的假设。 对于影响因变量的定性变量因素(管理,教育) ,可以引入 01 变量来处理,01 变量的个数可比定性因素的水平少 1(如教育程度有 3 个水平,引入 2 个 01 变量) 。 运用到 MATLAB 软件进行计算还有制图,得到较准确的数据和图表。为求结果的精确,还运用了残差分析
19、方法,发现模型的缺陷,引入交互作用项使模型更加完善和具可行性。 因有异常数据的存在,我们予以剔除,有助于结果的合理性。对于本文所得的模型也可以用于不同单位,不同行业某类人才的预测。当然,本文也存在许多不足。但是对于对模型进行的改进和检验,难免会出现误差。 八.参考文献 1将启源,谢金星,叶俊 数学建模,高等教育出版社 2011 2周明华,邬学军,周凯,李春燕 ,MATLAB 实用教程 浙江工业大学 应用数学系 2011 附录一: 表二的程序及结果: 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
20、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
21、 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
22、19346; x0=ones(46,1); x=x0 x1 x2 x3 x4; b,bint,r,rint,stats=regress(y,x,; b=vpa(b,8) bint=vpa(bint,8) stats=vpa(stats,8) b = bint = , , , , , stats = ., , 0., 图一及图二残差图程序段及结果: x5=2 5 6 3 5 4 3 1 5 3 2 4 6 1 6 5 3 3 5 2 1 6 3 4 2 3 2 6 1 1 3 6 4 4 1 3 6 1 4 3 6 4 3 1 3 1; b,bint,r,rint,stats=regress(y
23、,x,; subplot(2,2,1) plot(x1,r,r+) subplot(2,2,2) plot(x5,r,b+) 表四的模型及结果: 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
24、 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; x5=2 5 6 3 5 4 3 1 5 3 2 4 6 1 6 5 3 3 5 2 1 6 3 4 2 3 2 6 1 1 3 6 4 4 1 3 6 1 4 3 6 4 3 1 3 1; y=13876 11608 18701 11283 1176
25、7 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 x2.*x3 x2.*x4; b,bi
26、nt,r,rint,stats=regress(y,x,;b=vpa(b,8) bint=vpa(bint,8) stats=vpa(stats,8) b = bint = , , , , , , , stats = ., , 0., 图3及图4残差图程序段及结果: 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; x5=2 5 6 3 5 4 3 1 5 3 2 4 6 1 6 5 3 3 5 2 1 6 3 4 2
27、3 2 6 1 1 3 6 4 4 1 3 6 1 4 3 6 4 3 1 3 1; 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 188
28、38 17483 19207 19346;subplot(2,2,1) plot(x1,r,r+) subplot(2,2,2) plot(x5,r,b+) 表五的程序及结果: 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 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 0 0 1 0 1 0 1 1 0 0 0 0; x3=1 0
29、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 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 0 1 0 0 1 1 0 1 1 0 1 0; x5=2 5 6 3 5 4 3 1 5 3 2 4 6 1 6 5 3 3 5 2 1 6 3 4 2 3 2 6 1 1 3 6 4 1 3 6 1 4 3 6 4 3 1 3 1; y=13876 11608 18701 11283
30、 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 25410 14861 16882 24170 15990 26330 17949 25685 27837 18838 17483 19207 19346; x0=ones(45,1); x=x0 x1 x2 x3 x4 x2.*x3 x2.*x4; b,bin
31、t,r,rint,stats=regress(y,x,; b=vpa(b,8) bint=vpa(bint,8) stats=vpa(stats,8) 图5和图6的残插图程序段及结果: 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 11 11 12 12 13 13 14 15 16 16 16 17 20; x5=2 5 6 3 5 4 3 1 5 3 2 4 6 1 6 5 3 3 5 2 1 6 3 4 2 3 2 6 1 1 3 6 4 1 3 6 1 4 3 6 4 3 1 3 1; y=1
32、3876 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 25410 14861 16882 24170 15990 26330 17949 25685 27837 18838 17483 19207 19346; subplot(2,2,1) plot(x1,r,r+) subplot(2,2,2) plot(x5,r,b+) 05101520-200-10001002000246-200-1000100200