金融数据分析 课件 第7章 COPULA及其应用_第1页
金融数据分析 课件 第7章 COPULA及其应用_第2页
金融数据分析 课件 第7章 COPULA及其应用_第3页
金融数据分析 课件 第7章 COPULA及其应用_第4页
金融数据分析 课件 第7章 COPULA及其应用_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第七章copula函数及其应用

学习目标

掌握Copula函数的定义、基本性质和相关性测度;熟悉常用的Copula函数的性质以及相关性分析的特点;了解如何对相依数据分析并进行相依风险度量。

本章导读

相依性建模是现代金融研究的重要领域之一,无论是相关性分析、风险关联分析、资产定价分析及信用风险分析,相依性都是一个非常重要的工具。Copula函数能够很好好地刻画金融序列变量间的非线性和非对称相依结构,并且能独立于边际分布而对变量间的相依结构进行建模。本章将详细介绍Copula函数的定义和基本性质,并介绍基于Copula函数的相依性测度,重点研究几类常用Copula函数的相依性特征,最后介绍Copula函数的估计方法及其在金融风险计量中的应用。通过本章内容学习,学生应具备整体思维,树立全局意识,强化基础理论以及科研素养的培养。根据给出的实际案例,计量模型的重现,提高建模能力,并树立正确的风险投资意识。7.1Copula函数的定义及性质7.2Copula函数与相关性7.3常用的Copula函数7.4Copula函数的估计方法7.5Copula函数与金融风险计量7.6专题7基于GARCH-Copula模型的绿色债券投资组合风险测度目录CONTENTSCopula函数的定义及性质7.17.1.1Copula函数的定义7.1.2Copula函数的性质7.1.2Copula函数的性质7.1.3Sklar定理7.1.3Sklar定理Copula函数与相关性7.27.2Copula函数与相关性7.2Copula函数与相关性

7.2Copula函数与相关性

7.2Copula函数与相关性常用的Copula函数7.3

7.3.1椭圆类Copula函数图6.1二元正态Copula函数的分布密度图(左)及对应的等高线图(右)

R代码>library(copula)>nc=normalCopula(0.5,dim=2)>set.seed(300)>U=rCopula(1000,copula=nc)>wireframe2(nc,FUN=dCopula,col.4=adjustcolor("black",alpha.f=0.25),col="black",shade=T,delta=0.025)>contourplot2(nc,FUN=dCopula,n.grid=42,cuts=33,lwd=1/2)

7.3.1椭圆类Copula函数图6.2二元t-Copula函数的分布密度图(左)及对应的等高线图(右)

R代码>library(copula)>tc=tCopula(0.5,dim=2)>set.seed(300)>U=rCopula(1000,copula=tc)>wireframe2(tc,FUN=dCopula,col.4=adjustcolor("black",alpha.f=0.25),col="black",shade=T,delta=0.025)>contourplot2(tc,FUN=dCopula,n.grid=42,cuts=33,lwd=1/2)

7.3.2Archimedean类Copula函数

7.3.2Archimedean类Copula函数

7.3.2Archimedean类Copula函数图6.3二元GumbelCopula函数的分布密度图(左)及对应的等高线图(右)

R代码>library(copula)>gc=gumbelCopula(5,dim=2)>set.seed(300)>U=rCopula(1000,copula=gc)>wireframe2(gc,FUN=dCopula,col.4=adjustcolor("black",alpha.f=0.25),col="black",shade=T,delta=0.025)>contourplot2(gc,FUN=dCopula,n.grid=42,cuts=33,lwd=1/2)

7.3.2Archimedean类Copula函数图6.4二元ClaytonCopula函数的分布密度图(左)及对应的等高线图(右)

R代码>library(copula)>clayc=claytonCopula(0.5,dim=2)>set.seed(300)>U=rCopula(1000,copula=clayc)>wireframe2(clayc,FUN=dCopula,col.4=adjustcolor("black",alpha.f=0.25),col="black",shade=T,delta=0.025)>contourplot2(clayc,FUN=dCopula,n.grid=42,cuts=33,lwd=1/2)

7.3.2Archimedean类Copula函数图6.5二元FrankCopula函数的分布密度图(左)及对应的等高线图(右)

