一、什么是Expected Shortfall?
Expected Shortfall(ES),也称为条件价值-at-risk (Conditional Value-at-Risk, CVaR),是一种基于风险度量的方法,旨在评估金融投资组合(portfolio)的风险。ES被定义为某个特定置信水平下,超出VaR(Value-at-Risk,风险价值)的部分的期望,是VaR的一种补充方法。
假设VaR方法测量的是与概率$\alpha$相对应的投资组合损失的上限,为$L_{\alpha}$。然而,VaR方法有缺陷,它假定酷的情境是期望的情况,而这是极端的假设。VaR只能告诉我们最坏的情况,而ES告诉我们在最坏情况下,实际会发生的平均情况。ES度量预计在超过VaR的损失上方的平均损失的程度,假设这种损失是不可避免的。
二、ES与VaR之间的关系
VaR是定义在某个特定置信水平的最大损失量,它描述了一种潜在的金融风险,其重心在于损失上限。ES测量的是在VaR损失上限之上的可能损失,并给出了其期望值。ES的重点在于超过VaR之后的平均损失程度,因此它提供了更全面的风险度量。
因此,ES是VaR的补充性风险度量方法。VaR是风险度量的常规方法,因为它非常容易计算和解释,但是只考虑了VaR上限附近的情况。ES估计超出VaR损失限制的平均影响,在我们需要应对极端事件时,ES比VaR更有用,更能够应对意想不到的事件。
三、如何计算Expected Shortfall?
如果采用VaR定义$L_\alpha$, 则ES可以定义为:
$$ES_{\alpha}=-\int_{-\infty}^{-L_{\alpha}}x\frac{\mathrm{dF}(x)}{\mathrm{d}x}\mathrm{d}x$$其中,$\mathrm{F}(x)$是投资组合损失分布的累积分布函数。
简单来说,这个公式计算了在超出VaR限制的损失上方的平均损失。我们采用概率密度函数来获得所有可能的结果,同时用$-\int_{-\infty}^{-L_{\alpha}}xdF(x)$来计算损失的期望,这对于我们确定可能产生的未来问题很重要。
四、代码实现示例
import numpy as np
from scipy.stats import norm
def get_es(alpha, returns):
"""
计算Expected Shortfall
:param alpha: 置信水平,范围在0-1之间
:param returns: 所有投资回报的序列,必须是按时间排序
:return: returns序列的Expected Shortfall
"""
# 计算VaR
var = norm.ppf(1 - alpha) * np.std(returns)
# 计算ES
return -np.mean(returns[returns < -var])
# 示例代码
alpha = 0.95
returns = np.array([0.1, -0.05, -0.02, -0.01, -0.09, 0.07, 0.01, -0.02])
es = get_es(alpha, returns)
print(f"Expected Shortfall at {alpha} confidence level is {es:.4f}.")
五、ES的应用
ES可以用于测量投资组合的风险,尤其是在极端风险情况下的情况。ES适合于基于投资组合而不是个别资产进行投资决策的投资者。决策者必须考虑不同的置信水平和投资组合集合的特定投资策略。实际上,越高的置信水平会导致更高的ES,因为在这种情况下,我们预计预测失误的可能性降低。
ES可以用于管理金融市场风险,帮助投资者理解他们在可能结果范围内可能遭受的损失。在金融市场,投资公司、银行等都使用ES评估他们的风险暴露,以帮助他们管理决策风险。
此外,ES的概念已扩展到其他行业,如能源和环境领域,以帮助管理潜在的负面影响。