美文网首页
15金融风险分析与评估

15金融风险分析与评估

作者: Jachin111 | 来源:发表于2020-11-22 16:49 被阅读0次

金融风险、VaR 和 ES

金融风险
金融风险,就是与金融市场活动有关的潜在损失。
市场风险:所有与价格变动有关的风险,例如股权风险、利率风险和汇率风险。
信用风险(违约风险):交易对手方不履行合约而导致的风险。
操作风险:程序、人员和系统不完善导致的风险。
流动性风险:持有头寸过大导致交易不能以当前价格成交的风险,或融资风险。
金融风险常用度量工具
债券市场:久期
股票市场:贝塔系数
衍生品市场:delta
新标准:VaR,ES
……
久期、贝塔系数和 delta 多年来在各自的市场中发挥着重要的作用,但它们有一个致命的缺陷,即没有金融学知识的人很难理解它们的含义。在信息披露中,我们需要一个更直观的风险指标,普通人也能理解,如此才能形成对市场的有效监管, VaR 和 ES 应运而生。
风险价值 VaR
风险价值 VaR (Value at Risk), 是指在一定概率水平(置信水平)下,在一定时间内(如一天,十天等),持有某种证券或投资组合可能遭受的最大损失。 从定义中,我们可以得知 VaR 有两个基本要素,一个是置信水平 c,另一个是时间段 T。 VaR 在概率统计意义上是一个特殊的分位数Quantile)。( * q th quantile, q = 1 - c. *) 设 L 为损失变量,L = - return。当收益 return 为负时,L 为正,则

image.png
图二:基于概率密度函数的 VaR 定义
image.png
图三:基于累积分布函数的 VaR 定义
image.png
图 2 和图 3 分别给出了基于概率密度函数和累积分布函数的 VaR 定义,这里的置信水平 c = 95%。
例:银行 A 在 2017 年 10 月 2 日公布其持有的资产组合期限为 1 天,置信水平为 99% 的 VaR 为 5000 万元。 对于这则新信息,我们可以从以下三个角度进行解读:
1,左尾分位数的理解:银行 A 在 10 月 3 日内资产组合的损失大于 5000 万元的概率等于 1%。,
2,右尾分位数的理解:以 99% 的概率确信,银行 A 在 10 月 3 日内资产组合的损失不超过 5000 万元。
3,回测的理解:平均而言,银行 A 在未来 100 天内有一天的损失会超过 5000 万元。
VaR 最大的优点在于简单明了。它直接用货币单位来表示市场风险的大小,即使是没有任何专业背景的投资者或管理者,也能通过 VaR 值对当前市场风险的大小进行评价,方便信息披露,有利于市场监管。VaR 最大的的缺陷在于,不满足次可加性,它直接导致了我们在计算投资组合 VaR 时无法将风险分散效应考虑在内。此外,VaR 对损失或收益变量的尾部分布具体是什么样的一无所知。
image.png
尾部均值 ES
又叫 条件 VaR或 预期尾部损失 ETL,是指在损失超过 VaR 的条件下,投资组合遭受的平均损失(期望值)。
image.png
假设随机变量 L 连续,则我们可以将 ES 写成如下积分形式:
image.png
概率密度函数图
> curve(dnorm(x), from=-3, to=3, xlab='return', ylab='p(x)',las='1', main='Definition of VaR based on the probability density function', cex.main=0.8)
> abline(v=qnorm(0.05), lty=2)
> abline(v=0, lty=1)
> text(-2, 0.2, '5%')
> arrows(0, 0.15, qnorm(0.05), 0.15, length=0.15)
> text(-0.9, 0.17, 'VaR')
image.png
累计分布函数图
> curve(pnorm(x), from=-3, to=3, xlab='return', ylab='F(x)', las='1', main='Definition of VaR based on the cumulative distribution function', cex.main=0.8)
> abline(h=0.05, lty=2)
> axis(2, at=0.05, labels='0.05', las='1', par(cex=0.6))
image.png

