适用于: @RISK 4.x–7.x
@RISK 如何确定我的相关矩阵是否有效?如果矩阵无效,@RISK 如何调整它以创建有效矩阵?
如果相关矩阵是自洽的,则相关矩阵是有效的,这意味着指定的系数是相互兼容的。请参阅@RISK 如何测试相关矩阵的有效性。
当您单击Start Simulation时,@RISK 检查所有相关矩阵的有效性。如果矩阵无效,@RISK 会查找调整权重矩阵(见下文),如果存在调整权重矩阵,@RISK 会使用它调整无效的相关矩阵,然后继续进行模拟。但如果没有调整权重矩阵,@RISK 会显示以下消息:
Warning
The correlation matrix at … is not self-consistent. @RISK can generate the closest self-consistent matrix. OK generates a corrected matrix and continues, Cancel stops the simulation.
如果您想自行调整矩阵或创建调整权重矩阵,请单击取消。这通常是一个好主意,因为在没有调整权重矩阵的情况下,@RISK 可能会使您的相关系数发生相当大的变化。
如何设置和使用调整权重矩阵?
此功能在@RISK 5.5 和更新版本中可用。
您可以创建一个调整权重矩阵来指导@RISK 调整相关性。调整矩阵是一个与相关矩阵大小相同的三角矩阵;方阵也是可以接受的,只要它是对称的。
在您的调整权重矩阵中,在对角线下方的每个单元格中输入 0 到 100 的权重。权重为 100 表示不得更改相应的系数,而权重为 0 表示您不在乎@RISK 更改了相应的系数多少。在 0 到 100 之间,权重越大,原始系数越重要。换言之,较大的权重导致@RISK 对相应相关系数应用较少的调整,而较小的权重让@RISK 更多地调整相应的相关系数。
可以在模拟期间或在模拟前的一次性程序中进行调整。下面解释这两种可能性。
技术细节:您的相关矩阵不是自洽的,这意味着它具有一个或多个负特征值。您希望@RISK 找到一个尽可能接近原始不一致矩阵的一致矩阵,同时考虑您的调整权重矩阵。这是一个非线性优化问题。目标是最小化不一致矩阵和候选一致矩阵之间的平方差的加权和。@RISK 使用标准的有限内存 BFGS 算法来执行此优化。
如上所述,权重在 0 到 100 的范围内。在这些特殊权重之间,其他权重以指数方式处理。确切的细节是专有的,但 50 对 25 或 10 对 5 意味着“更重要”,而不是“两倍重要”。
在模拟期间校正矩阵:
您的调整权重矩阵的名称必须与相关矩阵的范围名称匹配,并带有后缀 _Weights。例如,如果您的相关矩阵命名为 Matrix1,则关联的调整权重矩阵必须命名为 Matrix1_Weights。如果相关矩阵不一致,@RISK 会查找具有正确名称的调整权重矩阵,如果找到,它将调整不一致的矩阵而不显示任何消息。您可以通过突出显示其单元格然后在 Excel 编辑栏左侧的名称框中键入其名称来命名矩阵。或者,单击公式»定义名称。(在 Excel 2003 及更早版本中,单击插入»名称»定义。)
请参阅随附的示例 KB75_AdjustDuringEverySimulation.xlsx。
当@RISK 在模拟期间调整无效矩阵时,它不会将调整后的矩阵存储在您的工作簿或任何永久位置中。@RISK 将调整后的矩阵缓存在您的临时文件夹中,名为 CORRMAT.MTX 的文件中。如果您没有更改原始矩阵,它将在未来的模拟中重用该文件。
在模拟之外校正矩阵:
您可以预先进行调整,而不是让@RISK 在每次模拟中都进行调整。如果您有一个很大的相关矩阵,这可能会影响您的模拟速度。使用 RiskCorrectCorrmat( ) 数组函数将校正后的矩阵放置在工作表中,并使所有相关输入引用校正后的矩阵,而不是原始矩阵。使用这种方法,您可以为调整权重矩阵指定任何名称或不指定名称。
请参阅随附的示例 KB75_RiskCorrectCorrmat.xlsx。
当 RiskCorrectCorrmat( ) 函数对大矩阵执行调整时,可能需要相当长的时间。您将在 Excel 的状态行上看到消息,指的是步数(尝试的候选有效矩阵的数量)和残差(差的平方和)。@RISK 保持优化,直到残差停止充分减少。不幸的是,无法知道需要多少步骤,因此@RISK 无法以完成百分比的形式为您提供进度指示器。
如果我不使用调整权重矩阵怎么办?
如果您正在运行 @RISK 4.x 或 5.0,或者如果您正在运行更高版本但未指定调整权重矩阵,@RISK 将按照以下步骤修改无效的相关矩阵:
找到最小的特征值 (E o )
要移动特征值以使最小特征值等于 0,请从相关矩阵 (C) 中减去 E o 和单位矩阵 (I) 的乘积。
C’ = C – E o I
矩阵的特征向量不会因这种移位而改变。
将新矩阵除以 1 – E o 使对角项等于 1。
C” = (1/(1−E o )) C’
@RISK 通过这种方法计算的矩阵是半正定矩阵,因此是有效的,但绝不是特殊的或最优的。它是许多可能的有效矩阵之一,其中的一些系数可能与您的原始系数完全不同。
@RISK 将新矩阵存储在临时文件夹中的文件 CORRMAT.MTX 中。您可以将其用作修改矩阵的指南,这样@RISK 就无需在每次运行模拟时对其进行调整。请参阅@RISK 如何测试相关矩阵的有效性以确保您编辑的矩阵是自洽的。
附加关键字: CorrectCorrmat 函数
下载