Microsoft Excel 中的财务建模/分析
理解结果至关重要。第一个测试是您的结果是否为您提供了分析客户问题所需的信息。
然后,您需要使用模型来测试不同输入的影响,以了解其对变化的敏感性。理想情况下,您希望获得稳健的结果(即,它们对您的输入不太敏感)。
所有财务建模都存在不确定性,因为我们无法预测未来,事情可能不会按照我们的假设进行。
模型的强大之处在于它们是动态的(这被视为第一个电子表格 Visicalc 的主要优势)。您可以更改假设并立即查看效果。
阅读这篇关于项目融资的论文 [1],尤其关注第 3.2 节,以了解更多关于敏感性测试的信息。
您通常会从一组“基本情景”假设和输入开始。这些是您的最佳估计,您将使用它们来生成一组预期结果。
通常会设置替代情景,例如悲观、预期和乐观,并将其通过模型运行。每个情景将包含由用户选择的一组假设和输入。重要的是,假设需要保持一致,例如,如果您假设通货膨胀率仅为 2%,那么工资增长也可能很低。
这种方法对于业务计划和风险管理非常有用,因为它显示了不同条件的影响。
情景测试速度很快,并且易于向管理层展示结果,向他们展示最好和最坏的情况。另一方面,它无法告诉您每个情景发生的可能性,或者是否需要测试其他重要情景。您完全依赖于设置情景的人员的技能和经验,并希望他们想到了所有内容。
总而言之,这种方法
- 让我们看到最坏情况和最佳情况与预期结果的差异,
- 在电子表格中易于设置,并且
- 使向客户展示替代方案变得简单。
弱点在于
- 您不知道每个情景发生的可能性,
- 您无法估计平均结果,同时考虑所有替代方案,并且
- 您无法估计可能结果的范围或生成百分位数。
注意:Excel 具有“情景”功能,允许您在情景名称下存储多个输入的值。问题是情景详细信息被隐藏了。最好在表格中设置所有情景(如上例所示),以便轻松比较。
压力测试与情景测试相关。假设您已经建立了一个保险公司未来财务状况的模型。您可以通过设置各种灾难情景,然后对每种情况下保险公司的财务状况进行建模来“压力测试”保险公司。理想情况下,保险公司将能够在每种情况下都生存下来。
压力测试可以基于实际的过去事件或想象的事件。
与随机测试(如下)一样,设定假设可能很困难,正如美国一份关于其住房机构之一的报告摘录所示
随着基本模型开发的完成,我们现在深入到敏感性测试中;也就是说,将完整的一套实际企业数据通过模型运行,以评估其组件的各种“设置”是否适合压力测试。
例如,我们必须确定管理国债收益率曲线形状的适当规范、国债利率与企业借款利率之间的关系以及房价与利率之间的关系。这些完整的模拟运行有助于我们评估压力测试选项,并额外地帮助识别我们需要解决的可能的模型异常或程序错误。
这在类型的模型开发项目中是标准的。
模型还可以用于显示更改一个假设或可能几个相关假设的影响。这种敏感性测试可以显示哪些输入对结果影响最大。
敏感性测试还可以测试模型是否现实,因为用户通常会对进行更改时预期会发生什么有一些了解。
敏感性测试还可以帮助确定模型是否足够准确。例如,假设一家公司有一个预算模型,并且需要该模型的准确度在 200 万美元以内。敏感性测试可能会显示影响最大的假设是投资率,并且该比率仅变化 0.5% 就会产生 200 万美元的影响。这意味着用户必须选择一个与实际比率(我们还不知道,因为它在未来)不超过 0.5% 的投资假设。如果用户无法确定是否能够达到如此准确的程度,那么该模型就无法提供公司想要的准确度。
敏感性测试是突出模型部分的强大方法。它加深了您对模型如何对变化做出反应的理解,您应该使用它来熟悉您以前从未使用过的新的模型。
敏感性测试也有其局限性。您必须小心更改每个假设的程度以及如何比较一个假设的敏感性与另一个假设的敏感性。
因为它专注于一次更改一个(或可能几个)元素以查看效果,因此您无法了解最坏情况或最佳情况,也无法了解良好或不良结果的概率。因此,应将其与其他测试一起使用,而不是单独使用。
随机测试使用随机数来模拟现实生活中可能发生的许多替代情景。然后,我们可以计算百分位数以了解不同财务结果的概率。
示例:精算师希望评估由于投资回报率低而导致基金在未来破产的可能性。她使用投资模型生成(例如)1,000 组独立的模拟投资回报,可能如下所示……
每组利率都输入模型,因此将有 1,000 组结果。这些结果可以进行排序以查找(例如)10% 和 90% 的百分位数,这使精算师能够了解未来情况的良好或糟糕程度。
随机测试的最大好处是它让您更好地了解可能的经验范围,无论是高还是低。
不幸的是,它也是最复杂的构建方式,并且需要更复杂的假设,例如利率的统计分布以及另一个工资增长的统计分布——您必须考虑它们之间是否存在需要考虑的相关性,因此也许这些分布是相关的。
由于所有这些问题,构建投资市场的随机模型非常困难。对死亡率进行随机建模要容易得多。
在您的分析中还有另一种使用随机测试的方法。如果您有多个输入,并且每个输入都可以在一定范围内变化,那么这将是需要测试的大量输入组合,以防它们很重要。
一种简单的近似方法是随机创建大量输入集,即在您为每个输入设置的范围内随机选择每个输入。
下面是一个示例……
等等。
每个这些集合都可以通过模型运行,并对结果进行排序以查看是否存在任何模式,例如哪些输入始终给出高结果?
这是一种快速简便的方法,可以尝试大多数输入组合。
一些模型需要包含反馈循环,因为在现实世界中,假设和输入不会随着时间推移而保持不变。
例如,如果您正在对养老基金进行建模,并且资产低于负债,则雇主很可能会额外支付款项以消除差额。您的模型可能需要通过包含一个模拟雇主对财务状况反应的算法来允许这种情况。
如果您正在对银行或金融机构进行建模,并且以某种方式借方交易总额超过贷方交易总额,那么我们需要循环读取交易。