适用于: @RISK for Excel 5.5.0 和更新版本
当我运行我的模型时,浏览结果会为我的输出显示“There are no data values to graph”。如果我查看“模拟数据”窗口,它会在每一行中显示“Error”。怎么了?
可能有两个原因。如果这是来自@RISK 5.0 或更高版本的旧模型,请参阅下面的我的模型在@RISK 5.0(或4.5)中运行良好。
如果您为@RISK 5.5 或更高版本创建了此模型,则您的模型中很可能存在逻辑错误。您可以使用“鞋印模式”或“足迹模式”来查找错误。打开 Simulation Data 窗口(功能区结果部分中的小 x-subscript-i 图标),然后按照文章Some Iterations Show Error in Data Window 中的内容继续操作。我能做些什么?
我的情况类似,但模拟数据在每一行都显示“已过滤”,而不是“错误”。
您定义了一个过滤器,其规范会导致此输出的每个值都被筛选掉。
查看@RISK 功能区中间附近的“定义过滤器”按钮。如果过滤器处于活动状态,则该按钮具有彩色背景。单击该按钮,如果您愿意,您可以编辑过滤器设置,或者简单地从Enable Filters for Simulation Results旁边的框中删除复选标记。
如果您正在编辑过滤器,您可能想知道“类型”列。标准过滤器仅影响特定的输入或输出。迭代过滤器使用该输入或输出的值或百分位数作为标准,但当迭代过滤器排除此输入或输出的任何特定迭代时,@RISK 也会排除所有其他输入和输出的相同迭代。
我的模型在@RISK 5.0(或4.5)中运行良好。但是当我在 5.5 或更高版本中运行它时,我的输出会出现“没有要绘制的数据值”,或者“模拟数据”窗口的每一行都显示“错误”。怎么了?
您是否在使用 RiskPercentile、RiskMean 或其他统计函数?这些在 5.5 及更高版本中的行为与它们在 5.0 及更早版本(包括 4.5)中的行为不同。
在早期版本中,@RISK 统计函数(如 RiskMean 和 RiskPercentile)在每次迭代期间进行评估。这产生了三个问题。首先,对于从 1 到 N-1 的迭代,这些值是错误的,因为它们仅在目前可用的迭代中计算。其次,与此相关的是,随着每次额外迭代的运行,这些值都会发生变化,这通常不是用户想要或期望的。第三,计算所有这些额外的值会减慢模拟速度。
从 5.5 开始,默认情况下统计函数仅在模拟结束时计算一次。这可以显着提高速度,并且在逻辑上也很有意义,因为在计算完所有迭代之后才知道平均值和百分位数等。然而,在一些模型中,这揭示了一个一直存在但用户没有意识到的问题:在最终值可用之前尝试使用一个值(例如模拟百分位数或平均值)。
如果您的模型依赖于旧行为,并且您确实希望在每次迭代中重新计算统计信息,则可以使 @RISK 的行为与旧版本一样。在“模拟设置”中的“采样”选项卡上,将“更新统计函数”从“每次模拟结束时”更改为“每次迭代”。如果您进行该更改,以使@RISK 5.5,–7.x 的行为类似于 4.5 和 5.0,请记住,这可能会让您的模型运行,但会以掩盖实际问题为代价。任何引用百分位数、平均值或其他模拟统计函数的公式在每次迭代时都会得到不同的值。尤其是在早期的迭代中,它会非常不稳定。
要获取输入分布的统计信息,更好的方法是使用 RiskTheoPercentile 或 RiskTheoMean 或类似的,而不是 RiskPercentile 或 RiskMean。如果您对输入分布的统计感兴趣,更好的方法是使用“Theo”函数。请参阅输入分布的统计数据。但是,如果您要获取输出的百分位数或均值,则无法事先知道它们,您的解决方案是如上所述更改模拟设置,或者重新检查模型的逻辑。