风险定量分析工具 龙卷风图 决策树形图 蒙特卡洛模拟

龙卷风图:是项目管理中用于在风险识别和定性分析之后,进行定量风险分析的技术----敏感性分析技术中最常用的一种图表技术。 

敏感性分析:敏感性分析有助于确定哪些风险对项目具有最大的潜在影响。它把所有其他不确定因素保持在基准值的条件下,考察项目的每项要素的不确定性对目标产生多大程度的影响。 

  

敏感性分析最常用的显示方式是龙卷风图。   

龙卷风图有助于比较具有较高不确定性的变量与相对稳定的变量之间的相对重要程度。 

它因其显示形式像龙卷风一样而得名。图例请见图片。

 

___________________________________________________________________________________________

风险定量分析工具之龙卷风图

https://blog.csdn.net/rongwenbin/article/details/9301091

  
龙卷风图(TornadoDiagram)是在风险定量分析中采用的一种对单因素敏感性分析的工具。因其图形状像龙卷风,因此而得名。主要用来分析在其它因素单个较高不确定性因素和其它相对稳定因素之间的相对重要程度。
一个标准的龙卷风图如下图所示。
龙卷风图.jpg

图中,X轴表示各因素对结果的影响的取值范围。Y轴表示各不确定性因素的名称,它们对结果的影响值和它们本身的取值。
对每一个不确定的决定因素,该图都包含了一个横杆和两组数字(分别在横杆的左边和右边)。
每组数字对应着该因素对结果的影响值(上面的数字,负数用括号括住了)和该因素本身的值(下面的数字,花括号内)。

_________________________________________________________________________________________

 

决策树形图:按照当前数据集的不同属性特征将其划分为不同分支节点(数据子集),直到每一个节点的所有样本数据都属于同一类别分支属性停止划分,最终形成“树状”分支结构图形。

 

 

________________________________________________________________________________________________-

蒙特卡洛模拟(Monte Carlo Simulation)浅析

https://www.jianshu.com/p/cb44f4b457c3

蒙特卡洛模拟作为一种常用的模拟技术,在PMBOK里经常可以看到它的身影,其主要出现在风险管理知识领域中的定量风险分析过程,是用于做项目定量风险分析的工具之一,同时蒙特卡洛模拟也可以用于估算进度或成本以及制定进度计划等。(全文共 2741 字,阅读大约需要 10 分钟。)

蒙特卡洛模拟由于在PMBOK里讲得较为简单和抽象,理解起来稍微有点困难。为了让大家更加通透地理解蒙特卡洛模拟的作用及其过程原理,本文试图通过一个简单的例子来实操模拟一下这个蒙特卡洛模拟的过程。

一、简要介绍

到底什么是蒙特卡洛模拟呢?蒙特卡洛模拟是一种统计学的方法,用来模拟大量数据。可能童鞋们看到这个定义更晕了,到底什么是统计学方法,模拟大量数据干什么?别着急下面会慢慢一一道来。

我们先来简单介绍一下关于蒙特卡洛模拟的一些背景知识。蒙特卡洛模拟是在二战期间,当时在原子弹研制的项目中,为了模拟裂变物质的中子随机扩散现象,由美国数学家冯·诺伊曼(学计算机的同学都知道这位冯同志的大名,人称“计算机之父”)和乌拉姆等发明的一种统计方法。之所以起名叫蒙特卡洛模拟,是因为蒙特卡洛在是欧洲袖珍国家摩纳哥一个城市,这个城市在当时是非常著名的一个赌城。因为赌博的本质是算概率,而蒙特卡洛模拟正是以概率为基础的一种方法,所以用赌城的名字为这种方法命名。

蒙特卡洛模拟是在计算机上模拟项目实施了成千上万次,每次输入都随机选择输入值。由于每个输入很多时候本身就是一个估计区间,因此计算机模型会随机选取每个输入的该区间内的任意值,通过大量成千上万甚至百万次的模拟次数,最终得出一个累计概率分布图,这个就是蒙特卡洛模拟。

二、 模拟过程

蒙特卡洛模拟在实际的项目管理应用中一般较为复杂,而且很多时候用在专业的项目风险分析软件里面(比如Pertmaster),通常用在较为大型的项目和企业中。我们这篇文章只是为了让童鞋们对于蒙特卡洛模拟有个更为直观清晰的认识,同时鉴于篇幅和不至于让讲解过于晦涩,所以这儿我们只是准备用Excel工具来简单地模拟和介绍一下蒙特卡洛模拟的实施操作过程,这样大家也能对蒙特卡洛模拟有个更为直观地了解。

