有网友提供了如下的工时数据,希望进行分析一下, 我尝试分析如下:
表1:工时的原始数据
1 数据整理
任务数,需求数,人数,工时数是基本度量元,先有需求数,再有根据项目的规模配备了人员,拆分了任务,项目完工后才有实际消耗的工时数,我们按照数据自然发生的顺序,重新排列表格中的列:
表2:对列重新排序后的数据
2 分布分析
2.1 80-20分析
对于单位需求工时进行80-20分析,可以发现K产品的单位工时特别高,可以识别原因。对于M,N两个产品的单位需求工时显著的少,也可以进行原因分析。
图1 单位需求工时的柱状图
其他度量元依此类推。
2.2识别离群点
先来分析第1列:需求数,即项目的规模。
在minitab中对需求数进行图形化汇总分析:
图2 需求数的汇总报告
可以看到有2个规模最大的项目是离群点!说明这2个项目没有代表性,不是普遍存在的现象,是例外,可以单独分析。
忽略这2个项目后,需求数的图形化汇总分析如下:
表3: 删除离群点后的数据
图3 删除离群点后的需求数的汇总报告
此时没有离群点了,在4到44个需求的范围内,需求数也是服从正态分布的。
对剩余的其他列做类似分析,可以发现:
图4 单位需求工时的汇总报告
图5 人均消耗工时的汇总报告
图6 需求人均工时的汇总报告
1 项目C的人数是离群点。
2 项目K的单位需求工时、需求人均工时是离群点。
3 项目E的人均消耗工时是离群点。
对于离群点需要分析一下原因,看看是数据错误,统计方法不一致,还是有其他原因?
3 相关分析
1)剔除离群点
基于需求数识别出两个规模特别大的项目,将这2个项目作为离群点,暂时剔除。
2)观察散点图
根据经验,需求数决定了任务数与投入的人数,于是先画他们之间的散点图:
图7 任务数与需求数的散点图
图8 人数与需求数的散点图
图9 总消耗与需求数的散点图
图10 总消耗与任务数的散点图
3)计算相关性系数
从以上散点图上,没有趋势的离群点,这样可以进行相关性系数的计算(图3可以判断需求数是正态分布的,人数与任务数也可以判断是否正态分布,此处省略)。
图11 相关性系数计算结果
上图可以发现,需求数、任务数、人数、总消耗都是相关的。本质上在于需求数决定了任务数、人数、总消耗。人数与总消耗的相关性相对较低,即使得到回归方程,实用价值也不大。
4)得到回归方程
在Minitab中进行回归分析:
5)应用回归方程
当知道了需求个数以后,如果需要估算项目的总消耗,可以根据如下公式进行估算:
总消耗=136.7+26.96*需求数。 (方程1)
例如:某项目有10个需求,则:
总消耗的可能的平均值为:136.7+26.96*10=306.3
当对需求进行了拆分,识别了具体任务后,可以根据如下公式进行估算:
总消耗=-6+5.537*任务数。 (方程2)
需要注意的是这2个方程的实际应用效果并不是特别好,为什么呢?因为残差的标准差S都稍大,方程1的S为271.318, 方程2的S为184.053。 计算出的预测区间都稍宽!
相对而言,方程2的相关性系数较大,S较小,实用价值更大,这也可以理解,对任务做了细拆分以后对项目了解的更详细了,预测的应该更准。
在表格中有单位需求工时、单位任务工时,可以计算出其平均值。当知道了需求个数或任务个数时,也可以通过平均值做预测:
总消耗=30.273*需求个数 (方程3)
总消耗=5.7*任务个数 (方程4)
方程1可以计算总消耗的预测区间,方程3仅仅得到了一个单点值,当需求个数越接近平均值时,两个方程的结果越接近,当需求个数越远离平均值时,方程1和实际值越接近。方程2与方程4道理类似。
综述:
1 本案例中的数据量比较小,如果采集的样本点更多一下,结论更有说服力。本文目的在于展示数据分析的方法,所以不要认为有过度分析之嫌。
2 离群点要分析原因。
3 人均消耗工时,需求人均工时的实际用途不具有代表性因此没有进行分析。
4 需求个数与任务个数如果强相关,可以只保留一个度量元,因为二者可以互相替代,以减少数据采集与分析的成本。