APP下载

基于回归分析的软件成本估算研究

2013-06-25姚伟力焦玉婷

中国信息化·学术版 2013年3期
关键词:回归分析预测检验

姚伟力 焦玉婷

【摘 要】随着软件行业的不断进步,软件成本估算在软件工程领域扮演着重要的角色。本文主要对统计学中的回归分析方法进行研究,阐述了利用回归分析方法进行软件估算的具体流程,建立回归估算模型并对其进行检验,最后通过对历史数据集的仿真验证该回归模型预测能力的提高。【关键词】回归分析,软件成本估算,估算模型,检验,预测

【中图分类号】TP311.5 【文献标识码】A 【文章编号】1672-5158(2013)03-0448-02

引言

随着软件行业的发展及软件规模的扩大和复杂度的不断增加,软件在整个计算机系统中已经变成了开销最大的部分。然而,自上个世纪历史年代开始,以预算超支、质量缺陷及项目延期等为典型特征的软件危机不断出现。其中,对软件成本的估算不足和需求不稳定是造成软件项目失控的最普遍的原因,因此,为了能够保证软件项目能够在预定的时间内顺利完成且不超出预算,软件成本估算变得尤为重要。

一、软件成本估算方法

软件成本估算方法多种多样,包括以线性模型、分析模型及复合模型为典型的数学算法模型,也包括类比法、专家判断法、功能点分析法及COCOMO模型法等。但是由于软件成本受到许多不确定因素的影响使得我们很难构建一个明确的估算模型。本文旨在通过数学的方法,基于线性回归分析方法建立软件成本与其各影响因子间的多变量估算模型,进而对此模型进行检验,论证该模型的实用性。

(一)回归分析方法

回归分析方法主要是通过建立各个变量之间的统计模型来研究它们之间的关系[7]。

回归分析的算法原理:

最小二乘法是回归分析中最常用的算法原理,通过最小化误差的平方和试图找到数据的最佳函数匹配,在回归分析中最小二乘法通常被用来估计回归系数[2]。就软件成本估算这一问题而言,其影响因子有很多,例如包括软件代码行、人员基本工资等等。假设定义变量软件成本和软件代码行分别为Y和X,在平面坐标系上做出关于它们的观测值的散点图,当所有观测值大致落在一条直线上时,说明二者之间有较强的线性关系。对于每一个软件代码行的观测值X,构造一条直线,使得观测值X在此直线上所对应的y值尽可能接近观测值Y,从而可以利用此直线预测与软件代码行所对应的软件成本。对于每一个观测值(xi,yi),观测值yi与其回归值E(yi)=β0+β1xi的离差值越小越好,定义离差平方和为最小二乘法原理就是找到和的估计值,记为,使得上述公式中的离差平方和的值达到最小,利用求极值的算法可求得估计值如下:

以上就是一元线性回归中利用最小二乘法求回归系数估计值的原理,同样的,多元线性回归中算法原理与此相同,即求出多元线性函数y=+中的估计值。

二、软件成本估算建模

利用回归分析进行软件成本估算的具体流程主要包括数据集的选取与预处理、回归模型的建立、回归模型的校准、回归模型的检验、回归模型的性能分析及回归模型的预测六个步骤。下面将通过具体的数据进行仿真及分析。

三、软件成本估算的仿真

(一)数据集的选取及预处理

本文主要选取公开数据集ISBSGv9中的一个子集进行研究。该数据集中包括12个因子,在研究过程中,定工作量作为因变量,其他为自变量。

通常,数据的预处理包括数据集的选取、验证及对缺失值和异常数据的处理等几个方面。利用Spearman相关系数对所有变量在SPSS中进行分析,得知各自变量之间存在较强的相关,如Afp与Input,说明各因子之间可能存在多重共线性,需要对其进行处理。

(二)回归模型的建立

将数据集导入到SPSS中,对其进行回归分析,为了进行比较,分别对其利用前进法、后退法及逐步回归法三种不同的回归方法进行分析,得出前进法与逐步回归法的拟合结果完全相同,而后退法中增加了两个因子,对三种回归结果的因子系数进行观察,可知Input与File两因子的系数全为负值,因此,需要对因子间的多重共线性进行分析。为了全面分析,将目前两个模型都保留,分别对其进行校准。

(三)回归模型的校准

因子间存在多重共线性使得因子系数变为负值,本文采用回归分析中的岭回归对模型进行校准。对保留下来的模型中七个因子进行岭回归,得到其系数表与岭迹图,由岭迹图可清楚的观察到Input和File两个因子系数由负转正,且当K=0.2以后,各因子系数趋于稳定。因此,为消除多重共线性,删除上述两个因子,采用逐步回归模型,取岭参数K=0.2 。此时各因子系数如下表所示:

表1 K=0.2时回归模型系数表

Afp Enquiry Duration Added File Input 常数项

(四)回归模型的检验

对回归模型的检验主要包括对模型的显著性检验及对模型系数的显著性检验,其中,前者主要采用F检验法,后者采用t检验法[4],在SPSS中的检验结果显示模型及模型中的因子回归效果都是显著的。

接下来还要对残差值进行检验,主要采用残差分布图进行检验, 由图可知,残差值集中分布在工作量1000以下的区间,总体成正态分布,分布情况良好。

(五)回归模型的预测

对回归模型进行预测主要通过衡量去平均误差率和预测范围概率来判断其预测能力[2]。整理回归分析各流程中的模型信息如下表所示:

由上表可知,在对数据进行预处理后,拟合度和平均误差率都有了明显的提升;校准后平均误差率由1.39降至1.28,预测范围概率上涨2%。

四、结论

本文分析了回归分析的算法原理,并按照回归分析的基本流程对现有数据集进行仿真分析,利用不同的回归方法从不同角度对数据集进行研究,并对因子间存在的多重共线性问题进行了有效的处理,通过对模型的检验及预测性能分析验证了回归分析在软件成本估算中的可行性,并取得了良好的效果。

参考文献:

[1]J rgensen M. A review of studies on expert estimation of software development effort. Journal of Systems & Software,2004(1-2):37 60

[2] 王松桂,陈敏,陈立萍. 线性统计模型: 线性回归与方差分析.北京: 高等教育出版社, 1999

[3] Boehm, Christ Abts, Sunita Chulani. Software

猜你喜欢

回归分析预测检验
苯中水分的检验
选修2—2期中考试预测卷(B卷)
选修2—2期中考试预测卷(A卷)
检验真朋友的新标准
基于变形监测的金安桥水电站坝体稳定性分析
森林碳汇影响因素的计量模型研究
河北省城镇居民人均可支配收入与消费统计分析
小议离子的检验与共存
河南省经济增长质量与创新能力关系的实证分析
期末综合复习测试卷