我们以定量分析项目总持续时间为例来简要介绍一下蒙特卡洛模拟。比如说我们现在有个项目,该项目共有三个WBS要素分别是设计、建造和测试,为了简单起见我们假设这三个WBS要素的预估的工期概率分布都呈标准正态分布,各自的平均工期、标准差以及最悲观、最可能和最乐观的估计工期如下图所示(我们这儿简单地认为基于正态分布的工期的最悲观/最乐观的估算工期定在均值正负3个标准差的位置),而且三者之间都是完成到开始的逻辑关系,这样整个项目工期就是这三个WBS要素工期之和。

现在我们需要用蒙特卡洛模拟来以这三个要素的工期的分布为输入,来模拟得到整个项目的工期概率分布图。由于设计、建造和测试这三个要素都是呈标准正态分布,我们可以根据上面表格中的各自的均值和标准差数据大致画出这三个要素工期的概率分布图如下面的样子:

我们要用蒙特卡洛模拟来定量分析整个项目的工期进度风险。于是我们用计算机来模拟项目的实施,我们的思路是:第一步:随机选取每个WBS要素的工期值作为输入(因为每个要素的工期不是恒定的,本身就是一个估计的分布区间);第二步:然后把三个WBS要素的值相加得到整个项目的工期值,这样就完成了一次模拟;第三步:重复第一二步,然后就这样一次一次的模拟,需要模拟成千上万次最终得到成千上万个整个项目总工期的数值;第四步:再对这些海量模拟次数得到海量总工期数值进行统计分析,得出其最终的项目总工期估计的概率分布。

我们先做第一步。第一步需要我们先产生这些每个要素的随机工期值。Excel里面有个函数可以生成呈正态分布的随机数,就是NORMINV。我们的设计要素的第一个随机工期取值的公式就是这么写的:=ROUND(NORMINV(RAND(),$E$3,$F$3),0),如下图所示:

解释一下这个公式:ROUND(NORMINV(RAND(),$E$3,$F$3),0),RAND() 是生成0到1之间的随机数,NORMINV(RAND(),$E$3,$F$3) 是生成呈均值为E3(图中为14)、标准差为F3(图中为2)的正态分布的随机数,ROUND 是四舍五入的意思,这样回车我们就生成了设计这个要素的第一个随机工期值17。同理我们把这个公式值往下拉,复制400次(我们此例中模拟400次),就得到了400个呈正态分布的随机工期值;然后建造和测试的随机工期值也是照葫芦画瓢,这样我们就得到了这3个要素的400次模拟的随机值,再每次的3个要素的随机值相加得到总工期的模拟值,如下图所示:

此时前三步就做完了得到了总工期的一组数据(400个)。现在开始做第四步对这组数据做统计分析和作图。

4.1 先把总工期这一列(图中E列)400个值拷贝一份,粘贴数值到另外一列(注意粘贴的时候选择“选择性粘贴”然后选“值”,因为随机数随时变动,这儿需要把值固定下来),用MAX和MIN函数计算出这一列400个值的最大值为76,和最小值为45,作为分组依据,然后在旁边 I 列依次升序排列42-78(前后多取几个数值图像更完整)这部分数值作为分组数据,如下图所示:

4.2 然后计算每个分组数据在总工期这组数据中出现的概率,这儿需要用到函数FREQUENCY,计算概率的公式为:=FREQUENCY(H8:H407,I8:I40)/400,意思是统计每个分组数据在总工期这一组数据中出现的次数,再除以模拟总次数400就得到这个分组数据出现的概率。再计算一个累积概率值,累积概率值就是前面的所有单个概率值加起来的概率,比如算分组数据46的累积概率值就是把46以下的数值的概率值全部加起来,这样我们就得到关于分组数据在总工期这组数据中出现的概率和累积概率的数据,如下表格所示:

4.3 通过对上面表格的数据,以分组数据为X轴,出现概率和累积概率的值为Y轴于是可以做出下面关于总工期的概率分布图:

红色柱状图是整个项目估计刚好多少天完工的概率数据,比如图中60天对应的概率大约是11%,表示整个项目刚好60天完工的概率是11%;蓝线就是我们PMBOK上定量风险分析得到的那张S曲线图,也是我们最终蒙特卡洛模拟需要得到的最终的模拟输出:总工期的概率分布图。通过这个S曲线,我们可以预测整个项目在多少天内完工的概率。比如我们需要预测整个项目在56天完工的概率,通过S曲线了解到56天对应的累积概率是34%左右,也就是整个项目56天内完工的概率是34%,那么56天内不能完工的概率就是1-34%=66%,这就是风险。如果觉得风险太高无法接受,那么我们可以把工期适当规划长一些,比如60天,这样查询S曲线可以得到60天内整个项目完工的概率是70%,这样就只有剩下30%的不能按时完工的风险,项目在进度方面的风险就大大降低了。

好了,至此关于蒙特卡洛模拟的基本概念和操作流程就说完了,希望能通过本文对大家学习和理解蒙特卡洛模拟有所助益,如有任何疑问、建议或指正,欢迎留言交流,谢谢阅读。

推荐阅读作者更

 

转载于:https://www.cnblogs.com/kelelipeng/p/10418082.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/365533.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java 先序遍历_二叉树的前序中序后序遍历(java代码)