R代码>library(copula)>fc=frankCopula(0.5,dim=2)>set.seed(300)>U=rCopula(1000,copula=fc)>wireframe2(fc,FUN=dCopula,col.4=adjustcolor("black",alpha.f=0.25),col="black",shade=T,delta=0.025)>contourplot2(fc,FUN=dCopula,n.grid=42,cuts=33,lwd=1/2)7.3.2衍生类Copula函数图6.6混合Copula函数的分布密度图(左)及对应的等高线图(右)

R代码>library(copula)>nc=normalCopula(0.5,dim=2))>tc=tCopula(0.5,dim=2))>clayc=claytonCopula(0.5,dim=2))>gc=gumbelCopula(5,dim=2))>fc=frankCopula(0.5,dim=2))>weights=c(0.2,0.2,0.2,0.2,0.2)>mcp=mixCopula(list(nc,tc,clayc,gc,fc),w=weights)>wireframe2(mcp,FUN=dCopula,col.4=adjustcolor("black",alpha.f=0.25),col="black",shade=T,delta=0.025)>contourplot2(mcp,FUN=dCopula,n.grid=42,cuts=33,lwd=1/2)7.3.2衍生类Copula函数7.3.2衍生类Copula函数7.3.2衍生类Copula函数7.3.2衍生类Copula函数7.3.2衍生类Copula函数图6.9五维R藤的树结构7.3.2衍生类Copula函数【例7.1】为刻画银行间的高维相依关系,我们选取了平安银行、宁波银行、浦发银行、华夏银行和民生银行(分别对应数字1,2,3,4,5)进行分析,数据区间为2011年1月4日至2021年12月31日,共计2675个样本。对五家银行的收益率采用GARCH(1,1)模型进行拟合,得到残差序列后通过ecdf函数进行概率积分变换,获得拟合Copula函数的分布数据coupladata。接下来,由VineCopula包中的RVineStructrueSelect函数寻找最优藤结构。通过Summary函数可直接输出R藤的全部结果,由AIC准则选取为R藤Copula,表6.2列示了估计结果。7.3.2衍生类Copula函数6.3.2衍生类Copula函数由表7.2可看出R藤Copula函数中每个节点间的Copula函数,以及对应的估计参数、Kendall秩相关系数和上下尾相关系数;其次,考虑条件藤Copula结构,分析其条件相关系数,也就是考虑两家银行的间接相依性;最后,我们可看出由第三层至第四层的高维Copula结构的Kendall秩相关系数呈下降趋势。

R代码#载入R包>library(xts)>library(rugarch)>library(VineCopula)>library(copula)#载入数据>data=read.csv("E://jrjl/Chapter5/vinecopula.csv")>DATE=data[,1]>date=as.Date(DATE)>data=xts(data[,-1],as.Date(date,format="yyyy%mm%dd"))>PA=data$平安银行_ret>NB=data$宁波银行_ret>PF=data$浦发银行_ret>HX=data$华夏银行_ret>MS=data$民生银行_ret#边际分布拟合>spec_PA=ugarchspec(mean.model=list(armaOrder=c(1,0)),variance.model=list(model="sGARCH",garchOrder=c(1,1)),distribution.model="sstd")>garch_PA=ugarchfit(spec=spec_PA,data=PA)>spec_NB=ugarchspec(mean.model=list(armaOrder=c(1,0)),variance.model=list(model="sGARCH",garchOrder=c(1,1)),distribution.model="sstd")>garch_NB=ugarchfit(spec=spec_NB,data=NB)>spec_PF=ugarchspec(mean.model=list(armaOrder=c(1,0)),variance.model=list(model="sGARCH",garchOrder=c(1,1)),distribution.model="sstd")>garch_PF=ugarchfit(spec=spec_PF,data=PF)>spec_HX=ugarchspec(mean.model=list(armaOrder=c(1,0)),variance.model=list(model="sGARCH",garchOrder=c(1,1)),distribution.model="sstd")

R代码>garch_PF=ugarchfit(spec=spec_PF,data=PF)>spec_HX=ugarchspec(mean.model=list(armaOrder=c(1,0)),variance.model=list(model="sGARCH",garchOrder=c(1,1)),distribution.model="sstd")>garch_HX=ugarchfit(spec=spec_HX,data=HX)>spec_MS=ugarchspec(mean.model=list(armaOrder=c(1,0)),variance.model=list(model="sGARCH",garchOrder=c(1,1)),distribution.model="sstd")>garch_MS=ugarchfit(spec=spec_MS,data=MS)#数据转换>sigma_matrix=matrix(data=c(garch_PA@fit$sigma,garch_NB@fit$sigma,garch_PF@fit$sigma,garch_HX@fit$sigma,garch_MS@fit$sigma),nrow=length(garch_PA@fit$sigma),ncol=5,byrow=FALSE)>residual_matrix=matrix(data=c(garch_PA@fit$residuals,garch_NB@fit$residuals,garch_PF@fit$residuals,garch_HX@fit$residuals,garch_MS@fit$residuals),nrow=length(garch_PA@fit$residuals),ncol=5,byrow=FALSE)>std_sigma_matrix=matrix(nrow=2675,ncol=5)>copuladata=matrix(nrow=2675,ncol=5)>for(iinc(1:5)){std_sigma_matrix[,i]=residual_matrix[,i]/sigma_matrix[,i]f=ecdf(as.numeric(std_sigma_matrix[,i]))copuladata[,i]=f(std_sigma_matrix[,i])}#寻找最优的藤结构>Rst=RVineStructureSelect(copuladata,family=c(1:6),progress=TRUE,se=TRUE,method='itau',rotations=TRUE)>summary(Rst)Copula函数的估计方法7.47.4.1经验Copula7.4.1经验Copula7.4.1经验Copula【例7.2】运用经验Copula进行非参数估计。我们仍以ClaytonCopula函数为例,设定一个样本容量为n的2维样本数据,并设定ClaytonCopula函数的参数。我们运用R语言copula包中的claytonCopula函数生成所需数据,并采用copula包中的C.n()函数对样本数据进行经验估计。

R代码>library(copula)>d=2>cc=claytonCopula(3,dim=d)>n=10000>set.seed(123)>U=rCopula(n,copula=cc)>v=matrix(runif(n*d),nrow=n,ncol=d)>ec=C.n(v,X=U)>True=pCopula(v,copula=cc)>error=round(mean(abs(True-ec)/True)*100,2)>error[1]0.26

7.4.2参数估计法

7.4.2参数估计法

7.4.2参数估计法

7.4.2参数估计法

7.4.2参数估计法

R代码>cc=claytonCopula(3,dim=2)>mcc=mvdc(cc,margins=c("norm","norm"),paramMargins=list(list(mean=0,sd=1),ist(mean=0,sd=2)))>set.seed(123)>n=1000>X=rMvdc(n,mvdc=mcc)>mle=fitMvdc(X,mvdc=mcc,start=c(0,1,0,2,2))>summary(mle)

7.4.2参数估计法

7.4.2参数估计法

【例6.4】运用两阶段极大似然估计拟合Copula函数。在这里我们仍然使用例6.3中的数据,首先估计两个序列的边际分布,得到相应的参数值,再通过fitCopula()函数选ClaytonCopula,其中method=“ml”,进而得到Copula函数的参数估计值。Copula函数与金融风险计量7.57.5Copula函数与金融风险计量7.5Copula函数与金融风险计量7.5Copula函数与金融风险计量

