admin管理员组

文章数量:1565370

2024年2月15日发(作者:)

水晶球软件2000专业版

(Crystal Ball®2000 Professional Edition)

初级教程

摘要

加载在微软公司(Microsoft®)的电子表格软件(Excel®)上的水晶球软件2000专业版(Crystal Ball®2000 Professional Edition)是一个易于使用的软件它可以帮助你分析与你的电子表格模型相关的风险和不确定性这个软件包括蒙特卡洛模拟水晶球时间序列预测水晶球预言家最优选择优化查询和用来构造定制界面和程序的开发工具箱由于电子表格缺乏设计和分析可选方案的能力所以仅用电子表格来估算一个事件发生的概率是不合适的而加载了水晶球软件的电子表格模型就能具备这样的功能从而帮助用户洞察模型运行和结果产生的机制本初级教程通过一个媒体产业的实例来演示蒙特卡洛模拟和时间序列预测工具如何用于一个电子表格模型为商业决策的内在风险提供更深入的了解和度量

1 序言

1.1 电子表格模型和风险分析

风险就是不确定性是指发生损失危害和其它不愉快事件的可能性大多数人偏好低风险期待成功收益或其它形式获利的较高概率举例来说如果下个月的销售超过一定数额一种令人愉快的事件那么这些订单会使存货减少从而导致商品运送的延迟一种令人不愉快的事件反过来商品运送的延迟则会导致订单的流失发生这种情况的可能性就代表了一种风险

当使用电子表格模型时分析家习惯将那些本来不确定的变量用其平均值或其最佳估计值来输入这是因为电子表格软件只允许他们在一个单元格内输入一个数值或一个公式这些确定的模型只能产生一个结果而模型结果将被用作商业或技术决策的根据为了把握模型中本身存在的那些不确定性分析家只能通过手工方式来改变模型变量分析它们对关键结果的影响来简单地实现方案分析这种方法提供了可能结果的一定范围但它无法使人得知那些特定结果出现的可能性

管理者经常需要知道那些不确定变量分别取什么值的时候方案会达到一个最佳情况或在什么时候方案会达到一个最差情况又在什么时候方案又会达到一个最可能情况那些包含不确定性因素的实际问题绝大部分都是很复杂的为了计算每一种可能发生的结果就需要将所有输入变量的各种可选数值进行组合对于复杂的实际问题这种组合的数量是非常庞大的很难一一实现因此在实际问题中这种办法很难奏效

1.2 蒙特卡洛模拟

为了解决电子表格模型在风险分析方面存在的局限性蒙特卡洛模拟是一个现成的办法由于电子表格软件本身不具有模拟运行和模拟分析的能力所以用户必须依靠象水晶球软件这样一些加载在电子表格软件上的第三方程序来扩充电子表格软件的功能针对电子表格软件水晶球软件增加了两项功能一是用概率分布来替代单个数值二是可以进行模型的随机模拟通过水晶球软件可以生成量化的基于概率的电子表格模型例如可以得到以75%的概率保证在预算内或某一水库装满一亿桶油的可能性有90%这样的结果

蒙特卡洛模拟是一项已被确认正确并且行之有效的技术它只要求计算机具有一个随机 1

数表或一个随机数生成器我们可以通过数学方法来产生服从某一概率分布的随机数蒙特卡洛模拟是用一个城市的名字来命名的这个城市就是摩纳哥的蒙特卡洛它以充满各种冒险游戏的赌场而闻名常见的赌博游戏有轮盘赌投掷骰子老虎机等

在蒙特卡洛模拟中为了模拟一个模型需要随机选择变量的取值这与赌博中的随机现象很相似当你投掷一个骰子时你知道会出现12345或6中的某一点但你不知道具体某一次投掷时会出现哪一个点与投掷骰子相同随机变量例如利率需求量股价存货量每分钟电话呼叫次数的取值范围是确定的但在具体某一时间或某一事件时取到的值是不确定的模拟可以产生大量的方案通过分析这些方案可以深入了解电子表格模型中蕴涵的风险和机理只要使用得当蒙特卡洛模拟就能展现非常有价值的视角而这是确定性模型所得不到的

2 水晶球软件2000专业版

水晶球软件2000专业版是一个办公软件套件以基于电子表格的分析工具为特色包括蒙特卡洛模拟水晶球时间序列预测水晶球预言家和最优选择优化查询该套件还包括水晶球和水晶球预言家开发工具箱采用VBA语言Visual Basic for

Applications来构建用户界面和程序

2.1 水晶球

