建模任务持续时间的分布是什么?

机器算法验证 分布 估计
2022-03-12 07:30:20

最近,我介绍了一种任务估计技术。我没有让人们在 x 小时内对任务进行评分,而是让他们将任务离散化为离散大小,如小/中/大/x-大。(任务是从 scrum 为意识到这一点的人计划扑克。)

经过一些跟踪,我们应该能够根据历史数据(即统计数据)估计持续时间。我已经获得了一组样本数据(真实数据,但不是来自我的工作),并且希望看到实际上可以进行任何适合此的分布。(当然,我需要为自己的任务重新计算它。)

演示文稿中的分布如下所示:

在此处输入图像描述

这似乎是某种右偏分布。在大学时,我记得使用过一个看起来像这样的发行版,但我不确定这个名字。我希望有一些参数化的东西,我可以从数据中得出一些简单的参数(比如正态分布的均值和方差)

我制作了数据的直方图:

在此处输入图像描述

(我知道数据太少了。)

2个回答

一些选择包括WeibullGamma(包括指数)和对数正态分布,如果存在非零最小可能时间,则可能带有移位参数。(但是从您的图表看来,也可能存在离散性问题。)

如果演示图相当准确,则可能需要移位参数。

如果时间有高度偏斜的趋势,则可以考虑对数逻辑、逆高斯或帕累托。(虽然这里看起来不是这样。)

您可能想尝试Erlang发行版。以下是该页面的一些摘录:

该分布是一个连续分布,它对所有大于零的实数都具有正值,并由两个参数给出:形状,它是一个正整数,和速率,它是一个正实数kλ

以某个平均速率独立发生的事件用泊松过程建模。次事件之间的等待时间是 Erlang 分布的。k

我不确定是否有一个很好的直观解释来说明为什么 Erlang 适合这里,但我会试一试:如果您认为每个任务都由较小的子任务组成,那么您可以通过三种方式对其进行建模:

  1. 每个子任务花费大约相同的时间(因此使用 Wikipedia 页面的符号,所有任务的都是相同的,但较大的估计值具有更高的子任务数量(Erlang 公式中的)。μk

  2. 相反:每个大小的任务都有相同数量的子任务,但每个子任务更长。

  3. (1) 和 (2) 的组合。

在拟合时要小心,您有足够的历史数据来构建一个体面的模型,而不会过度拟合,并感谢您将统计数据应用于 Scrum 项目估计!