关于数据挖掘:R语言风险价值VaRValue-at-Risk和损失期望值ESExpected-shortfall的估计附代码数据

46次阅读

共计 5721 个字符,预计需要花费 15 分钟才能阅读完成。

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

$contribution
Convertible Arbitrage            CTA Global 
         0.0052630876         -0.0001503125 
Distressed Securities      Emerging Markets 
         0.0047567783          0.0109935244 
Equity Market Neutral 
         0.0012354711 

$pct_contrib_MVaR
Convertible 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 法

正文完
 0