• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

风险价值VaRValue at Risk和损失期望值ESExpected shortfall的估计

武飞扬头像
拓端研究室TRL
帮助1

原文链接: http://tecdat.cn/?p=15929


风险价值VaR和损失期望值ES是常见的风险度量。

首先明确:

  • 时间范围-我们展望多少天?

  • 概率水平-我们怎么看尾部分布?

在给定时间范围内的盈亏预测分布,示例如图1所示。  

图1:预测的损益分布 

学新通

给定概率水平的预测的分位数。

图2:带有分位数的预测损益分布 

学新通

超出分位数的尾部。

图3:带有分位数和尾部标记的预测损益分布 

学新通


点击标题查阅往期内容

学新通

R语言基于ARMA-GARCH-VaR模型拟合和预测实证研究分析案例

学新通

左右滑动查看更多

学新通

01

学新通

02

学新通

03

学新通

04

学新通

方法

风险值(VaR)是在所选概率水平下预测分布分位数的负数。因此,图2和3中的VaR约为110万元。

损失期望值(ES)是超出VaR的尾部预期值的负值(图3中的黄金区域)。因此,它总是比相应的VaR大。

别名

损失期望值

损失期望值有很多别名:

  • 条件风险价值(CVaR)

  • 平均短缺

  • 平均超额损失

我发现“处于风险中的条件价值”令人困惑。我可以看到人们认为在一定条件下它是一种风险价值,而不是超出风险价值的预期损失。

平均超额损失似乎是最具描述性的名称。

在上方,我们看到一个带有多个名称的概念。在下面,我们看到一个具有多个概念的名称。

概率等级

当我说5%时,有人说95%。其实我们都是在处理尾部,这意味着(在我的术语中)肯定少于50%。

缩略语

“风险价值”的缩写有可能与其他两个概念混淆:

  • 方差

  • 向量自回归

所有这些都可以避免与大写约定冲突:

  • VaR:风险价值

  • var:方差

  • VAR:向量自回归

估算

初始成分

有两种初始成分:

  • 投资组合中的资产

  • 所涉及资产的价格历史

衍生成分

投资组合加上当前价格得出投资组合权重。

价格历史记录矩阵用于获取退货历史记录矩阵。

给定投资组合的回报历史记录,可以通过多种方式获得预测分布:

  • 拟合假设分布

  • 模拟(使用一段时间内的经验分布)

  • 总体预测

  • 梯度模拟

如果假设正态分布,则可以估计标准偏差以获得预测分布。如果假设t分布,则还需要估计自由度或假设自由度。

通常被称为模拟方法的方法实际上只是使用一些特定数量的投资组合收益的经验分布。

使用单变量garch模型可以很好地估算VaR和ES。

R语言

对于VaR和ES ,R语言是非常合适的环境。

填充区域

您可能想知道如何填充图中的区域,如图3所示。窍门是使用该polygon函数。

  1.  
    plot(xseq, pd, type="l", col="steelblue", lwd=3
  2.  
            yaxt="n", ylab=""
  3.  
            xlab="Predicted Profit/Loss (millions of dollars)")
  4.  
     
  5.  
        abline(v=qnorm(.05, mean=.5, sd=1), lty=2, lwd=3)
  6.  
     
  7.  
         polygon(c(xseqt, max(xseqt)), c(dnorm(xseqt, 
  8.  
            mean=.5, sd=1), 0), col="gold", border=NA)
  9.  
     
  10.  
     
  11.  
        lines(xseq, pd, type="l", col="steelblue", lwd=3)
  12.  
        abline(h=0, col="gray80", lwd=2)

学新通

投资组合方差计算

给定方差矩阵和权重向量的R命令来获得投资组合方差:

weight %*% varianceMatrix %*% weight

假设权重向量与方差矩阵完全对齐。

  1.  
    weight %*% varianceMatrix\[names(weight), 
  2.  
       names(weight)\] %*% weight

风险价值和损失期望值的估计

评估风险价值和损失期望值的简介,以及使用R进行估算 。

基本 

风险价值(VaR)和预期短缺(ES)始终与投资组合有关。

您需要两种基本成分:

  • 投资组合

  • 所涉及资产的价格历史

这些可以用来估计市场风险。价格历史记录中可能不包含其他风险,例如信用风险。

多元估计

当我们从资产级别开始时,VaR和ES在投资组合级别上都是一个风险数字。一种方法是估计资产收益的方差矩阵,然后使用投资组合权重将其折叠为投资组合方差。

单变量估计

通过投资组合的单个时间序列收益(现在是该投资组合),估算更为简单。

