@fanxy
2020-11-23T17:38:44.000000Z
字数 10169
阅读 9625
金融数据
樊潇彦
复旦大学经济学院
下图来自2011年国际清算银行年报(中文版),从中可以看到在雷曼兄弟倒闭之前,市场信号已经有所反映,但最终还是没能有效预测和防范金融危机的爆发。
2008年金融危机之后,2010年7月美国国会通过了《多德-弗兰克华尔街改革与消费者保护法案》(Dodd-Frank Act),这是自上世纪30年代以来最全面的金融改革法案。除此之外,《多德-弗兰克法案》还创建了金融稳定监督委员会(FSOC,简称金监会)和金融研究办公室(OFR,简称金研办),形成了西方发达国家监管和防范系统性金融风险的标准组织架构。其中金监会有三大职责:
但所有政策层面的工作都必须以理论层面对系统性风险的深入理解,以及实证层面对系统性风险的准确及时的度量为基础,因此对系统性风险的建模、分析和预测已经成为金研办的主要努力方向。
Benoit et al.(2017)回顾了过去35年来发表的系统性风险方面的220篇论文,文献之间的引用关系如下图所示(其中圆圈的大小表示被其他文章引用的次数,列出了被引用次数最多的34篇论文):
1. 按照研究主题,Benoit et al.(2017)将系统性风险的文献分为四个类别:
2. 按照分析方法和数据性质的差异,把文献分为两类:
弗雷克萨斯等(2017)指出,识别和量化系统性风险的各种渠道一直是个难题,现有的系统性风险的测度尚处于早期阶段,我们不仅缺乏合适的系统性风险测度方法,也缺少进行正确测量所必须的数据。虽然目前监管者、学者和从业者尚未就如何定义和度量系统性风险达成广泛的共识,但仍有一些普遍接受的准则:
下面我们简要介绍SES,SRISK和∆CoVaR三种最常用的系统性风险统计指标,其他基于金融网络的结构性度量指标将在第十五、基于大数据的度量方法在第十六讲中介绍。
1. Acharya et al.(2017):MES和SES
Acharya et al.(2017)在他们2010年的工作论文中提出,市场整体的期望损失(ES)是个股损失的加权:
2. Brownlees and Engle(2017):SRISK
在Acharya et al.(2017)的基础上,Brownlees and Engle(2017)提出公司 的系统性风险(Systemic Risk Measure,SRISK)指标,衡量该公司在金融危机中的预计资本损失:
3. Adrian and Brunnermeier(2016):
在个股在险值的基础上,Adrian and Brunnermeier(2016)提出变化的条件在险值(the Delta Conditional Value-at-Risk, ΔCoVaR)指标。给定个股的在险值 ,定义市场 对个股 的条件在险值 ,即如果个股大跌市场也大跌的话,那么跌幅度会是多少:
1. 准备工作
setwd("D:\\...\\Ch14")
rm(list=ls())
install.packages("rmgarch","plotrix")
## 调用
library(rmgarch)
library(rugarch)
library(tidyverse)
library(readxl)
library(ggplot2)
以下是对Benoit et al.(2017)原始数据的处理,不用运行:
## 文中说时间为2000.1.3至2010.12.31,任意下载一个金融数据,取其时间标记
library(quantmod)
loadSymbols("MSFT", from ="2000-01-03", to = "2011-01-02")
data=read_xls("Data_RMC.xls")%>%
rename(rm=index,ri=asset)%>% # 参见 main_script.m 指标说明
mutate(time=index(MSFT),
rm=rm-mean(rm),ri=ri-mean(ri))%>% # 去除均值,参见 call_ftc.m %demeaned returns
select(time,rm:mv)
save(data,file="data.RData")
下载数据:Ch14_data.RData,读取并做图:
load("Ch14_data.RData")
str(data)
# time: from 2000.1.3 to 2010.12.31, daily data
# rm: Returns of the market (system)
# ri: Returns of the firm's equity
# ltq: Total amount of liabilities
# mv: Market Capitalisation
library(xts)
ret=xts(data[,2:3], order.by=data$time)
# 作图
plot(ret$rm, main="Returns of the market (system)")
plot(ret$ri, main="Returns of the firm's equity")
plot(coredata(ret$rm), coredata(ret$ri), xlab="rm", ylab="ri",
type="p", pch=16, lwd=2, col="blue")
abline(h=0,v=0)
2. DCC-GARCH模型估计
以下参照Eric Zivot 课程程序:
library(rugarch)
library(rmgarch)
# univariate normal GARCH(1,1) for each series
garch11.spec = ugarchspec(mean.model = list(armaOrder = c(0,0)),
variance.model = list(garchOrder = c(1,1),
model = "gjrGARCH"),
distribution.model = "std") # "norm", "sstd"
# dcc specification - GARCH(1,1) for conditional correlations
dcc.garch11.spec = dccspec(uspec = multispec( replicate(2, garch11.spec) ),
dccOrder = c(1,1),
distribution = "mvnorm")
dcc.garch11.spec
dcc.fit = dccfit(dcc.garch11.spec, data = ret)
dcc.fit # show dcc fit
# Make a plot selection (or 0 to exit):
#
# 1: Conditional Mean (vs Realized Returns)
# 2: Conditional Sigma (vs Realized Absolute Returns)
# 3: Conditional Covariance
# 4: Conditional Correlation
# 5: EW Portfolio Plot with conditional density VaR limits
plot(dcc.fit, which=2)
plot(dcc.fit, which=4)
# class(dcc.fit)
# slotNames(dcc.fit)
# names(dcc.fit@mfit) # many extractor functions
# names(dcc.fit@model)
ht_m=sqrt(dcc.fit@mfit$H[1,1,]) # market conditional volatility
plot(ht_m,type="l")
ht_i=sqrt(dcc.fit@mfit$H[2,2,]) # asset conditional volatility
plot(ht_i,type="l")
rho=rcor(dcc.fit)[1,2,] # conditional correlation
plot(rho,type="l")
3. 计算MES、SRISK和dCoVaR
以下根据 Sylvain Benoit 提供的 Matlab 程序改写:
alpha = 0.05 # Risk level of our VaR
k = 0.08 # Prudential Capital Required (k*LTQ)
# Conditional Asset VaR from dcc with Empirical Quantile at alpha
Asset_VaR = ht_i*quantile(data$ri/ht_i,alpha)
# Conditional Market VaR from dcc with Empirical Quantile at alpha
Market_VaR = ht_m*quantile(data$rm/ht_m,alpha)
# Conditional beta
Beta = rho*ht_i/ht_m
c = quantile(data$rm,alpha) # HS VaR (nonparametric)
## MES、LRMES和SRISK
fct_MES=function(data,c,ht_m,ht_i,rho){
em=data$rm/ht_m # market first column
xi=(data$ri/ht_i-rho*em)/sqrt(1-rho^2) # asset second column
bwd=nrow(data)^(-0.2) # Scaillet's bwd p21
K1=sum(em*pnorm((c/ht_m-em)/bwd))/sum(pnorm(c/ht_m-em)/bwd)
K2=sum(xi*pnorm((c/ht_m-em)/bwd))/sum(pnorm(c/ht_m-em)/bwd)
MES = (ht_i*rho*K1) + (ht_i*sqrt(1-rho^2)*K2)
return(-MES)
}
MES=fct_MES(data,c,ht_m,ht_i,rho)
plot(MES,type="l")
LRMES = 1-exp(-18*MES) # without simulation
SRISK = k*data$ltq - (1-k)*(1-LRMES)*data$mv
plot(SRISK,type="l")
## 两种方法计算 Delta_CoVaR
gam = rho*ht_m/ht_i
Delta_CoVaR_dcc = - gam *(Asset_VaR-median(data$ri))
mean(Delta_CoVaR_dcc) # Average DCoVaR(DCC)
plot(Delta_CoVaR_dcc,type="l")
library(quantreg)
CoVaR_rq=rq(data$ri~data$rm,alpha) # Quant with constant
gam_quant = CoVaR_rq$coefficients[2]
Delta_CoVaR_quant = - gam_quant*(Asset_VaR-median(data$ri))
mean(Delta_CoVaR_quant) # Average DCoVaR (quantile regression)
plot(Delta_CoVaR_quant,type="l")
## 比较MES和DCoVaR(DCC)
com_all=data.frame(time=data$time,MES=MES, Delta_CoVaR_dcc=Delta_CoVaR_dcc)
library(plotrix)
twoord.plot(lx = com_all$time, ly = com_all$MES,
rx = com_all$time, ry = com_all$Delta_CoVaR_dcc,
main = "MES vs. DCoVaR(DCC)", xlab ="",
ylab = "MES", rylab = "DCoVaR(DCC)", type = c("l","l"))
下图是中国人民银行在《中国金融稳定报告(2008)》中提出的管理框架:
不难看出,我国对系统性金融风险的监管,主要包括事先加强制度建设和事后进行应对性管理两个方面,但对于事先进行有效可信的预测,以及事后制定科学量化的救助方案等具体操作层面,仍然缺乏坚实有效的科研支持。
目前我国学者在系统性风险方面的研究主要包括以下几方面: