搜档网
当前位置:搜档网 › 软件开发人员的薪金

软件开发人员的薪金

软件开发人员的薪金
软件开发人员的薪金

软件开发人员的薪金

摘要

本文所要解决的是研究软件开发人员的薪金与他们的资历、管理责任、教育程度等之间的关系,建立一个模型,以便分析公司人事策略的合理性,并作为新聘人员薪金的考虑。根据题设条件,结合实际情况,建立线性回归模型,方程表达式:

011223344=+++++y a a x a x a x a x ε

其中0a ,1a ,2a ,3a ,4a 是回归系数,ε 为随机误差,1x ,2x ,3x ,4x 分别为资历、管理水平和教育程度。结合题目所给的数据,运用matlab 软件的命令rearess ,求出了软件开发人员的薪金与资历、管理水平、教育水平之间的线性回归方程:

1234=11300+546+6883-2994+148+y x x x x ε

分析后同时运用残差分析法发现模型的缺陷,改进影响软件开发人员薪金的因素,改变模型,使得管理责任因素和教育程度因素对薪金是交互作用的,这样合理化模型后,得出了影响软件开发人员薪金因素的最佳多元回归模型。建立回归方程:

011223344523632=+++++++y a a x a x a x a x a x x a x x ε

并用运用matlab 软件得出了该模型的较准确的解:

12342342=11204+497+7048-1727-348-3071+1836+y x x x x x x x x ε 并对回归方程和各个因素运用残差分析法进行了显著性检验,去掉异常数据后,在运用matlab 软件求解,得出更为准确的解:

ε++++=4232432199713056-356-1737-704149811200x x x x x x x x y

再次运用残差分析法对模型进行检验,说明模型可用。

综上所述,本文对数据进行深入分析,运用MATLAB 软件画图,制作表格,更形象地反映数据,简单明了,运用残差分析法对模型进行检验,说明模型可用。

关键字:线性回归模型 ressess 残差分析法

一.问题重述

一家高技术公司人事部门为研究软件开发人员的薪金与他们的资历、管理责任、教育程度等之间的关系,要建立一个模型,以便分析公司人事策略的合理性,并作为新聘用人员薪金的参考。他们认为目前公司人员的薪金总体上是合理的,可以作为建模的依据,于是调查了46名软件开发人员的档案资料,如表,其中资历一列指从事专业工作的年数,管理一列中1表示管理人员,0表示非管理人员,教育一列中1表示中学程度,2表示大学程度,3表示更高程度(研究生)。

二.模型假设

(1)薪金自然随着资历(年)的增长而增加;

(2)管理人员的薪金应高于非管理人员;

(3)教育程度越高薪金也越高;

(4)管理责任、教育程度、资历诸因素之间没有交互作用;

(5)资历(年)、管理水平、教育程度分别对薪金的影响是线性的;

(6)目前公司软件开发人员的薪金是合理的;

(7)在模型改进中我们假设资历(年)、管理水平、教育程度之间存在交互作用。

三.问题的分析

对于问题,在符合题意并且与实际情况较吻合的情况下,薪金记作y,资历(年)记作1x,为了表示是否非管理人员,定义

为了表示3种教育程度,定义,这样,中学用3x=1,4x=0来表示,大学用3x=0,4x=1表示,研究生则用3x=0,

x=0表示。

4

对于影响变量的这些定性因素(管理,教育),在模型求解过程中我们采用“0-1”变量来处理,并运用数学软件matlab来求解,最后对所得的解进行讨论和分析。

四.模型的建立及求解

2.模型的建立

薪金y 与资历1x ,管理责任2x ,教育程度3x ,4x 之间的多元线性回归方程为:

011223344=+++++y a a x a x a x a x ε

3.模型的求解

直接利用matlab 统计工具箱中的命令regress 求解,使用格式为:

[b,bint,r,rint,stats]=regress(y,x,slpha)

其中输入y 为模型(1)中的y 的数据(n 维向量,n=30),x 为对应于回归系数i a 的数据矩阵,alpha 为置信区间α;输出b 为i a 的估计值,bint 为b 的置信区间,r 为残差向量,rint 为r 的置信区间,stats 为回归模型的检验统计量,有四个值,第1个是回归方程的决定系数2

R (R 是相关系数),第2个是F 统计量值,第3个是与F 统计量值对应的概率值p ,第4个是剩余方差2

s 。

根据上述方程式,我们用数学软件matlab 对模型进行求解 可以得到回归系数及其置信区间(置信水平α=0.05),检验统计量2

R ,F ,p ,2

s 的结果,

见表二。

五.结果分析和检验

一.结果分析

从表二知2

R =0.975,即因变量(薪金)的95.7%可由模型确定,F 值远远超过F 的检验的临界值,p 远小于α,因而模型(1)从整体来看是可用的。比如,利用模型可以估计(或预测)一个大学毕业,有2年资历,费管理人员的薪金为:

0112233441=+++++y a a x a x a x a x ε=12272

模型中各个回归系数的含义可初步解释如下:1x 的系数为546,说明资历增加1年薪金增长546 ;2x 的系数为6883,说明管理人员薪金多6883 ;3x 的系数为-2994,说明中学程度薪金比更高的少2994 ;4x 的系数为148,说明大学程度薪金比更高的多148 ,但是注意到4a 置信区间包含零点,说明这个系数的解释不可靠。

需要指出,以上解释是就平均值来说,并且,一个因素改变引起的因变量的变化量,都是在其他因素不变的条件下成立的。

二.结果检验

4a 的置信区间包含零点,说明基本模型(1)存在缺点。为了寻找改进的方向,常用残差分析方法(残差ε指薪金的实际值y 与用模型估计的薪金y1之差,是模型(1)中随机误差ε的估计值,这里用了一个符号)。我们将影响因素分成资历与管理-教育组合两类,管理-教育组合的定义如表三:

表三 管理——教育

为了对残差进行分析,图1给出了ε与资历x 1的关系,图2给出ε与管理x 2-教育x 3,x 4组合间的关系。

图1 模型(1)ε与1x 的关系 图2模型(1)ε与2x —3x ,4x 组合 的关系

从图一看,残差大概分成3个水平,这是由于6种管理—教育组合混合在一起,在模型中未被正确反映的结果,、;从图2看,对于前4个管理—教育组合,残差或者全为正,或者全为负,也表明管理—教育组合在模型中处理不当。 在模型(1)中国管理责任和教育程度是分别起作用的,事实上,二者可能起着交互作用,如大学程度的管理人员的薪金会比二者分别的薪金制和高一点。

以上分析提醒我们,应在基本模型(1)中增加管理2x 与教育3x ,4x 的交互项,建立新的回归模型。

六.优化方向

通过以上分析,我们在模型一中增加管理2x 与教育3x ,4x 的交互项,建立新的回归模型。模型记作:

011223344523632=+++++++y a a x a x a x a x a x x a 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]

2

R =0.9988 F =5545 p <0.0001 2s =3.0047x104

由表四可知,模型(2)的2R和F值都比模型(1)有所改进,并且所有回归系数的置信区间都不含零点,表明模型(2)是完全可用的。

与模型(1)类似,作模型(2)的两个残差分析图(图3,图4),可以看出,已经消除了图1,图2中的不正常现象,这也说明了模型(2)的适用性。

图3 模型(2)ε与1x的关系图4 模型(2)ε与2x—3x,4x

组合的关系

从图3,图4还可以发现一个异常点:具有10年资历、大学程度的管理人员(从表1可以查出是33号),他的实际薪金明显地低与模型的估计值,也明显低于与他有类似经历的其他人的薪金。这可能是由我们未知的原因造成的,为了使个别的数据不致影响整个模型,应该讲这个异常数据去掉,对模型(2)重新估计回归系数,得到的结果如表五,残差分析图见图5,图6.可以看出,去掉异常数据后结果又有改善。

表五模型(2)去掉异常数据后的计算结果

参数参数估计值参数置信区间

a11200 [11139,11261]

a498 [494,503]

1

a7041 [6962,7120]

2

a-1737 [-1818,,-1656]

3

a-356 [-431,-281]

4

a-3056 [-3171,-2942]

5

a1997 [1894,2100]

6

2

R=0.9998 F=36701 p<0.0001 2s=4.347x103

图5 模型(2)去掉异常数据后ε图6 模型(2)去掉异常数据后与ε

与1x的关系与2x—3x,4x组合的关系

对于回归模型(2),用去掉模型异常数据(33号)后估计出的系数,得到的结果是满意的。作为这个模型的应用之一,不妨用它来"制订”6种管理—教育组合人员的“基础”薪金(即资历为零的薪金,当然,这也是平均意义上的)。利用模型(2)和表五容易得到表六:

表六6种管理—教育组合人员的“基础”薪金

组合管理教育系数“基础”薪金

1 0 1 0a+3a9463

2 1 1 0a+2a+5a+3a13448

3 0 2 0a+4a10844

4 1 2 0a+2a+4a+6a19882

5 0 3 0a11200

6 1 3 0a+2a18241

7

从表六可以看出,大学程度的管理人员的薪金比研究生程度的管理人员的薪金高,而大学程度的非管理人员的薪金比研究生程度的管理人员的薪金高,而大学程度的非管理人员的薪金比研究生的非管理人员的薪金略低。当然,这是根据这家公司实际数据建立的模型得到的结果,并不具普遍性。

七.模型评价

本文在模型建立时结合实际情况,对问题进行了适当的假设。对于影响因变量的定性变量因素(管理,教育),可以引入0—1变量来处理,0—1变量的个数可比定性因素的水平少1(如教育程度有3个水平,引入2个0—1变量)。

运用到MATLAB软件进行计算还有制图,得到较准确的数据和图表。为求结果的精确,还运用了残差分析方法,发现模型的缺陷,引入交互作用项使模型更加完善和具可行性。

因有异常数据的存在,我们予以剔除,有助于结果的合理性。对于本文所得的模型也可以用于不同单位,不同行业某类人才的预测。当然,本文也存在许多不足。但是对于对模型进行的改进和检验,难免会出现误差。

八.参考文献

[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 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);

b=vpa(b,8)

bint=vpa(bint,8)

stats=vpa(stats,8)

b =

11032.734

546.12765

6882.5329

-2994.1783

147.73798

bint =

[ 10258.256, 11807.213] [ 484.44860, 607.80670] [ 6248.1051, 7516.9607] [ -3826.3273, -2162.0294] [ -635.71842, 931.19438]

stats =

[ .95669181, 226.42580, 0., 1057144.8]

图一及图二残差图程序段及结果:

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,x,0.05);

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 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 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 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)

b =

11203.754

496.86393

7047.9997

-1726.5042

-348.39254

-3070.5962

1835.9676

bint =

[ 11044.259, 11363.248]

[ 485.63509, 508.09277]

[ 6841.0518, 7254.9477]

[ -1938.9889, -1514.0195]

[ -545.21127, -151.57381]

[ -3371.8328, -2769.3595]

[ 1571.3704, 2100.5648]

stats =

[ .99882910, 5544.7990, 0., 30047.093]

图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 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 18838 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 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 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,bint,r,rint,stats]=regress(y,x,0.05);

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=[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 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

-1000100

2000246

-200

-1000100

200

相关主题