我们可以通过将投资组合中资产的简单收益矩阵乘以投资组合权重的矩阵来获得此信息。

R1 <- assetSimpRetMatrix %*% portWts

或 :

R1 <- assetSimpRetMatrix\[, names(portWts)\] %*% portWts

R1上面计算的对象持有投资组合的(假设的)简单收益。

r1 <- log(R1   1)

当然,还有其他选择,但是一些常用方法是:

  • 历史的(使用最近一段时间内的经验分布)

  • 正态分布(根据数据估算参数)并使用适当的分位数

  • t分布(通常假设自由度而不是估计自由度)

  • 拟合单变量garch模型并提前进行模拟

R分析

以下是示例,其中spxret11包含2011年标准普尔500指数每日对数收益的向量。因此,我们将获得2012年第一天的风险度量(收益)。

  1.  
    >  "historical")
  2.  
               \[,1\]
  3.  
    VaR -0.02515786
  4.  
    "gaussian")
  5.  
              \[,1\]
  6.  
    VaR -0.0241509
  7.  
    >  "gaussian" 
  8.  
               \[,1\]
  9.  
    VaR -0.03415703
  10.  
    >  "historical")
  11.  
              \[,1\]
  12.  
    ES -0.03610873
  13.  
    >  "gaussian")
  14.  
              \[,1\]
  15.  
    ES -0.03028617
学新通

如果第一个参数是矩阵,则每一列都可以视为投资组合中的资产。

  1.  
    no weights passed in, assuming equal weighted portfolio
  2.  
    $MVaR
  3.  
               \[,1\]
  4.  
    \[1,\] 0.02209855
  5.  
     
  6.  
    $contribution
  7.  
    Convertible Arbitrage            CTA Global 
  8.  
             0.0052630876         -0.0001503125 
  9.  
    Distressed Securities      Emerging Markets 
  10.  
             0.0047567783          0.0109935244 
  11.  
    Equity Market Neutral 
  12.  
             0.0012354711 
  13.  
     
  14.  
    $pct\_contrib\_MVaR
  15.  
    Convertible Arbitrage            CTA Global 
  16.  
              0.238164397          -0.006801916 
  17.  
    Distressed Securities      Emerging Markets 
  18.  
              0.215252972           0.497477204 
  19.  
    Equity Market Neutral 
  20.  
              0.055907342
学新通

风险价值的历史估计

