基于混合效应线性回归模型的项目流行度分析方法技术

技术编号:19142490 阅读:57 留言:0更新日期:2018-10-13 09:01
针对现有研究分别单独探索缺陷报告和特征报告,对项目流行度的评估具有片面性的问题,本发明专利技术提供一种基于混合效应线性回归模型的项目流行度分析方法,通过从GitHub上收集项目数据,然后使用统计分析和回归建模,给出了项目中缺陷报告数量和特征报告数量对项目流行度的影响关系,通过项目中缺陷报告和特征报告对项目流行度影响因子的不同,分析项目流行度的提高与缺陷报告和特征报告的关系;进一步地,通过对缺陷报告和特征报告的描述多样性进行了四个维度的分析,找出缺陷报告和特征报告在描述多样性上的区别。本发明专利技术通过分析项目中缺陷报告数量和特征报告数量的差别对比来综合研究项目流行度,可以全面评估项目的流行度。

Analysis method of project popularity based on mixed effect linear regression model

In view of the one-sidedness of project popularity assessment by exploring defect reports and feature reports separately in existing studies, the present invention provides a method of project popularity analysis based on mixed-effect linear regression model, which collects project data from GitHub, and then uses statistical analysis and regression modeling to give. The relationship between the number of defect reports and the number of feature reports in the project and the project popularity is analyzed. The relationship between the improvement of project popularity and defect reports and feature reports is analyzed by the difference of influencing factors of project popularity between defect reports and feature reports. Descriptive diversity is analyzed in four dimensions to find out the differences between defect reports and feature reports in descriptive diversity. By analyzing the difference between the number of defect reports and the number of feature reports in the project, the invention can comprehensively study the project popularity and comprehensively evaluate the project popularity.