importjava.util.*;public classtraversal {public static voidmain(String[] args) {List listnewArrayList<>();//构造二叉树TreeNode treeNode6newTreeNode(2,null,null);TreeNode treeNode5newTreeNode(1,null,null);TreeNode treeNode4newTreeNode(7,null,null);Tre…

js正则验证方法大全

/* 用途&#xff1a;检查输入手机号码是否正确 输入&#xff1a; s&#xff1a;字符串 返回&#xff1a; 如果通过验证返回true,否则返回false */ function checkMobile(s) { var regu /^[1][3][0-9]{9}$/; var re new RegExp(regu); if (re.test(s)) { return true; } els…

使用CLI设置WildFly绑定地址并关闭

仅使用命令行参数将WildFly绑定到主机名/ IP上非常容易。 我有一个简单的GNU / Linux盒子&#xff0c;可以用它玩各种东西&#xff0c;其中之一就是WildFly。 我使用以下命令开始在特定IP上监听WildFly&#xff1a; $> cd /opt/wildfly/wildfly-8.0.0.Beta1/bin $> ./s…

JS基本数据类型

基本数据类型&#xff1a; Undefined&#xff0c;null&#xff0c;boolean&#xff0c;number&#xff0c;string symbol&#xff08;ES6&#xff09; 复杂数据类型&#xff1a; object undefined: 变量声明未初始化&#xff0c;自动为undefined typeof 操作符检测变量数据类型…

用python自制背单词程序_c++自制背单词应用

文件结构&#xff1a;背词历史.log 用来存放背过的单词&#xff0c;存放的格式是年-月-日 时&#xff1a;分&#xff1a;秒单词 词性 中文解释生词本.txt 用来存放当下要背诵的单词列表&#xff0c;格式是单词 词性 中文解释历史记录.txt 用来当做按照时间查询生词的缓存&#…

mongodb lbs java_LBS JAVA Spring mongoDB

基本介绍位置服务(LBS)解决的主要问题是当前位置周围某个范围内的人或场所.在传统的解决方案,开发人员需要根据复杂的几何运算与大量的SQL语句进行查找,这无疑加大的开发人员的开发难度.现在我们需要更为方便的解决方案,MongoDB为我们完美解决此类LBS问题.此篇文章也主要使用Sp…

让height: 100%生效

html&#xff1a; <body><div class"box"></div> </body> css&#xff1a; .box{position: fixed;// 使用fixed定位width: 100%;height: 100%;background: orange;} 补充&#xff1a; &#xff08;父元素不设高度&#xff0c;如何让子元素高…

hash

HashSet Set接口&#xff0c;元素不能重复&#xff0c;要确保重写hashCode&#xff08;&#xff09;方法和equals&#xff08;&#xff09;方法&#xff0c;这样才能比较对象的值是否相等HashMap Map接口&#xff0c;key可为null线程安全ConcurrentHashMap&#xff08;Map接口&…

推土机:将JAXB对象映射到业务/域对象

Dozer是开放源代码&#xff08; Apache 2许可 &#xff09;“ Java Bean到Java Bean映射器&#xff0c;可将数据从一个对象递归复制到另一个对象”。 正如从其主页上的描述所描述的那样&#xff0c;它用于映射两个JavaBeans实例&#xff0c;以在实例之间进行自动数据复制。 尽管…

openssl不是内部或外部命令_OpenSSL新架构蓝图

概述日前OpenSSL官网公布了未来OpenSSL的架构蓝图。作为战略性的架构目标&#xff0c;需要大量的版本迭代本文档概述了OpenSSL战略架构。它需要多个版本的迭代从目前最新的版本1.1开始直到3.0甚至是4.0最终实现。由于版本架构变动非常大&#xff0c;涉及大量的变化和迭代&#…

eclipse安装Hadoop-0.20.2插件

因为在使用Hadoop-0.20.2这个古董&#xff0c;需要使用它自带的eclipse插件&#xff0c;而我最初安装的是现代的eclipse4.10.0。 在经历两天&#xff0c;以及以下种种尝试之后&#xff0c;均以失败告终&#xff1a; 1.网上找适合的版本&#xff0c;据说有人编译好的hadoop-0.20…

java setcontenttype_response.setContentType()在Java过滤器中重置

我试图在过滤器中将压缩文件的内容类型设置为正确的mime类型&#xff0c;而不是application / gzip。这是我的一些代码&#xff1a;public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, Serv…

休眠事实:始终检查Criteria API SQL查询

Criteria API对于动态构建查询非常有用&#xff0c;但这是我使用它的唯一用例。 每当您有一个带有N个过滤器且可以以任意M个组合到达的UI时&#xff0c;都有一个API动态构造查询是有意义的&#xff0c;因为串联字符串始终是我所不愿使用的路径。 问题是&#xff0c;您是否知道…

JS基础(一)

1、JS脚本放置位置 页面内的JS脚本中&#xff0c;各种公共函数和变量应放在head标签之间&#xff0c;而将页面加载期间执行的代码、dom对象初始化以及与dom相关的全局引用赋值操作放在body标签之间&#xff0c;如果没有特殊要求&#xff0c;不妨放在body标签之前。 2、js命名…

treegrid,可以展开的jqgrid树

效果图 html部分 <div class"padding20 bgWhite marginTop20"> <div class"cus-grid row" id"grid-wrap"> <div class"col-lg-12"> <table id"list2"></table> …

winfrom软件开发汽车测试_ETci — 全自动软件测试调度(持续集成)平台

ETci 提供了编译- 测试- 发布解决方案&#xff0c;包括&#xff1a;自动提取配置库代码进行自动构建, 自动调度静态测试工具(如QAC)进行静态测试&#xff0c;自动调度单元测试工具(如Tessy)开展动态测试&#xff0c;自动调度HIL 自动化测试系统等。使得开发、测试团队在软件开发…

LVS负载均衡群集(NAT)

----构建NAT模式的LVS群集----------client---------------LVS----------------WEB1-----------WEB2------------NFS----2.2.2.100 eth0:2.2.2.1 eth1:192.168.1.1 192.168.1.10 192.168.1.20 192.168.1.200 一、准备工作1、添加模块[rootlocalhost ~]# modprobe ip_vs[rootloc…

查询锁表并解锁

查询锁定的表:SELECT l.session_id sid, s.serial#, l.locked_mode, l.oracle_username, l.os_user_name, s.machine, s.terminal, o.object_name, s.logon_time FROM v$locked_object l, all_objects o, v$session s WHERE l.object_id o.object_id AND l.session_id s.sid …

在POJO中使用ThreadLocal的Java嵌套事务

大多数嵌套事务是使用EJB实现的&#xff0c;现在我们尝试在POJO上实现嵌套事务。 在这里&#xff0c;我们使用了ThreadLocal的功能。 了解嵌套事务 事务可以嵌套在另一个内部。 因此&#xff0c;内部事务或外部事务可以回滚或提交&#xff0c;而不会影响其他事务。 创建新事务…

HTML存储详解

和大家一起先来了解一下H5之前的存储方式&#xff1a; cookies的诞生&#xff1a; http请求头上带着数据大小只能为4K主Domain的污染 下面是百度的一些Cookies HTTP中带√的表示&#xff0c;只能被服务器端修改的数据&#xff0c;一般用来存储身份验证等信息 cookies造成了…