这是用于风险价值的历史估计的简单函数的定义:

  1.  
    VaRhistorical <- function(returnVector, prob=.05
  2.  
        notional=1, digits=2
  3.  
    {
  4.  
      if(prob > .5) prob <- 1 - prob
  5.  
      ans <- -quantile(returnVector, prob) * notional
  6.  
      signif(ans, digits=digits)
  7.  
    }

投资组合,例如:

  1.  
    > VaRhistorical(spxret11, notional=13e6)
  2.  
        5
  3.  
    330000

损失期望值 :

  1.  
    EShistorical <- function(returnVector, prob=.05
  2.  
        notional=1, digits=2
  3.  
    {

可以这样使用:

  1.  
    > EShistorical(spxret11, notional=13e6)
  2.  
    \[1\] 470000

因此,风险价值为  330,000,损失期望值为 470,000。

正态分布

稍后会有一个更好的版本(从统计意义上来说),但是这是一种假设正态分布来获得“风险价值”的简单方法:

用法如下:

  1.  
    > VaRnormalEqwt(spxret11, notional=13e6)
  2.  
    \[1\] 310000
  3.  
    > VaRnormalEqwt(spxret11, notional=13e6
  4.  
         expected.return=0)
  5.  
    \[1\] 310000

在这种情况下,计算损失期望值有点复杂,因为我们需要找到尾部的期望值。

  1.  
    ESnormalEqwt <- function(returnVector, prob=.05
  2.  
        notional=1, expected.return=mean(returnVector), 
  3.  
        digits=2)
  4.  
    {
  5.  
     
  6.  
     
  7.  
     
  8.  
     
  9.  
      ans <- -tailExp * notional
  10.  
      signif(ans, digits=digits)

这个例子的结果是:

  1.  
    > ESnormalEqwt(spxret11, notional=13e6)
  2.  
    \[1\] 390000

一个更好的办法是用指数平滑得到的波动性:

  1.  
    VaRnormalExpsmo <- function(returnVector, prob=.05
  2.  
         notional=1, expected.return=mean(returnVector), 
  3.  
         lambda=.97, digits=2)
  4.  
    {
  5.  
     
  6.  
     
  7.  
     
  8.  
      signif(ans, digits=digits)

其中pp.exponential.smooth取自“指数衰减模型”。

  1.  
    > VaRnormalExpsmo(spxret11, notional=13e6)
  2.  
    \[1\] 340000

t分布

  1.  
    VaRtExpsmo <- function(returnVector, prob=.05
  2.  
        notional=1, lambda=.97, df=7, digits=2)
  3.  
    {
  4.  
      if(prob > .5) prob <- 1 - prob

结果是:

  1.  
    > VaRtExpsmo(spxret11, notional=13e6)
  2.  
    2011-12-30 
  3.  
        340000


学新通

本文摘选R语言风险价值VaR(Value at Risk)和损失期望值ES(Expected shortfall)的估计,点击“阅读原文”获取全文完整资料。


点击标题查阅往期内容

Copula估计边缘分布模拟收益率计算投资组合风险价值VaR与期望损失ES

matlab使用Copula仿真优化市场风险数据VaR分析

R语言中的时间序列分析模型:ARIMA-ARCH / GARCH模型分析股票价格

GARCH(1,1),MA以及历史模拟法的VaR比较

R语言风险价值:ARIMA,GARCH,Delta-normal法滚动估计VaR(Value at Risk)和回测分析股票数据

Matlab正态分布、历史模拟法、加权移动平均线 EWMA估计风险价值VaR和回测标准普尔指数 S&P500时间序列

R语言极值理论 EVT、POT超阈值、GARCH 模型分析股票指数VaR、条件CVaR:多元化投资组合预测风险测度分析

R语言GARCH-DCC模型和DCC(MVT)建模估计

Python 用ARIMA、GARCH模型预测分析股票市场收益率时间序列

R语言中的时间序列分析模型:ARIMA-ARCH / GARCH模型分析股票价格

R语言ARIMA-GARCH波动率模型预测股票市场苹果公司日收益率时间序列

Python使用GARCH,EGARCH,GJR-GARCH模型和蒙特卡洛模拟进行股价预测

R语言时间序列GARCH模型分析股市波动率

R语言ARMA-EGARCH模型、集成预测算法对SPX实际波动率进行预测

matlab实现MCMC的马尔可夫转换ARMA - GARCH模型估计

Python使用GARCH,EGARCH,GJR-GARCH模型和蒙特卡洛模拟进行股价预测

使用R语言对S&P500股票指数进行ARIMA GARCH交易策略

R语言用多元ARMA,GARCH ,EWMA, ETS,随机波动率SV模型对金融时间序列数据建模

R语言股票市场指数:ARMA-GARCH模型和对数收益率数据探索性分析

R语言多元Copula GARCH 模型时间序列预测

R语言使用多元AR-GARCH模型衡量市场风险

R语言中的时间序列分析模型:ARIMA-ARCH / GARCH模型分析股票价格

R语言用Garch模型和回归模型对股票价格分析

GARCH(1,1),MA以及历史模拟法的VaR比较

matlab估计arma garch 条件均值和方差模型

R语言POT超阈值模型和极值理论EVT分析

R语言极值推断:广义帕累托分布GPD使用极大似然估计、轮廓似然估计、Delta法

R语言极值理论EVT:基于GPD模型的火灾损失分布分析

R语言有极值(EVT)依赖结构的马尔可夫链(MC)对洪水极值分析

R语言POT超阈值模型和极值理论EVT分析

R语言混合正态分布极大似然估计和EM算法

R语言多项式线性模型:最大似然估计二次曲线

R语言Wald检验 vs 似然比检验

R语言GARCH-DCC模型和DCC(MVT)建模估计

R语言非参数方法:使用核回归平滑估计和K-NN(K近邻算法)分类预测心脏病数据

matlab实现MCMC的马尔可夫转换ARMA - GARCH模型估计

R语言基于Bootstrap的线性回归预测置信区间估计方法

R语言随机搜索变量选择SSVS估计贝叶斯向量自回归(BVAR)模型

Matlab马尔可夫链蒙特卡罗法(MCMC)估计随机波动率(SV,Stochastic Volatility) 模型

Matlab马尔可夫区制转换动态回归模型估计GDP增长率

R语言极值推断:广义帕累托分布GPD使用极大似然估计、轮廓似然估计、Delta法

欲获取全文文件,请点击左下角“阅读原文”。

学新通

学新通

学新通

学新通

欲获取全文文件,请点击左下角“阅读原文”。

学新通

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgbkkfb
系列文章
更多 icon
同类精品
更多 icon
继续加载