Delta-normal方法计算 VaR 和 ES

Delta-normal 方法
“所有模型都是错误的,但其中一些是有用的。”模型的作用是抽象现实,我们在意的不是模型无法反映细枝末节,而是,我们应当将现实抽象到什么程度,亦即我们应当做出怎样的假设。
对于一个投资组合来说,Delta-normal 方法作出了如下假设:
正态性假设:投资组合中每种资产的收益率都服从正态分布。
线性假设:投资组合的收益率是各项资产收益率的线性组合(不存在风险的对冲)。

由以上两个假设,我们得出,投资组合的收益率也服从正态分布,我们想知道这个正态分布的分位数。 为了求出这个分位数,由概率统计知识,我们需要知道投资组合收益率分布的均值和方差(标准差),它们分别将标准正态分布的概率密度曲线进行平移和伸缩。方差和标准差所蕴含的信息量是完全相同的,但由于标准差和样本具有相同的单位,所以经济学中用标准差来表示“波动率”。 在金融中,通常假设收益率序列的均值为 0 ,因此我们只关心标准差。 事实上,就算没有“均值为 0”的假设,我们一样无需在意均值,因为我们想求的是相对 VaR 而非绝对 VaR,即我们想求的是投资组合相对于无风险资产的 VaR,均值项会和无风险收益率相抵消。
一个价值 1 元的投资组合,在 c 的置信水平下,在未来一天内的 VaR 等于σ×α,其中σ是投资组合收益率序列的标准差,α是标准正态分布的 q 分位数,q = 1 - c。
我们从两个方向对 VaR =σ×α作出拓展:投资组合价值不是 1 元, 而是W0,求未来T天的 VaR。
由于引入了时间变量,我们需要增加两个新假设:
投资组合价值在所求时间段内保持不变。
投资组合每天的收益率相互独立(无相关性)。
根据时间的平方根规则 一个价值W0​元的投资组合,在 c 的置信水平下,在未来T天内的

image.png
以上就是 Delta-normal 方法的公式,因为它把 VaR 拆分成了四个参数的简单乘积,所以又叫 VaR 的参数方法。
W 0和T是我们自行确定的,α可以在标准正态分布表查到,我们唯一不知道的就是波动率
σ。
GARCH 模型
ARCH 和 GARCH 模型,这些模型都在对波动率σ建模,目的是通过历史数据预测未来的波动率。这其中隐含的假设是,过去的模式将延续到未来,没有新冲击 出现。 假设投资组合的对数收益率序列为{rt},将rt拆分为均值项μt和随机扰动项at,即
image.png
rt服从 ARMA(p, q)过程,即
image.png
ARCH(p) 模型假设:
image.png
其中
image.png
GARCH(p, q) 模型假设:
image.png
其中
image.png
收益率序列的随机扰动项虽然无(线性)自相关,但是存在高阶(非线性)的相关性。ARCH 和 GARCH 模型刻画的都是随机扰动项的二阶相关性,如此就能解释收益率序列的一些特征,比如波动群集性。
** RiskMetrics 方法**
在简单形式中,RiskMetrics 假设随机扰动项at服从条件正态分布(给定 t - 1 时刻的历史信息)
image.png
其中
image.png
对比 GARCH 模型和 RiskMetrics 方法中的模型,可以发现,后者的 volatility equation 里滞后阶数 p 和 q 都等于1,没有常数项α0
(在计量中我们把常数项也叫做漂移项),而且α1+β1=1,我们把α1+β1=1的 GARCH 模型叫做 IGARCH 模型,因此 RiskMetrics 方法中的模型实际上是一个不含漂移项的 IGARCH(1,1)模型。

实例: 假设某投资者持有价值 100 万美元的 GOOGLE 公司股票,请利用过去 5 年(2012-09-27 到 2017-09-27)的日度交易数据预测未来一周内该头寸在 95% 的置信水平下可能遭受的最大损失和平均损失。
数据处理

> options(stringsAsFactors=F)
> da <- readLines("http://labfile.oss.aliyuncs.com/courses/954/GOOGL.csv")
> da <- unlist(strsplit(da, split=","))
> da <- matrix(da, ncol=7, byrow=T)
> colnames(da) <- da[1,]
> da <- as.data.frame(da[-1,])
> date <- as.data.frame(as.Date(da[,1]))
> expr <- da[,2:ncol(da)]
> expr <- as.data.frame(sapply(expr, as.numeric))
> da <- cbind(date, expr)
> colnames(da)[1] <- "Date"
> colnames(da)[6] <- "Adj.Cloas"
> head(da)
        Date     Open     High      Low    Close Adj.Cloas   Volume
1 2012-09-26 375.3003 381.0010 370.8709 377.1071  377.1071 11334400
2 2012-09-27 380.3553 381.8018 376.2012 378.6286  378.6286  7854300
3 2012-09-28 377.4525 380.0300 375.9510 377.6276  377.6276  5561400
4 2012-10-01 379.9049 382.8829 378.4835 381.2713  381.2713  6329600
5 2012-10-02 382.9830 383.3784 375.5105 378.8739  378.8739  5574800
6 2012-10-03 378.2383 382.3423 376.4765 381.6316  381.6316  4412100
> dim(da)
[1] 1258    7

可以看到,da 包含 7 个变量,1258 个样本,7 个变量依次为日期、开盘价、最高价、最低价、收盘价、调整后的收盘价和交易量。

> loss <- -diff(log(da$Adj.Cloas))*100
> head(loss)
[1] -0.4026585  0.2647271 -0.9602528  0.6307764 -0.7252448 -0.7252390

查看了 loss 变量的前 6 行。由于是日度数据,对数收益率或损失率都非常小,即使进行了百分化,也只有零点几。
一般 GARCH 模型计算 VaR 和 ES
误用模型的害处远大于不用模型。
确定均值方程(以使用 ARMA 模型为例)
平稳性检验:如果是非平稳过程,则需差分,将序列转化为平稳过程。
相关性检验:确定 ARMA 的阶数 p 和 q。
模型检验:检验均值模型是否充分,即检验残差项是否还存在序列相关。
ARCH 效应检验:检验均值方程残差项的平方是否存在序列相关。
对波动率建模(以使用 GARCH 族模型)
建立模型:确认 ARCH 效应显著后,选择合适的模型来拟合残差。
模型检验:检验波动率模型是否充分,即检验标准化残差的平方是否存在序列相关。
随机扰动项分布检验:检验我们使用的 GARCH 模型中对随机扰动项的分布的假设是否合理,即检验标准化残差是否服从特定的分布(如 GARCH 模型默认的正态分布)
所有这些步骤都可以看作是对随机扰动项的提纯。我们使用的模型(无论是 ARMA 还是 GARCH),目的都在于刻画相关性(ARMA 刻画线性相关,GARCH 刻画非线性相关)。把相关的关系剔除掉,剩下的就是一个纯粹的、服从白噪声过程的随机扰动项。而这些时间序列里的相关性,就是我们预测未来的根基。
特别注意:大多数资产的收益率序列相关性非常弱(如果收益率序列具有显著的相关性,我们就能轻易预测未来收益,进行无风险套利)。因此,我们非常简单地使用收益率序列的算数平均值代替均值方程,然后检验 ARCH 效应。

对于 GARCH 模型,还没有公认的较好的定阶方法,黄金法则是 p,q 值一般不超过 2。

> library(rugarch)
> spec1 <- ugarchspec(mean.model=list(armaOrder=c(0, 0), include.mean=T), variance.model=list(garchOrder=c(1, 1)))
> fit1 <- ugarchfit(data=loss, spec=spec1)
> forecast1 <- ugarchforecast(fit1, n.ahead=5)