水晶球是一个易于使用的电子表格插件被设计用来帮助不同水平的Excel电子表格用户来进行蒙特卡洛模拟水晶球可以让用户在不确定性模型变量上定义概率分布然后通过模拟在定义的可能范围内产生随机的数值电子表格用户能产生和分析成千上万种可选的方案量化任意给定方案的风险水平水晶球可用于各种现成的或新建的电子表格模型同时其提供的增强功能不会改变原有电子表格模型中的公式或函数水晶球还包括一些水晶球工具它由七个向导驱动的插件组成可以帮助我们建立和分析模型这些工具包括靴带分析Bootstrap旋风图分析Tornado Analysis方案分析Scenario Analysis二维模拟2D simulation和分批拟合Batch Fit

2.2 水晶球预言家

水晶球预言家是一个向导驱动的Excel插件通过时间序列预测来指引你的工作水晶球预言家分析你的数据序列并使用数据的水平趋势季节和误差来预测数据序列的未来值水晶球预言家对数据采用八种不同的季节性和非季节性的时间序列预测方法并当主要数据序列依赖于其它一些独立数据序列时能采用多重线性回归产生的预测结果可以被定义为水晶球的假设单元并用于蒙特卡洛模拟

2.3 优化查询

优化查询是一个专为水晶球设计的全局优化插件它通过自动搜索并找到模拟模型的最优解决方法从而增强了水晶球的功能优化查询采用多种技术的混合包括分散搜寻和先进的禁忌搜寻方法来找到决策变量的合适组合以取得最佳的可能结果当程序运行时自适应和人工神经网络技术帮助它从过去的优化运算中自我学习从而使其在更短时间内达到更好的结果一个安装向导可以帮助用户定义约束条件目标函数和要求甚至设定一个有效的边界选项本初级教程将不涉及优化查询的使用

2.4 开发者工具箱

通过VBA程序或任何其它Excel支持的外部语言水晶球和水晶球预言家开发工具箱可以让用户完全自动运行和控制水晶球的模拟过程和水晶球预言家的预测过程这个工具箱包括开启水晶球和水晶球预言家编程能力的宏指令与宏函数库通过该工具箱用户能自动运行多重模拟来测试不同假设单元的组合整合水晶球和其它软件工具生成TURNKEY应用来避免用户涉及程序的复杂机构甚至构建定制的报告或完成模拟后的自动分析本初级教 2

程将不涉及开发工具箱的使用

3 关于科罗拉多有线电视的实例

本初级教程将展示模拟和预测是如何改进一个商业决策的在这个实例中将看到如何从一个历史数据序列进行预测定义概率分布运行蒙特卡洛模拟和进行模拟结果的分析和报告的这里描述的实例可以从决策工程公司的网站地址参见附件上免费下载在实例的最后将会得到取胜的关键因子的统计分类新产品底线状况的分析和如何得到一个清楚表达你的发现的报告

科罗拉多有线电视是一家本地有线电视供应商正在考察一项被称作互动电视ITV的新技术互动电视将根据需要提供内容电影体育比赛和新闻科罗拉多有线电视相信本地观众会接受这项服务但认为下滑的经济会导致一些无法预知的风险

管理层已要求对互动电视做一个从2004年到2009年的预测模型他们想在制定该项重大投资决策之前能更好地了解这种新技术的销售和市场潜力互动电视是否真的具有足够的发展潜力来推向市场六年之后该项目的净现值NPV会是多少呢

3.1 建立模型指定不确定因素

首先需要建立一个有效的可检验的决策模型这个模型能尽可能地表示互动电视的销售方案模型的建立需要团队合作同时需要仔细收集数据和建立模型这样才能针对互动电视的市场潜力建立一个现实的基本的模型该模型(图1)显示了科罗拉多有线电视的三个现有产品(有线电视卫星电视和广播电视)的市场份额和规模外加所期待的互动电视项目的市场份额和规模

图1科罗拉多有线电视公司电子表格模型

然后需要估计互动电视项目的收入和成本并且得出一个六年期的净现值基于上 3

述决策估计净现值的期望是5100万美元(其中年利率为10%)但上述结果的可能性有多大呢能产生出比5100万美元更大的净现值的概率是多少呢等于小于5100万美元的概率又是多少呢水晶球预言家和水晶球将会帮助你回答这些问题

3.2 启用水晶球

模型设计和检验之后可以通过视窗操作系统Windows的开始菜单打开水晶球和Excel软件水晶球软件在Excel软件上加载了一行新的工具栏和三个新的菜单项工具栏(图2)上的按钮从左到右以建模过程(设置模拟结果的分析和表达)来排列最后一个按钮用作在线帮助

1

5

2 3 4 6 7

8

9 10

图2工具栏按钮(1)定义假设 (2)定义预测 (3)运行属性 (4)运行 (5)停止 (6)单步执行 (7)预测窗口 (8)灵敏度分析 (9)生成报告 (10)帮助

三个新增的菜单项包含了所有工具栏上的功能另外还有一些其他功能单元菜单包含了所有模型的设置功能运行菜单包含了所有的模拟和分析功能最后一个菜单是水晶球工具用以打开专业版上的一些其它工具