【技术实现步骤摘要】
基于混合效应线性回归模型的项目流行度分析方法
本专利技术属于计算机开源软件分析领域,尤其是一种项目开发过程中缺陷报告(bugissue)和特征报告(featureissue)对项目流行度影响的分析方法。
技术介绍
软件开发是一个复杂过程,包含很多步骤和相关开发人员。软件开发过程中通常会出现代码缺陷(bug),或者提出新的功能(feature),所以,缺陷报告(bugissue)和特征报告(featureissue)是软件项目发展过程中两个非常重要的因素。有不同目标和需求的项目中bugissue和featureissue的数量会有所不同,bugissue和featureissue的数量差别会对项目开发产生一定的影响,比如项目的流行度。现有研究主要是分别探索bugissue和featureissue,对项目流行度的判断存在片面性。GitHub是一个拥有数以亿计用户的开源代码托管网站。它允许开发人员创建和管理项目。GitHub包含数以亿计的软件项目信息。GitHub提供了一些特征比如花(followers)、种子(feeds)、网络图(networkgraph)和报告(issue)等,这些可以帮助开发者更好地管理代码仓库。GitHub的issue会有很多种类的标签,GitHub也没有提供缺陷标签和特征标签的具体解决和区分。通过检查issue的标签种类,可以自动识别出bugissue和featureissue。GitHub项目可以通过RESTAPIs进行检索,为各种应用领域(比如游戏软件,web应用程序,操作系统等)提供了各种类型的项目。项目中的编程语言也是风格百变,开发人员的数量也是有多有少。所以这些项目特征使GitHub成为一个非常具有吸引力的开源平台去收集数据进行实证研究。在先前的工作中,GitHub上的数据被用来对编程语言、项目的流行程度进行大规模的研究,并对软件测试进行研究。混合效应线性回归模型与普通的线性模型不同的地方是除了有固定效应外还有随机效应,回归效果更具有全面性和抗噪性。混合效应线性回归模型有时又称为多水平线性模型或层次结构线性模型。混合效应线性回归模型公式为:Y=Xβ+ZU+ε其中,Y是因变量向量,X是自变量矩阵,β为与X对应的固定效应参数向量,Z为随机效应变量矩阵,其构造与X相同。U为与Z对应的随机效应参数向量,ε为噪声向量。现在尚无利用混合效应线性回归模型进行项目流行度分析的方法。
技术实现思路
本专利技术针对现有研究大多是单独探索bugissue和featureissue,很少有从项目中bugissue和featureissue数量的差别对比来综合研究对项目流行度的影响,因而不能全面评估项目的流行度,本专利技术提供一种基于混合效应线性回归模型的项目流行度分析方法,通过从GitHub上收集项目数据,利用GitHub项目issue的标签来判断该issue是bugissue还是featureissue,然后使用统计分析和回归建模,给出了项目中bugissue数量和featureissue数量对项目流行度的影响关系,通过项目中bugissue数量和featureissue对项目流行度影响度不同,分析出项目流行度的提高与bugissue和featureissue的关系,全面评估项目的流行度。进一步地,通过对bugissue和featureissue的描述多样性进行了四个维度的分析,找出bugissue和featureissue在描述多样性上的区别。技术方案如下:基于混合效应线性回归模型的项目流行度分析方法,包括以下步骤:第一步,从GitHub上收集项目数据建立数据集;具体流程如下:1.2从GitHub中随机选取F个项目,F为自然数,根据结果精确度需要来设置F值的大小;1.2选择项目中的数据,方法是:选取所述F个项目中的所有issue,记issue的数量为S,S为自然数,然后统计S个issue的统计数据;第二步,构造混合效应线性回归模型,构造方法如下:2.1定义混合效应线性回归模型的因变量和自变量:·nStars:一个项目的Stars(点赞)的总数目,是项目流行度的一个体现;·AVG.timeLatency_bug:项目中bugissue的平均解决时间,代表bugissue解决的速度,单位是分钟。·AVG.timeLatency_feature:项目中featureissue的平均解决时间,代表featureissue解决的速度,单位是分钟。·AVG.comments_bug:项目中bugissue的平均评论数量。·AVG.comments_feature:项目中featureissue的平均评论数量。·nIssueBef:在这个issue开始前3个月project产生的issue数量,代表项目的工作负载。·nMembers:项目成员的总数量,代表项目的团队大小。·hasAssignee:二进制,如果该issue有至少一个提交者(assignee),则值为1。·textLen:该issue文本中的单词总数量,代表该issue的复杂度。·issueType=bug:issue类型为bugissue。·issueType=feature:issue类型为featureissue。其中nStars是因变量,AVG.timeLatency_bug、AVG.timeLatency_feature、AVG.comments_bug、AVG.comments_feature、nIssueBef、nMembers、hasAssignee、textLen、issueType=bug、issueType=feature都是自变量。2.2使用GitHub官方提供的应用程序编程接口(ApplicationProgrammingInterface,API)获取步骤2.1定义的混合效应线性回归模型的因变量和自变量数据;2.3用R语言中的lmer包对步骤2.2得到的混合效应线性回归模型的因变量和自变量数据构造混合效应线性回归模型,得到model模型,由lmer包得到model模型的处理形式如下:model<-lmer(scale(log(nStars+0.5))~scale(log(AVG.timeLatency_bug.+0.5))+scale(log(AVG.timeLatency_feature.+0.5))+scale(log(AVG.comments_bug.+0.5))+scale(log(AVG.comments_feature.+0.5))+scale(log(nIssueBef+0.5))+scale(log(nMembers+0.5))+scale(log(hasAssignee+0.5))+scale(log(textLen+0.5))+factor(issueType=bug)+factor(issueType=feature),data=data,REML=FALSE)R语言中的lmer包属于本领域的公知常识。第三步,对model模型进行方差分析,得到多元回归分析结果,包括估算值的标准误差、差值平方和,进而计算得出项目中bugissue数量和featureissue数量的方差贡献率,即本文档来自技高网
...