spec1 中设置的参数,均值模型的 ARMA 阶数 p,q 都等于 0,包含均值项,也就是说,均值方程用简单的算数平均数代替。波动率模型设置为 GARCH(1,1)模型,可以使用 show(fit1) 命令来观察模型参数及一些统计检验的信息。 由于我们要预测未来一周的 VaR 和 ES,一周共有 5 个交易日,因此设置 n.ahead = 5。

> sigmahat <- sigma(forecast1)
> sigmahat
    1973-06-11 08:00:00
T+1            1.127331
T+2            1.235485
T+3            1.311292
T+4            1.365776
T+5            1.405539
> wvarfore <- sum(sigmahat^2)
> VaR095 <- qnorm(0.95)*sqrt(wvarfore)
> ES095 <- dnorm(qnorm(0.95))*sqrt(wvarfore)/0.05
> print(cbind(VaR095, ES095))
       VaR095    ES095
[1,] 4.755211 5.963227

本实验计算的是相对 VaR,因此不需要加均值项。如果计算绝对 VaR,加上该序列的均值即可。 计算所得单位头寸的 VaR = 4.7552%,ES = 5.9632%,则该投资组合的 VaR 为

image.png
ES 为
image.png
也就是说,我们以 95% 的概率确信,该头寸在未来一周内可能遭受的损失不超过 47552 美元,如果不幸超过该损失,那么损失的平均水平为 59632 美元。
如果使用平方根规则,n.ahead可以设置为 1,预测未来 1 天的波动率,再乘上5,结果会有细微差别
RiskMetrics 方法计算 VaR 和 ES
RiskMetrics 方法使用的模型其实是一个不含漂移项的 IGARCH(1,1)模型
> spec2 <- ugarchspec(mean.model=list(armaOrder=c(0,0),include.mean=FALSE), variance.model=list(model='iGARCH', garchOrder=c(1,1)))
> fit2 <- ugarchfit(data=loss,spec=spec2)
> forecast2 <- ugarchforecast(fit2, n.ahead=1)
Warning message:
In `setfixed<-`(`*tmp*`, value = as.list(pars)) :
  Unrecognized Parameter in Fixed Values: beta1...Ignored
> rsigmahat <- sigma(forecast2)
> rVaR095 <- qnorm(0.95)*sqrt(5)*rsigmahat
> rES095 <- dnorm(qnorm(0.95))*sqrt(5)*rsigmahat/0.05
> print(cbind(rVaR095, rES095))
    1973-06-11 08:00:00 1973-06-11 08:00:00
T+1            3.828858            4.801542

计算所得单位头寸的 VaR = 3.8289%,ES = 4.8015%,则该投资组合的 VaR 为


image.png

ES 为


image.png
与使用 GARCH(1,1)模型的计算结果有差别,这说明了模型选择会对计算结果产生重要影响。

历史模拟法、蒙特卡罗模拟法计算 VaR 和 ES

历史模拟法假设随机变量在未来的分布等同于在过去的分布,而蒙特卡罗模拟法则人为设定随机变量在未来的分布类型(一种特殊的分布,如正态分布、学生 t 分布等),用历史数据估计这种分布的具体参数。
历史模拟法
在《土拨鼠之日》中,男主角作为一名记者去小镇上报导当地的土拨鼠日庆典,一场暴风雪耽误了回程,他只好在小镇过夜。第二天,他惊奇地发现自己不但被滞留在了小镇上,更可怕的是被滞留在了土拨鼠之日,昨天的一切都在重演,他被困在了同一天。 现在假设随机变量(损失变量)是男主角,它也被永久地困在了同一天。这一天在不断重演,每个“新”的一天,它都随机地取一个值。我们不知道随机变量的概率分布具体什么样,也就是说我们不知道随机变量每种取值的概率是多大,但我们可以用频率代替概率,通过很多天的取值来估计。 历史模拟法,就是假设随机变量在历史上不断重演,它的分布保持不变,我们可以通过历史取值来估计概率分布。
蒙特卡罗模拟法
电影中,楚门生活在一个人为设置的世界里,每天沿着同样的路去公司上班,与相同的人在固定的地点相遇,一成不变地进行寒暄……与《土拨鼠之日》不同,楚门面临的世界不是在一味地重复过去,而是向前发展的。我们可以从历史信息中估计一些参数(比如在某时刻会和某人相遇),推断出未来的分布。 蒙特卡罗模拟法以现在为起点,假设标准化残差服从特殊的分布,模拟出随机变量在未来的无数种取值,每种取值有一定的概率,从而形成了未来随机变量的概率分布。

