全文链接: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函数。

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

投资组合方差计算

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

weight %*% varianceMatrix %*% weight

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

weight %*% varianceMatrix[names(weight),    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年第一天的危险度量(收益)。

>  "historical")           [,1]VaR -0.02515786> "gaussian")          [,1]VaR -0.0241509>  "gaussian"            [,1]VaR -0.03415703>  "historical")          [,1]ES -0.03610873>  "gaussian")          [,1]ES -0.03028617

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

no weights passed in, assuming equal weighted portfolio$MVaR           [,1][1,] 0.02209855$contributionConvertible Arbitrage            CTA Global          0.0052630876         -0.0001503125 Distressed Securities      Emerging Markets          0.0047567783          0.0109935244 Equity Market Neutral          0.0012354711 $pct_contrib_MVaRConvertible Arbitrage            CTA Global           0.238164397          -0.006801916 Distressed Securities      Emerging Markets           0.215252972           0.497477204 Equity Market Neutral           0.055907342

危险价值的历史预计

这是用于危险价值的历史预计的简略函数的定义:

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

投资组合,例如:

> VaRhistorical(spxret11, notional=13e6)    5% 330000

损失期望值 :

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

能够这样应用:

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

因而,危险价值为  330,000,损失期望值为 470,000。

正态分布

稍后会有一个更好的版本(从统计意义上来说),然而这是一种假如正态分布来取得“危险价值”的简略办法:

用法如下:

> VaRnormalEqwt(spxret11, notional=13e6)[1] 310000> VaRnormalEqwt(spxret11, notional=13e6, +     expected.return=0)[1] 310000

在这种状况下,计算损失期望值有点简单,因为咱们须要找到尾部的期望值。

ESnormalEqwt <- function(returnVector, prob=.05,     notional=1, expected.return=mean(returnVector),     digits=2){  ans <- -tailExp * notional  signif(ans, digits=digits)

这个例子的后果是:

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

一个更好的方法是用指数平滑失去的波动性:

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

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

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

t散布

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

后果是:

> VaRtExpsmo(spxret11, notional=13e6)2011-12-30     340000

本文摘选 R语言危险价值VaR(Value at Risk)和损失期望值ES(Expected shortfall)的预计 ,点击“浏览原文”获取全文残缺材料。


点击题目查阅往期内容

Copula预计边缘散布模仿收益率计算投资组合危险价值VaR与冀望损失ESmatlab应用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法