7.5Copula函数与金融风险计量R代码##R包加载##>library(rugarch);library(mistr);library(VineCopula);library(copula)##数据导入##>data=read.csv("E://jrjl/Chapter5/shuju.csv")>DATE=data[,1]>date=as.Date(DATE)>data=xts(data[,-1],as.Date(date,format="yyyy%mm%dd"))>PA=data$PA_ret>ZS=data$ZS_ret##边际分布拟合##>garchspec_PA=ugarchspec(mean.model=list(armaOrder=c(0,0)),variance.model=list(model="sGARCH",garchOrder=c(1,1)),distribution.model="sstd")>garchfit_PA=ugarchfit(data=PA,spec=garchspec_PA)>garchspec_ZS=ugarchspec(mean.model=list(armaOrder=c(0,0)),variance.model=list(model="sGARCH",garchOrder=c(1,1)),distribution.model="sstd")>garchfit_ZS=ugarchfit(data=ZS,spec=garchspec_ZS)#提取标准化残差>standardize_residual_PA=residuals(garchfit_PA)/sigma(garchfit_PA)>standardize_residual_ZS=residuals(garchfit_ZS)/sigma(garchfit_ZS)#数据转换>PIT_PA=pdist("sstd",standardize_residual_PA,mu=0,sigma=1,skew=+coef(garchfit_PA)["skew"],shape=coef(garchfit_PA)["shape"])>PIT_ZS=pdist("sstd",standardize_residual_ZS,mu=0,sigma=1,skew=+coef(garchfit_ZS)["skew"],shape=coef(garchfit_ZS)["shape"])##选择最优Copula函数##>cop_select=BiCopSelect(PIT_PA,PIT_ZS,familyset=0:10)>summary(cop_select)7.5Copula函数与金融风险计量

R代码#抽取样本>T_model=tCopula(coef(fit_tStudent_PA_ZS)[1],dim=2,df=coef(fit_tStudent_PA_ZS)[2])>set.seed(123)>PA_ZS_tCopula_est=rCopula(2675,copula=T_model)#模拟平安银行的收益率>inverse_PA=qdist("sstd",PA_ZS_tCopula_est[,1],mu=0,sigma=1,skew=coef(garchfit_PA)["skew"],shape=coef(garchfit_PA)["shape"])>SR_PA_T=xts(x=inverse_PA,order.by=index(standardize_residual_PA))>simulate_PA=inverse_PA*coredata(sigma(garchfit_PA))>simulate_log_return_PA=simulate_PA+fitted(garchfit_PA)>plot(simulate_log_return_PA)#模拟招商银行的收益率>inverse_ZS=qdist("sstd",PA_ZS_tCopula_est[,2],mu=0,sigma=1,skew=coef(garchfit_ZS)["skew"],shape=coef(garchfit_ZS)["shape"])>SR_ZS_T=xts(x=inverse_ZS,order.by=index(standardize_residual_ZS))>simulate_ZS=inverse_ZS*coredata(sigma(garchfit_ZS))

R代码>simulate_log_return_ZS=simulate_ZS+fitted(garchfit_ZS)#构建投资组合计算VaR和ES>PA_ZS_tCopula_est=cbind(simulate_log_return_PA,simulate_log_return_ZS)>Rpa=PA_ZS_tCopula_est[,1]>Rzs=PA_ZS_tCopula_est[,2]>weight=c(0.7,0.3)>port_return_tCopula=weight[1]*Rpa+weight[2]*Rzs>VaR.95.est=quantile(port_return_tCopula,0.95)>VaR.99.est=quantile(port_return_tCopula,0.99)>ES.95.est=mean(port_return_tCopula[port_return_tCopula>VaR.95.est])>ES.99.est=mean(port_return_tCopula[port_return_tCopula>VaR.99.est])>ES.95.est[1]4.682247>ES.99.est[1]8.4976227.5Copula函数与金融风险计量表6.6投资组合的VaR值和ES值95%VaR95%ES99%VaR99%ES风险值2.78074.68225.68758.4976

从tCopula中进行2675次抽样,并考虑一个权重为0.7和0.3的投资组合,分别投资于平安银行和招商银行,模拟得到投资组合收益率,并通过式(6.25)和(6.26)计算VaR和ES。表6.6给出了该投资组合的不同置信水平的VaR值和ES值。专题7基于GARCH-Copula模型的绿色债券投资组合风险测度

7.6基于GARCH-Copula模型的绿色债券投资组合风险测度党的二十大报告对“推动绿色发展,促进人与自然和谐共生”作出战略部署,提出“必须牢固树立和践行绿水青山就是金山银山的理念,站在人与自然和谐共生的高度谋划发展”。习近平总书记指出:“推动经济社会发展绿色化、低碳化,推动经济实现质的有效提升和量的合理增长”。2023年10月召开的中央金融工作会议,也明确提出做好绿色金融这篇文章。发展绿色金融是推动实现

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论