实例: 假设某投资者持有价值 100 万美元的 GOOGLE 公司股票,请利用过去 5 年(2012-09-27 到 2017-09-27)的日度交易数据预测未来一周内该头寸在 95% 的置信水平下可能遭受的最大损失和平均损失。
数据处理

> options(stringsAsFactors=F)
> da <- readLines("http://labfile.oss.aliyuncs.com/courses/954/GOOGL.csv")
> da <- unlist(strsplit(da, split=","))
> da <- matrix(da, ncol=7, byrow=T)
> colnames(da) <- da[1,]
> da <- as.data.frame(da[-1,])
> date <- as.data.frame(as.Date(da[,1]))
> expr <- da[,2:ncol(da)]
> expr <- as.data.frame(sapply(expr, as.numeric))
> da <- cbind(date, expr)
> colnames(da)[1] <- "Date"
> colnames(da)[6] <- "Adj.Cloas"
> head(da)
        Date     Open     High      Low    Close Adj.Cloas   Volume
1 2012-09-26 375.3003 381.0010 370.8709 377.1071  377.1071 11334400
2 2012-09-27 380.3553 381.8018 376.2012 378.6286  378.6286  7854300
3 2012-09-28 377.4525 380.0300 375.9510 377.6276  377.6276  5561400
4 2012-10-01 379.9049 382.8829 378.4835 381.2713  381.2713  6329600
5 2012-10-02 382.9830 383.3784 375.5105 378.8739  378.8739  5574800
6 2012-10-03 378.2383 382.3423 376.4765 381.6316  381.6316  4412100
> dim(da)
[1] 1258    7
> 
> loss <- -diff(log(da$Adj.Cloas))*100
> head(loss)
[1] -0.4026585  0.2647271 -0.9602528  0.6307764 -0.7252448 -0.7252390

历史模拟法计算 VaR 和 ES

> VaR1 <- quantile(loss, 0.95)
> VaR1
     95% 
2.072488 
历史模拟法计算所得单位头寸在未来一天内的 VaR 为 2.0725%,考虑未来一周,我们可以使用时间的平方根规则,将单日 VaR 乘上 image.png

,得到多期 VaR,再乘上金额得到整个头寸的 VaR。
我们也可以放弃时间平方根规则的假设,将 5 日作为一个单位考虑,这意味着我们要用滚动窗口形成 5 日损失变量的序列,再求这个序列的分位数。
ES 是条件期望,在离散情形下,ES 是满足一定条件(大于 VaR)的损失变量的算术平均值。因此我们要把大于 VaR 的损失变量挑选出来,最直接的方法是对损失变量排序。

> sloss <- sort(loss, decreasing=F)
> head(sloss)
[1] -15.064535 -12.923968  -7.434589  -5.455236  -5.350325  -4.629771

sloss 变量是经过升序排列后的 loss 变量。 我们求最顶尖的那 5%的损失变量的均值,即为 ES。

> ES1 <- sum(sloss[length(sloss):round(0.95*length(sloss))])/(length(sloss) - round(0.95*length(sloss)))
> ES1
[1] 2.942944

计算所得单位头寸单日 ES 为2.9429%。
蒙特卡罗模拟法计算 VaR 和 ES
蒙特卡罗模拟法需要人为设定一个特殊的分布。在这里,我们假设标准化残差服从的是学生 t 分布,你也可以假设它服从正态分布或其它分布。