3.3 用历史数据预测家庭数

2004年后该地区的潜在客户即那些有可能需要科罗拉多有线电视服务的家庭数是不确定的尽管实际增长速度比较难估计但根据这一地区20年的历史数据可粗略估计出每年新增的拥有电视的家庭数为50000户因为该数据存在时间的成分可以用水晶球预言家来得作更精确的时间序列预测从而代替刚才粗略的估计值

为了运行水晶球预言家选中计划要进行预测的数据序列中的任何单元格通过水晶球工具菜单打开水晶球预言家程序该程序前面的四个步骤可以帮助你定义组织和观察数据自相关性可用于判断数据是否具有某种季节性显示出周期性变化本例中的历史数据是年度数据不存在季节性家庭数呈现增长的趋势

方法画廊Method Gallery以图画方式提供了八种时间序列预测方法允许你选择其中任何一种或选择全部方法来对你的数据作比较这些方法被分成季节性和非季节性两种双击每个方法的图画可深入了解该方法的作用方法画廊对每种方法都自动给出误差统计方法或参数供你缺省使用由于本例中的数据是单一独立的不需要进行多重线形回归

输入预测的时期本例为年为5选择置信区间选项为5%和95%在准备过程的任何时候水晶球预言家都可以让你预先浏览预测结果图3

图3已有家庭数的时间序列预测

4

对于这组家庭数的数据水晶球预言家自动选择二次指数平滑法作为最佳的预测方法在这之前水晶球预言家已经检查了这组历史数据使用每一种非季节性方法来作拟合挑出了拟合效果最佳误差最小的方法进而预测了未来五年的趋势并计算了90%的置信区间

在预览窗口中你可以选择输出图表和数据的格式水晶球预言家能将预测值生成为一个正态分布当你运行了预测之后你可以将这些分布复制并粘贴到电子表格中家庭数预测单元格上去通过如上更精确的时间序列预测净现值增加到了5300万美元

3.4 定义水晶球假设单元

在水晶球中概率分布被看作假设单元是基本的输入量被用来定义任何模型变量的不确定性怎样识别那些需要从单个值变为概率分布的变量最好的方法就是看看哪些变量是明确的而哪些变量是不硬的或者说是不确定的在这个模型中市场占有率首期投资额和每年的运行费用都是水晶球假设单元的主要候选对象

为了定义一个假设单元先选中一个电子表格变量再单击工具栏中的定义假设按钮在分布画廊图4中水晶球提供了16种预先定义好的分布和一种可由用户定制的分布四种最常用的假设单元分别是正态分布三角形分布均匀分布和对数正态分布

图4分布画廊

水晶球软件还可以对已有数据作连续分布的拟合并可以定义相关假设单元间的相关系数在这个例子中你可以根据掌握的知识和直觉来定义假设单元当你对一个变量了解得越多你定义的分布就越准确

3.4.1 市场占有率

2004年的市场占有率估计为2%但这一数字也可能低到0%或高到3%单击定义假设按钮选择三角形分布对于最大值最小值和最可能值已知的情况用三角形分布来描述是非常好的图5显示了如何对互动电视2004年市场占有率建立一个三角形分布的假设单元如果获得的是百分位格式的数据你也可以选择百分位法来定义该分布

图5用三角形分布定义互动电视的市场份额 5

同样利用表1的数据可将互动电视20052009年的市场占有率分别用三角形分布来定义虽然你希望市场占有率每年都增长但实际上不可能如基本模型预言的那样稳定增长假设单元可以让你建立那种随时间推移的不确定性

表1 20052009年互动电视市场份额的不确定性

年份 最小值 最可能值

7%

10%

15%

20%

25%

最大值

10%

15%

20%

30%

35%

2005 0%

2006 0%

2007 0%

2008 0%

2009 0%

3.4.2 首期投资额

正态分布它的曲线形状象一口钟的外形常用来表示那些自然生成的随机变量正态分布随机变量存在一个最可能的值左右对称取值较集中在平均值附近在基本模型中首期投资额被估计为1亿美元而真实的投资额会接近1亿美元这一平均值但也有可能高到1.3亿美元或低到7000万美元平均值为1亿美元标准差为1000万美元的正态分布能更准确地描述这一变量图6

图6用正态分布定义首期投资额

3.4.3 年度运行成本

最后还有六年中每年的运行成本在基本模型中预计每年成本以100万美元增加利用水晶球软件可以将这些变量定义为正态分布它们的标准差为100万美元而每个正态分布的平均值可通过单元格引用的办法来直接包含电子表格中的相应数据图7

图7采用单元格引用方式的正态分布定义2004年的运行费用

6

3.5 定义一个预测单元

