1、选择合适的参数
在计算 VaR 之前,需要先明确所计算 VaR 的参数。最重要的两个参数为时间期限和置信度,前者对应所需衡量风险的时间段,后者对应风险的容忍度。
1.1、选取时间期限
在选取时间范围有两个考虑因素
- 所关注的风险期限:某些公司更关注于短期风险,使用较短的时间范围。另外一些公司并不太关心短期的波动,则使用较长的 VaR 时间范围。
- 交易活跃程度:一般来说,公司资产的变化程度越大,其选取的时间范围越小。对于一般商业银行,通常只看未来一天的 VaR ;投资公司则关注一周到一个月的期限,而一般公司则会使用一个季度甚至一年的时间范围。
某些公司对不同资产类型使用不同的 VaR 时间范围,比如不流通的资产的时间范围更长一点。但不推荐这么做,因为:
- 衡量流动性风险的理论有很大进步,使用较长时间的 VaR 是一个笨拙的方法,而且容易将流动性风险和市场风险混为一谈。
- 对不同的资产使用不同的 VaR 参数,在更高层面无法整合,也使得在不同资产之间无法进行比较。
1.2、选取置信度
置信度取决于对于损失的容忍度。商业银行和保险企业的损失容忍度较低,而投资公司的容忍度要高一些。一般来说,对于较短的时间期限( 1 天或一周):商业银行使用 99%,其它一般机构使用 95%。
另一种定量的方法为, VaR 选取置信水平,使得损失超过该值的可能性等于目标违约概率。比如,公司希望将评级维持在 Aaa 级,穆迪的 Aaa 级公司对应 1 年内违约的概率为 0.01%,此时 1 年期 VaR 选取置信水平为 99.99%。
美国的银行通常使用 99.98%的置信水平( 1 年期 VaR )对其经济资本进行衡量,等同于目标评级水平为 Aa。
2、计算细节
在前面只提到了计算 VaR 的方法和框架,这里补充一些重要的细节。有了这些细节,再加上定价公式,至少能够写出一些简单的 VaR 计算程序。
2.1、收益率:算术收益率还是连续收益率
对于一个因子有两种收益率方法:
- 算术收益率:假设期末价格为$ P_1$ ,期初价格为$ P_0$ ,那么收益率为$ P_1/P_0-1$ 。
- 连续收益率:假设期末价格为$ P_1$ ,期初价格为$ P_0$ ,那么收益率为$ \log(P_1/P_0)$ 。
算术收益率即日常理解的收益率。为什么还需要连续收益率的概念呢,因为
- 它对于时间是简单叠加的:假设第一期的连续收益率为$ r_1$ ,第二期为$ r_2$ ,那么两期合并收益率为$ r_1+r_2$ 。
- 一般来说,连续收益率是正态分布。连续收益率可分解为各个期间的连续收益率之和,假设各个期间互相独立,根据大数定律,连续收益率收敛于正态分布。而算术收益率不是正态分布,最直接的理由是,算术收益率有下限-100%。
所以一般地,在模特卡洛模拟法中通常使用连续收益率,在计算损益额时再将连续收益率转化成算术收益率。
但算术收益率也有一个很好的优点:它对于横向是线性可加的,即组合的收益率等于各个因子的加权算术平均。所以参数法里使用算术收益率,并基于下面简单事实,可以认为算术收益率也符合正态分布:
当$ r\sim 0$ 时,$ r \sim \log(1+r)$ 。
历史模拟法中无需假设收益率的分布,与这两种方法无关。
2.2、风险矩阵的计算方法
参数法和蒙特卡洛模拟法,在计算 VaR 之前,都需先估计风险矩阵,即各个风险因子之间的协方差矩阵。有几种方法计算该协方差矩阵,包括平均加权法、GARCH 法、指数移动平均法和隐含法。
其中平均加权法是直接用过去历史一定期间内的样本计算方差; GARCH 法是将方差(和协方差)视为一个 GARCH 过程,用最大似然法进行估算;隐含法则利用衍生产品内涵的波动率进行估算。在实际中最常用的是指数移动平均法。
指数移动平均法使用历史数据的加权平均和计算方差$ \sigma_t^2$ ,越近的历史数据所占用的权重越大:
其中$ r_t$ 为因子收益,$ \lambda$ 为衰减因子,对应半衰期,表示经过多长时间,权重降低一半。半衰期越长($ \lambda$ 越大),所得到的风险矩阵和 VaR 越稳定。RiskMetrics 推荐日 VaR 使用$ \lambda=0.94$ ,周 VaR 使用$ \lambda=0.97$ ,分别对应半衰期 10 和 21 (半个月和一个月)。
使用移动指数平均法的另一个好处是:样本的长度对结果的影响较小。衰减因子为 0.94 时, 99%的信息来源于最近的 74$ =\log(1-p)/\log \lambda)$ 个样本;衰减因子为 0.97 时, 99%的信息来源于最近的 151 个样本。
$ \lambda$ 的选取和 VaR 的目的相关。在日常风险管理中,需要动态检测风险, VaR 要能衡量当时市场状态,通常使用较短的半衰期。
但在监管中,由于 VaR 和风险资本相关,银行等机构需要根据 VaR 确定其风险资本,所以并不希望 VaR 变动过快,此时它们会选择使用较长的半衰期,或者直接使用历史法计算 VaR。
2.3、历史法中考虑权重问题
如果使用固定区间比如一年的样本长度计算 VaR ,并且样本权重一样时,恰好位于样本区间前边的那个历史数据,将不包含在今天的 VaR 计算范围。如果那个边界数据为一个极端数据时,将对今天的 VaR 结果造成很大的影响。这让人难以琢磨而且非常荒谬。直观意义上看,某个单独的历史样本,特别是很久之前的样本,在计算过程中是否包含该样本,对结果应该影响较小。参数法和蒙特卡洛模拟法中引入了指数加权法处理这个问题,衰减因子使得每隔半衰期以外的历史样本权重降低一半,这样是否包含历史上某个极端样本,对结果的影响相对较小。
在历史法中,也可以对于不同时期的样本数据赋予不同的权重解决上述的问题。最简单的方法还是上面的衰减因子法,每隔半衰期的样本权重降低一半。但是,这种方法在历史法中不如用在风险矩阵方法里好。因为,历史法计算 VaR 值,本来就非常依赖于尾部的几个极端数据,其它样本数据都不会影响结果。衰减因子法会加剧该问题。
另一个处理历史场景的方法是:用波动率去调整历史场景。比如历史场景某因子收益率为 1%,波动率为 2%。目前波动率为 3%,那么调整该场景下因子收益率为 1.5%。该方法主要是基于波动率的稳定性,即假设短期内波动率保持同样的水平(同参数法一样)。
2.4、对风险矩阵的非正定性的处理
一个矩阵$ \Sigma$ 是正定的,是指对于任何向量$ w\neq 0$ ,都有$ w^T\Sigma w> 0$ ;一个矩阵$ \Sigma$ 是半正定的,是指对于任何向量$ w$ ,都有$ w^T\Sigma w \geq 0$ 。有几种情况会导致非正定的风险矩阵,
- 如果计算风险矩阵的样本个数低于风险因子的数量,得到的协方差矩阵是半正定的。
- 因子的样本长度不一样时(比如因为样本数不够,因子 1 和因子 2 的协方差使用了 100 个样本数据,但因子 1 和因子 3 的协方差只使用了 50 个样本数据),得到的协方差矩阵可能是非正定的。
- 当分块计算风险矩阵(比如为了简化计算过程,不直接计算不同类型的因子之间的相关性,而直接定义为一个常数),并且不同块的计算方法不一样时,得到的协方差矩阵可能是非正定的。
- 对因子协方差进行压力测试时,需主动修改风险矩阵某些位置的值,使得风险矩阵不再是正定的。
上面第一种情况得到风险矩阵可以不做处理。后几种种情况导致的非正定风险矩阵会需要对负数开根号,这是不可能的。所以必须对非半正定的风险矩阵进行处理。
Correlation Stress Testing for Value-at-Risk: An Unconstrained Convex Optimization Approach 这篇文章里描述了在上述第三种请款下,如何处理非正定的风险矩阵,在其概述部分也描述了前人的若干种方法。这些方法基本上都用到了最优化,而且是二次的。在条件允许的情况下,应该使用这些学术上的结果。但某些情况下,也可以采取近似的方法。比如,由于风险矩阵是实对称矩阵,它可以对角化:
其中,$ \Gamma$ 为正交矩阵,$ \Omega$ 为对角矩阵。如果$ \Sigma$ 非正定,$ \Omega$ 对角线上有负值。在处理时,将$ \Omega$ 对角线上的负值重设为 0 即可:
2.5、如何生成随机场景
模拟法的场景从风险矩阵中得到。假设风险矩阵$ \Sigma$ 为$ n\times n$ 的半正定矩阵,那么可以生成因子场景为:
其中$ \Sigma = C^TC$ ,$ z$ 为 n 元独立正态分布,$ T$ 为场景的时间长度(相对于$ \Sigma$ )。
Q. E. D.