> library(rugarch)
> library(fGarch)
> spec3 <- ugarchspec(mean.model=list(armaOrder=c(0, 0), include.mean=T), variance.model=list(garchOrder=c(1, 1)), distribution.model='std')
> fit3 <- ugarchfit(data=loss, spec=spec3)
> show(fit3)

*---------------------------------*
*          GARCH Model Fit        *
*---------------------------------*

Conditional Variance Dynamics   
-----------------------------------
GARCH Model : sGARCH(1,1)
Mean Model  : ARFIMA(0,0,0)
Distribution    : std 

Optimal Parameters
------------------------------------
        Estimate  Std. Error   t value Pr(>|t|)
mu     -0.068012    0.030475   -2.2318 0.025631
omega   0.008991    0.003801    2.3653 0.018013
alpha1  0.010173    0.002131    4.7728 0.000002
beta1   0.984053    0.000897 1096.8202 0.000000
shape   4.015649    0.465242    8.6313 0.000000

Robust Standard Errors:
        Estimate  Std. Error   t value Pr(>|t|)
mu     -0.068012    0.028073   -2.4227 0.015405
omega   0.008991    0.005080    1.7699 0.076748
alpha1  0.010173    0.002676    3.8020 0.000144
beta1   0.984053    0.000415 2373.6320 0.000000
shape   4.015649    0.537175    7.4755 0.000000

LogLikelihood : -2023.478 

Information Criteria
------------------------------------
                   
Akaike       3.2275
Bayes        3.2479
Shibata      3.2275
Hannan-Quinn 3.2352

Weighted Ljung-Box Test on Standardized Residuals
------------------------------------
                        statistic p-value
Lag[1]                      1.734  0.1879
Lag[2*(p+q)+(p+q)-1][2]     1.881  0.2833
Lag[4*(p+q)+(p+q)-1][5]     2.468  0.5126
d.o.f=0
H0 : No serial correlation

Weighted Ljung-Box Test on Standardized Squared Residuals
------------------------------------
                        statistic p-value
Lag[1]                     0.3009  0.5833
Lag[2*(p+q)+(p+q)-1][5]    0.5549  0.9489
Lag[4*(p+q)+(p+q)-1][9]    0.7447  0.9945
d.o.f=2

Weighted ARCH LM Tests
------------------------------------
            Statistic Shape Scale P-Value
ARCH Lag[3]    0.1086 0.500 2.000  0.7417
ARCH Lag[5]    0.4886 1.440 1.667  0.8870
ARCH Lag[7]    0.5383 2.315 1.543  0.9748

Nyblom stability test
------------------------------------
Joint Statistic:  1.6117
Individual Statistics:             
mu     0.1035
omega  0.6253
alpha1 0.3738
beta1  0.5808
shape  0.3606

Asymptotic Critical Values (10% 5% 1%)
Joint Statistic:         1.28 1.47 1.88
Individual Statistic:    0.35 0.47 0.75

Sign Bias Test
------------------------------------
                   t-value    prob sig
Sign Bias           0.2949 0.76810    
Negative Sign Bias  1.8162 0.06958   *
Positive Sign Bias  0.7936 0.42759    
Joint Effect        3.9465 0.26730    


Adjusted Pearson Goodness-of-Fit Test:
------------------------------------
  group statistic p-value(g-1)
1    20     12.29       0.8728
2    30     24.50       0.7037
3    40     22.65       0.9831
4    50     29.91       0.9856


Elapsed time : 0.1625979 

之所以要查看模型拟合结果,是因为我们要把这些估计得到的参数用于未来的模拟。 观察结果中 Optimal Parameters 那一栏,将估计值存储在下列变量中。