在定义完所有的输入变量假设单元后你需要定义输出变量输出变量在水晶球中称之为预测单元预测单元是你指派水晶球软件在模拟过程中跟踪的一个公式单元像假设单元一样可以定义的预测变量的个数是没有限制的当然个数越多就会消耗越多的内存本模型只有一个预测单元即净现值NPV选中该单元格单击预测单元定义按钮打开预测单元定义对话框图8输入一个唯一的名字然后点击OK按钮即可

图8定义一个预测单元

3.6 运行蒙特卡洛模拟

3.6.1 设置运行属性

水晶球软件可以让你对模拟属性进行全面的控制可以设置的运行属性包括运行的试验次数使用什么样抽样方法在模拟循环中的任何时刻和地点运行宏选择提高模拟速度的方式以及精度控制精度控制是一种置信度检验的方法是在模拟统计的基础上让预测的准确性达到所需的水平

抽样方法有两种蒙特卡洛抽样和拉丁超立方抽样使用蒙特卡洛抽样方法产生的随机数相互之间是完全独立的而使用拉丁超立方抽样方法水晶球会把假设单元的概率分布分成等概率的几个区间区间的个数由你自己定义在模拟中为每一区间产生一系列的随机数本例的蒙特卡洛模拟进行2000次试验

3.6.2 检验和运行模拟

在开始模拟之前你可以通过单击工具栏中的单步运行按钮来检查模型是否正确在水晶球软件中每一步表示一次随机试验在每一步中水晶球软件为每一个假设单元产生一个随机数Excel会自动重新计算模型当模型为可选方案进行重新计算后你可以通过检验来发现是否有计算错误

在模拟中水晶球软件按照你要求的次数来进行大量的试验同时将预测值保存起来留作后面的分析用要运行模拟首先单击工具栏中的开始模拟按钮当模拟开始时净现值NPV预测或频率图表就被建立了起来当水晶球把随机产生的值来自概率分布嵌入假设单元时电子表格中的值也会同时变化

3.7 预测图表

2000次试验完成之后可以使用预测图表来分析这些结果预测图表是一个包含所有图9净现值的预测图表

7

2000次试验的统计数据的交互式直方图原先预计的5100万美元出现的可能性有多少呢根据模拟结果图9只有大约8.8%的把握达到或超过你原先估计的净现值达到5300万美元从家庭数历史数据作预测后计算出的净现值的概率会更小另外在图表左范围框中输入0可以得到大约有60%机会能做到不亏

统计数据视图图10能帮助你得到更多的信息从峰度Skewness和偏度(Kurtosis)的数值可以看出模拟结果比较接近正态分布其标准差是330多万美元极差是2亿3000万美元极差为什么有这么大呢水晶球软件的敏感度分析能找出引起结果变化的关键因素

图10净现值预测单元的统计数据视图

3.8 灵敏度分析

当模拟运行时灵敏度分析使用等级系数法来动态计算13个假设单元对预测单元的影响灵敏度图表将这些影响表示为相关系数或百分比值的形式列在图表最上面的假设单元对净现值的影响最大条形图的方向表明该影响是正影响还是负影响

在本例中2006年到2009年的市场份额对净现值的影响最大图11在这项研究中最后几年的市场份额取得比较大表1这样的假设合理吗如果缩小这些分布的范围重新运行该模拟会发生怎样的情况呢通过提出上述这些问题你就会明白模拟和灵敏度分析可以如何帮助你关注模型中起最重要作用的那些因素模拟建模是一个不断反复的过程开始的结果可能显示互动电视项目不会达到预期的效果但通过对模型中起关键作用的因素的了解能帮助你改进该模型并将内部风险转移出去

图11净现值的灵敏度分析图表

3.9 保存结果

当对模型和模拟的结果感到满意后你有两种方式将其保存成文件第一种方法是将模拟结果图表和变量生成一个可打印的报告这个包含Excel图表的报告文件可以保存为一 8

个新的工作表也可以保存为与模型同一工作簿的一个新工作表另外也可以摘录一些原始预测数据诸如预测值统计数据百分比值频数将其保存到一个新的工作表中或者将其保存到与模型同一工作簿的一个新工作表中

4 结论

对未来赢利状况进行模拟分析可以帮助用户减少风险大大提高决策的质量水晶球软件2000专业版在Excel中增加一些非常容易使用的工具其中包括蒙特卡洛模拟全局优化和时间序列预测从而克服了电子表格的局限性把概率论方法引入到电子表格预测中分析家可以更好地量化模型的内在风险并得到更多的灵感而这是传统定性方法所不能得到的

附录水晶球资源

本初级教程中描述的模型可以在决策工程公司网站的模型范例库<网址/models/model_>中免费获得该网站还包括论文教程案例研究以及互联网链接等一些其它免费资源另外还可以在该网站免费下载该软件及其教程的试用版本

9

本文标签: 水晶球模型模拟预测电子表格