【技术保护点】
1.基于混合效应线性回归模型的项目流行度分析方法,其特征在于,包括以下步骤:第一步,从GitHub上收集项目数据建立数据集;具体流程如下:1.1 从GitHub中随机选取F个项目,F为自然数,根据结果精确度需要来设置F值的大小;1.2 选择项目中的数据,方法是:选取所述F个项目中的所有issue,记issue的数量为S,S为自然数,然后统计S个issue的统计数据;第二步,构造混合效应线性回归模型,构造方法如下:2.1 定义混合效应线性回归模型的因变量和自变量:·nStars:一个项目的点赞的总数目;·AVG.timeLatency_bug:项目中bug issue即缺陷报告的平均解决时间,单位是分钟;·AVG.timeLatency_feature:项目中feature issue即特征报告的平均解决时间,单位是分钟;·AVG.comments_bug:项目中bug issue的平均评论数量;·AVG.comments_feature:项目中feature issue的平均评论数量;·nIssueBef:在这个issue开始前3个月项目产生的issue数量;·nMembers:项目成员的总数量;·hasAssignee:二进制,如果该issue有至少一个提交者,则值为1;·textLen:issue文本中的单词总数量;·issueType=bug:issue类型为bug issue;·issueType=feature:issue类型为feature issue;2.2 使用GitHub官方提供的应用程序编程接口API获取步骤2.1定义的混合效应线性回归模型的因变量和自变量数据;2.3 用R语言中的lmer包对步骤2.2获取的混合效应线性回归模型的因变量和自变量数据构造混合效应线性回归模型,得到model模型;第三步,对model模型进行方差分析,得到多元回归分析结果,计算得出项目中bug issue数量和feature issue数量的方差贡献率,即项目流行度影响度;如果bug issue数量的方差贡献率>feature issue数量的方差贡献率,说明项目中bug issue数量对项目流行度的影响程度更大;否则,说明feature issue数量对项目流行度的影响程度更大。...

【技术特征摘要】
2018.04.23 CN 20181036908821.基于混合效应线性回归模型的项目流行度分析方法,其特征在于,包括以下步骤:第一步,从GitHub上收集项目数据建立数据集;具体流程如下:1.1从GitHub中随机选取F个项目,F为自然数,根据结果精确度需要来设置F值的大小;1.2选择项目中的数据,方法是:选取所述F个项目中的所有issue,记issue的数量为S,S为自然数,然后统计S个issue的统计数据;第二步,构造混合效应线性回归模型,构造方法如下:2.1定义混合效应线性回归模型的因变量和自变量:·nStars:一个项目的点赞的总数目;·AVG.timeLatency_bug:项目中bugissue即缺陷报告的平均解决时间,单位是分钟;·AVG.timeLatency_feature:项目中featureissue即特征报告的平均解决时间,单位是分钟;·AVG.comments_bug:项目中bugissue的平均评论数量;·AVG.comments_feature:项目中featureissue的平均评论数量;·nIssueBef:在这个issue开始前3个月项目产生的issue数量;·nMembers:项目成员的总数量;·hasAssignee:二进制,如果该issue有至少一个提交者,则值为1;·textLen:issue文本中的单词总数量;·issueType=bug:issue类型为bugissue;·issueType=feature:issue类型为featureissue;2.2使用GitHub官方提供的应用程序编程接口API获取步骤2.1定义的混合效应线性回归模型的因变量和自变量数据;2.3用R语言中的lmer包对步骤2.2获取的混合效应线性回归模型的因变量和自变量数据构造混合效应线性回归模型,得到model模型;第三步,对model模型进行方差分析,得到多元回归分析结果,计算得出项目中bugissue数量和featureissue数量的方差贡献率,即项目流行度影响度;如果bugissue数量的方差贡献率>featureissue数量的方差贡献率,说明项目中bugissue数量对项目流行度的影响程度更大;否则,说明featureissue数量对项目流行度的影响程度更大。2.如权利要求1所述的基于混合效应线性回归模型的项目流行度分析方法,其特征在于,所述步骤1.1...

【专利技术属性】
技术研发人员:常俊胜胡东阳王涛余跃王怀民尹刚李耀宗
申请(专利权)人:中国人民解放军国防科技大学
类型:发明
国别省市:湖南,43

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1