@RISK · 2022年5月31日

先例检查(智能敏感性分析)

适用于: @RISK for Excel 版本 5.x–7.x

当我在@RISK 中运行我的模型时,似乎需要很长时间才能进行第一次迭代。状态栏显示它正在检查先例。有什么问题吗?

先例检查(也称为先例跟踪或智能灵敏度分析)是 5.0 及更高版本中的新功能。其目的是防止@RISK 输入错误地显示在回归/敏感性分析中,例如龙卷风图。

例如,考虑一个具有两个输入的简单模型。这两个输入是相关的——可以说完全相关,相关系数为 1.0。一个输入用于计算风险输出。其他输入不参与任何影响风险输出的计算。在早期版本中,两种输入都将显示为对输出具有同等影响。通过先例检查,@RISK 确定这些输入中只有一个有贡献,并从图表、报告等中过滤掉另一个。

权衡是在运行模拟之前可能需要相当长的时间来遍历完整的先例树。通过关闭部分或所有输入的数据收集,可以加快该过程,但代价是无法分析这些输入。

  • 如果您将收集设置为无,您仍然可以通过将某些输入指定为输出来收集它们。然后,您将能够获得关于它们的统计数据和迭代数据,但它们将无法用于敏感性分析。
  • 您可以在收集输入的同时禁用先例检查。在 Simulation Settings 中的 Sampling 选项卡上,将 Smart Sensitivity Analysis 更改为 Disabled 以禁用特定模型的先例检查。如果要更改所有模型的默认值,请打开实用程序 » 应用程序设置并查看默认模拟设置部分。
  • 您还可以使用 RiskMakeInput( ) 函数从先例跟踪中排除某些特定输入。请参阅在敏感度龙卷风中组合输入从敏感度龙卷风中排除输入相同的输入在龙卷风图中出现两次

智能灵敏度分析有任何限制吗?

某些公式是正确的 Excel 公式,但 Smart Sensitivity Analysis 无法使用它们。它们的值可能会在运行时以@RISK 无法预测的方式发生变化,或者它们太复杂并且在模拟开始时会花费太多时间。这些包括:

  • INDIRECT( ) 函数。
  • OFFSET( ) 函数。
  • INDEX( ) 用于返回引用时。(当用于返回值时,INDEX( ) 不会干扰智能灵敏度分析。)
  • VLOOKUP( ) 和 HLOOKUP( ) 函数。
    这些是一种特殊情况,因为它们实际上并不能阻止智能灵敏度分析的发生。但是,@RISK 无法提前知道查找表 Excel 将返回哪些值,因此它将单元格中的每个非常量单元格视为输出的先例。
  • 3-D 参考,例如跨多个工作表的总和。
  • 表中的结构化引用,例如 [列名] — 仅在 @RISK 6.2.1 和更早版本中存在问题。
    (@RISK 5.x 无法通过任何结构化引用处理。@RISK 6.x 可以通过所有结构化引用跟踪先例,但 @RISK 6.0.0–6.2.1 仅在 Excel 2010 和 2013 中无法通过公式跟踪先例使用 @ 表示 [#This Row]。)
  • 对外部工作簿的引用。
    (@RISK 6.1.1 和更高版本不显示这些消息。)
  • 对 Internet 资源的引用,例如 http 链接。
    (@RISK 6.1.1 和更高版本不显示这些消息。)

在上述所有情况下,在您的模拟过程中仍然可以正确完成计算;只是对于这些情况,@RISK 无法追踪先例。

如果您的模型包含这些公式之一,当您开始模拟时,会弹出一条消息:“无法解析”、“无效公式”或类似内容。要继续模拟,请单击消息中的 Yes 按钮。如果您想防止以后出现此消息,请更改公式(如果可以),或禁用此模型的智能灵敏度分析。要禁用 Smart Sensitivity Analysis,请单击 Simulation Settings 图标,选择 Sampling 选项卡,然后将 Smart Sensitivity Analysis 更改为 Disabled。单击确定并保存工作簿。