项目管理指南 · 风险、质量与控制
项目管理中的蒙特卡洛模拟:计算示例
蒙特卡洛模拟是一种定量风险分析技术,它将项目模型运行数千次,每次都从可能的工期或成本区间中随机抽取数值。结果显示项目在给定日期前或在给定预算内完成的可能性有多大。
要点总结
- 蒙特卡洛模拟将估算区间转化为日期和成本的概率。
- 基于最可能值的计划往往实现的概率很低。
- 使用 P50 和 P80 结果来设定承诺和应急储备。
- 良好的输入和合理的进度逻辑比软件更重要。
为什么要使用蒙特卡洛模拟
单点估算会掩盖不确定性。如果每项任务都有一个可能的工期区间,将“最可能”值相加得出的日期通常只有很小的实现机会,因为超支往往比提前更多。而模拟则能展示结果的完整分布。
运作方式
- 建立模型:进度网络或成本分解。参见 关键路径法 了解进度逻辑。
- 用区间代替单一估算,通常采用三点估算(乐观、最可能、悲观),并选择三角分布或 PERT(贝塔)分布等分布。
- 可选择加入带有概率和影响的离散风险,例如有 30% 的可能性延误 10 天。
- 多次运行模型,通常为数千次迭代。每次运行都会为每项任务和风险抽取一个值。
- 将结果汇总为直方图和累积曲线(S 曲线)。
- 读取 P50 和 P80 等置信水平,并查看哪些输入因素在驱动结果。
计算示例
一个小项目有三项依次进行的任务。估算以工作日为单位:
| 任务 | 乐观 | 最可能 | 悲观 |
|---|---|---|---|
| A:设计 | 8 | 10 | 16 |
| B:构建 | 15 | 20 | 30 |
| C:测试 | 4 | 5 | 9 |
| 合计 | 27 | 35 | 55 |
将最可能值相加得到 35 天。使用三角分布运行 100,000 次迭代,得到以下结果(每次运行的数值会略有不同):
| 度量 | 结果 |
|---|---|
| 在 35 天或更短时间内完成的概率 | 约 14% |
| P50(中位数) | 约 39 天 |
| P80 | 约 42 天 |
| P90 | 约 44 天 |
因此,基于 35 天制定的计划大约只有七分之一的机会能够实现。如果发起人希望达到 80% 的置信度,团队应承诺约 42 天,并将差额作为进度应急储备。
解读结果
| 术语 | 含义 |
|---|---|
| P50 | 有 50% 的概率在此值或更短时间内完成 |
| P80 | 80% 的概率;通常用于设定承诺和确定储备规模 |
| S 曲线 | 按日期或成本绘制的累积概率 |
| 龙卷风图 | 按输入因素对结果的影响程度进行排序 |
| 关键性指数 | 在所有运行中某项任务出现在关键路径上的频率 |
常见错误
- 使用过窄的区间;人们通常过于自信。
- 忽略相关性,例如同一原因会同时拖慢多项任务的情况。
- 对逻辑关系不佳或缺少依赖关系的进度计划进行建模。
- 将结果当作精确的事实来呈现,而不是基于输入的估算。
- 只运行一次分析,此后从不更新。
工具
模拟可以在电子表格中使用随机数公式运行,也可以使用电子表格插件或专门的进度风险分析软件。一些 项目管理工具 敏捷预测工具也将同样的思路应用于吞吐量数据,以预测待办事项列表何时完成;参见 吞吐量.
本主题的免费模板
常见问题
项目管理中的蒙特卡洛模拟是什么?
一种利用从估算区间中抽取的随机值多次运行项目模型的技术,用于显示实现日期或预算目标的概率。
蒙特卡洛模拟中的 P80 估算是什么?
根据模拟结果,有 80% 的可能性不会被超出的值。它通常用于设定承诺和确定储备规模。
蒙特卡洛模拟需要多少次迭代?
通常需要数千次。随着运行次数增加,结果会趋于稳定;请检查重复运行是否给出相近的结果。
蒙特卡洛模拟应该使用哪种分布?
三角分布和 PERT(贝塔)分布常用于三点估算,因为它们简单直观。如有历史数据,请加以利用。
蒙特卡洛模拟是定性的还是定量的?
定量的。它为完成日期和总成本等结果提供数值概率。
可以在 Excel 中进行蒙特卡洛模拟吗?
可以。您可以用公式从分布中抽样,并通过数据表重复计算,或者使用插件。
为什么蒙特卡洛模拟给出的日期比计划晚?
因为估算区间通常偏向超支,且并行路径会汇合,所以最可能的总值很少等于各项任务最可能工期之和。
蒙特卡洛分析中的龙卷风图是什么?
一种按输入因素对结果的影响程度进行排序的条形图,用于找出最重要的任务或风险。它是以下分析的一种形式: 敏感性分析.
蒙特卡洛如何帮助确定应急储备?
计划值与所选置信水平(如 P80)之间的差距,为进度或成本应急储备提供了站得住脚的规模。
敏捷团队会使用蒙特卡洛模拟吗?
会。许多 Kanban 和 Scrum 团队会对历史吞吐量进行抽样,以预测在某个日期前能完成多少事项,或一组事项何时能够完成。
蒙特卡洛模拟有哪些局限性?
结果的好坏取决于模型和估算。逻辑不佳、区间过窄或忽略相关性都会导致虚假的乐观结果。