> mu <- -0.068012
> alpha <- c(0.008991, 0.010173)
> beta <- 0.984053
> df <- 4.015570
> sig <- sigma(fit3)
> t <- 5
> nround <- 30000
> set.seed(42)
> err <- matrix(rstd(t*nround, mean=0, sd=1, nu=df), t, nround)
> ini <- c(loss[1257], sig[1257])
> xt <- NULL
> 
> for (j in 1:nround){
+   lt <- NULL
+   at <- ini[1] - mu
+   vart <- ini[2]^2
+   for (i in 1:t){
+     var <- alpha[1] + alpha[2]*at[i]^2 + beta*vart[i]
+     vart <- c(vart, var)
+     at <- c(at, sqrt(var)*err[i, j])
+     lt <- c(lt, at[i+1] + mu)
+   }
+   xt <- c(xt, sum(lt))
+ }
> VaR2 <- quantile(xt, 0.95)
> VaR2
     95% 
3.469697 
> idx <- c(1:nround)[xt>VaR2]
> ES2 <- mean(xt[idx])
> ES2
[1] 4.887325

计算所得单位头寸在未来一周内的 VaR 为 3.4697%,ES 为 4.8874%。

分位数回归法计算 VaR

不需要假设随机变量的分布类型,只要求分布的延续性。
线性回归是一种特殊的分位数回归。 对比线性回归和分位数回归,我们发现,它们的解释变量都是由我们选定的,区别在于被解释变量上。线性回归的被解释变量是期望值,也就是均值。而分位数回归的被解释变量是分位数。

实例: 假设某投资者持有价值 100 万美元的 GOOGLE 公司股票,请利用过去 5 年(2012-09-27 到 2017-09-27)的日度交易数据预测未来一天内该头寸在 95% 的置信水平下可能遭受的最大损失。 分位数回归的解释变量采用 Gaussian GARCH(1,1)模型下滞后一阶的波动率、滞后一阶损失变量的绝对值,判断它们的系数在α=0.05 的显著性水平下是否显著。
数据处理

> options(stringsAsFactors=F)
> dd <- readLines("http://labfile.oss.aliyuncs.com/courses/954/GOOGL-rq.csv")
> dd <- unlist(strsplit(dd, split=","))
> dd <- matrix(dd, ncol=3, byrow=T)
> colnames(dd) <- dd[1,]
> dd <- as.data.frame(dd[-1,])
> dd <- as.data.frame(sapply(dd, as.numeric))
> head(dd)
         loss     sigl      absl
1  0.26472709 1.385217 0.4026585
2 -0.96025281 1.225897 0.2647271
3  0.63077637 1.142523 0.9602528
4 -0.72524475 1.187073 0.6307764
5 -0.72523899 1.169602 0.7252448
6  0.05210022 1.155311 0.7252390

dd 由 3 列(3 个变量)构成,它们分别是损失变量 loss,滞后一阶的波动率 sigl,滞后一阶的损失变量绝对值 absl。
分位数回归

> library(quantreg)
> mm <- rq(loss~sigl+absl, tau=0.95, data=dd)
> summary(mm)

Call: rq(formula = loss ~ sigl + absl, tau = 0.95, data = dd)

tau: [1] 0.95

Coefficients:
            Value   Std. Error t value Pr(>|t|)
(Intercept) 1.00424 0.32032    3.13514 0.00176 
sigl        0.49267 0.21619    2.27889 0.02284 
absl        0.39962 0.15122    2.64261 0.00833 

从回归结果中我们可以看到,常数项、sigl 和 absl 的系数在α=0.05 的显著性水平下都显著,因为它们的 p 值都小于 0.05。


image.png

单位头寸在未来一天内的 VaR 为 1.7322%。算式中的 1.00424,0.49267,0.39962 分别为分位数回归结果中的常数项、sigl 系数和 absl 系数估计值。1.204513 和 0.3365871 分别为当期的波动率和损失变量绝对值,它们相对于下一期(我们要估计的那一期)来说是滞后一期的解释变量。

相关文章

网友评论

      本文标题:15金融风险分析与评估

      本文链接:https://www.haomeiwen.com/subject/dbnriktx.html