{SiteName}
山西证券交易
山西证券走势
山西证券招聘
山西证券股票
山西证券排名
山西证券软件

原创基于R语言的定性因素对债券违约影

基于R语言的定性因素对债券违约影响的定量研究方法

对债券发行人信用风险的研究,国内外均以定量研究为主,即主要通过分析企业的财务指标预测其还款能力;国外尤其如此,并已经被证明这是一种非常有效的预测发债主体信用风险的方法。但是,在国内资本市场的现状下,仍存在信息披露不及时、财务数据披露不全、财务“粉饰”等无法有效克服的困难,这就为我们进行信用风险量化分析带来较大的困难。

但是,债券发债主体的定性数据,在进行信用风险分析时,却具有很大的优势,主要表现在定性指标变化频率小、真实可靠性高、易于获取等优势。本文主要介绍通过计算定性指标信息值(InformationValue),并依次开发评分卡模型的方法,来用实例说明定性因素对债券违约影响的定量研究方法。

一、债券市场违约情况概述

自从年3月5日超日债违约以来,截止年5月20日中国资本市场陆续已经有只债券发生了违约,并且呈逐年上升趋势。按年度统计违约债券的数量,如图一所示。

图一、违约债券年度统计图

可见,以完整年度统计违约债券数量,基本呈现指数级增长的态势。从资本市场债券违约的发展历史来看,改革开放以来资产价格单边上涨的趋势已经结束,中国经济进入中低速发展的新常态,债券违约将会常态化发生。资本市场对信用风险的重视程度也在逐渐增加,由于历史原因债券发行场所分为“场内市场”和“场外市场”两部分。银行间市场和沪深交易所市场,统称为“场内市场”;区域股权交易中心和柜台市场,统称为“场外市场”。

根据监管部门的相关规定,企业主体在“场内市场”发行债券时,需要有外部评级;在“场外市场”发行债券时,不需要有外部评级;已经违约的只债券中,有83只债券在“场内市场”发行,有外部评级;有43只债券在“场外市场”发行,无外部评级。已违约债券,按有无外部评级统计分析,如图二所示。

可见,已违约的只债券中,有约2/3是“场内”发行,另外1/3是“场外”发行,发行时无外部评级。

图二、违约债券有无评级统计图

我们只统计有评级的83只违约债券,其发行主体在违约前1年的主体评级分布情况,如图三所示。在已经违约的债券中,占比最高的主体评级为AA,其次分别为AA-和AA,这三个等级占所有违约债券的比例约为94.0%。而已违约的债券中,其主体评级为A、A-和BBB的合计占比约6.0%。

仅从违约债券主体评级分布情况,我们可以得出AA(包括AA+和AA-,下同)级的信用风险要大于A(含A-,下同)和BBB。因为已违约债券中,AA占比要远远大于A和BBB,即相对于AA级的发债主体而言,A和BBB的发债主体更安全。这个结论显然是不对的。因为信用风险主标尺的设计原则为高等级对应低风险、低等级对应高风险。这也从侧面说明了,国内的外部评级“虚高”,不能有效反映发债主体的真实信用风险状况。

图三、有评级违约债券,违约前1年主体评级分布图

二、信用风险定量分析面临的困难

信用风险主体评级模型是对融资主体未来一段时间是否发生违约的前瞻性预测。主体评级模型通常包括三部分,分别是定量部分、定性部分和综合调整部分。其中,定量部分主要采用的是企业财务数据,定性部分主要采用的企业非财务数据,综合调整部分主要是为了应对突发事件发生时,企业的定量和定性指标均未发生明显变化,但突发事件却可能很大影响企业的还款能力,造成企业信用风险增加的情况。

信用风险定量分析部分,主要是通过分析企业财务数据来预测企业的还款能力,可是目前在国内资本市场做财务定量分析,却面临着如下较难以客服的困难:

1、财务数据披露不及时

对发债企业的财务数据披露,并没有像上市公司那样的严格信息披露要求。其中,非公开发行债券(如私募债等)也没有强制的财务信息披露要求。从Wind资讯中也可见,发债主体的财务数据的质量,要比上市公司差很多,主要表现为财务指标的缺失值较多。

2、财务数据无法有效反应企业真实的还款能力

从证监会公告中,我们统计了最近4年发出的处罚行政书的总体情况,如图四所示。显然,证监会对资本市场的监管力度在逐步加强,发出的处罚行政书的数量呈明显的增加趋势。

图四、证监会行政处罚决定书

通过分析这些处罚行政书的处罚理由,我们大体上可以分为三类,分别是财务造假、内幕交易、虚假信息披露。这三类处罚理由的占比情况,如图五所示。可见,超过50%的处罚行政书跟企业财务“粉饰”有关。如此堪忧的财报质量,为我们仅仅通过财务分析来有效预测发债企业信用风险提出了很大的挑战。

图五、行政处罚类型统计分布图

通过分析已经违约的只债券,在违约前1年完整财报也依然可以发现,不少违约债券的财务质量在违约前依然“较好”,有“较强”的还款能力,可是仍然发生了违约。

因此,仅仅通过分析企业的财务数据,无法有效预测企业的信用风险。这就需要我们从定性的角度,对企业的真实还款能力做全面的综合分析。定性分析并不是纯粹的、拍脑袋式的主观判断,而是仍然遵循严谨的计算过程的专业方法。

三、信用风险定性研究的优势和量化方法

研究定性指标对违约状态的影响程度,最常用的量化方法是计算每个指标对违约状态的信息值(InformationValue,IV),信息值越大说明该指标对违约状态的影响越大。定性指标有如下天然优势:

第一、数据质量非常高、绝对真实。本文所采用的数据集中,采用了3个定性指标,分别是地域、行业和公司性质。任何一个发债主体,这3个指标均是真实可靠的。比如,东北特钢发生了违约,这家公司一定是辽宁省的、属于地方国有企业、且是属于钢铁行业;南京雨润肯定属于江苏省的民营企业;等等这些定性指标,在发债主体违约前后都是真实可靠、且不会发生变化的。本文重点研究这些真实可靠的定性指标对发债主体违约状态的影响是否显著,以及影响到底有多大。

第二、数据变化频率小、基本不用考虑时间因素。类似企业的地域、行业和公司性质这类定性指标,一般在很长一段时间内都不会发生显著的变化。如地域,除非企业注册地发生变更才会发生变化;行业和公司性质,则是在企业大股东发生变更,且主营业务发生较大变化时,才可能改变。因此,研究这些定性指标对违约状态的影响时,基本不用考虑时间的因素。

信息值是衡量两个名义变量,其中一个是二元变量,之间关联性的最常用指标之一,并且二元变量的取值只能分别为0和1。计量定性指标对违约状态的影响时,通常将违约用“1”表示、正常用“0”表示。因此,常用定性指标的信息值来判断其对违约状态的影响程度。通常情况下,我们假设变量x和y是两个名义变量,其中变量x分为r类,变量y分为c类,则x和y的双向频率表,如表一所示。

表一、变量x和y的双向频率表

式2表明,变量y各列中的信息值是对称的,即将式2中的p和q互换,得到的IV相同。但是,不能将变量x和y互换,因为IV的定义只针对二元因变量y。即使x也是二元变量,信息值对于x和y也是非对称的。

对于已经违约的债券,不少投资者总结出了很多“规则”,如“投资不过山海关”、“民营企业一律不买”、“两高一剩一律不买”等。本文通过收集全市场债券发债主体所属地域、行业和企业性质等三个定性指标,并研究这三个定性指标对违约状态的影响程度。整个研究过程分为如下几个步骤:

第一步、收集样本总体。首先,从Wind中获取全市场债券发债主体所属的地域、企业性质和行业(Wind行业分类);其次,获取全部已经违约债券发债主体所属的地域、企业性质和行业(Wind行业分类);最后,合并上述两个数据集并删除重复的发债主体(因为可能一个主体发行多只债券)和公司名称,得到如表二形式的数据集:

表二、样本总体摘要

province

attributes

industry

isdefault

海南省

其他企业

可选消费

0

安徽省

其他企业

金融

0

天津

其他企业

工业

0

山东省

其他企业

能源

0

安徽省

其他企业

金融

0

广东省

民营企业

材料

1

山东省

集体企业

工业

1

北京

民营企业

工业

1

山东省

外商独资企业

材料

1

……

……

……

……

第二步,计算每个定性指标的信息值,并判断他们对违约状态的影响是否显著,R语言代码如下所示:

devData-read.csv("enterpise.csv")#读取表二中的数据集

factorvars-c("province","attributes","industry")#获取所有名义自变量

All_IVS-data.frame(VARS=factorvars,IV=numeric(length(factorvars)),STRENGTH=character(length(factorvars)),stringsAsFactors=F)

for(factor_varinfactorvars)

{#计算每个指标的IV值

All_IVS[All_IVS$VARS==factor_var,"IV"]-InformationValue::IV(X=devData[,factor_var],Y=devData$isdefault)All_IVS[All_IVS$VARS==factor_var,"STRENGTH"]-attr(InformationValue::IV(X=devData[,factor_var],Y=devData$isdefault),"howgood")#提取每个IV指标的描述

}

All_IVS-All_IVS[order(-All_IVS$IV),]#排序IV

All_IVS#输出每个指标的IV值,结果如表三所示

表三、定性指标显著性检验

指标

IV

对违约影响程度

备注

province

3.

HighlyPredictive

地域

attributes

3.

HighlyPredictive

公司属性

industry

2.

HighlyPredictive

所属行业

使用信息值(IV)判断定性指标对违约状态的影响程度,常采用的标准如下所示:

表四、信息值(IV)判断显著性的标准

IV的范围

预测力

小于0.02

无预测力

0.02到0.10

较弱

0.10到0.30

中等

大于0.30

较强

按照这个标准,可见地域、企业性质、行业对企业违约状态的影响是非常显著,完全可以作为预测企业违约状态的定性入模指标。

第三步,首先计算每个定性指标的WOE并生成WOE数据集,其次对WOE变量进行逻辑回归,接着计算评分卡的基础分值和每个定性指标不同选项的分值,最后生成评分卡模型,相关R语言代码如下所示:

#计算WOE

woe_qual-woe(isdefault~.,data=as.matrix(devData),zeroadj=0.5,applyontrain=TRUE)#计算WOE

woe_qual$woe#输出WOE

tmp-woe_qual$woe

province-tmp$province

attributes-tmp$attributes

industry-tmp$industry

prov-devData$province

province_WoE-c()

for(iin1:dim(devData[1]))

{

for(jin1:length(province))

{

if(prov[i]==names(province[j]))

{

province_WoE[i]-as.numeric(province[j])

}

}

}

attr-devData$attributes

attributes_WoE-c()

for(iin1:dim(devData[1]))

{

for(jin1:length(attributes))

{

if(attr[i]==names(attributes[j]))

{

attributes_WoE[i]-as.numeric(attributes[j])

}

}

}

indsty-devData$industry

industry_WoE-c()

for(iin1:dim(devData[1]))

{

for(jin1:length(industry))

{

if(indsty[i]==names(industry[j]))

{

industry_WoE[i]-as.numeric(industry[j])

}

}

}

data_WOE-cbind(as.matrix(province_WoE,ncol=1),as.matrix(attributes_WoE,ncol=1),as.matrix(industry_WoE,ncol=1),as.matrix(devData$isdefault,ncol=1))

colnames(data_WOE)-c("Province_WOE","Attributes_WOE","Industry_WOE","isDefault")

m-glm(isDefault~.,data=as.data.frame(data_WOE),family=binomial())

alpha_beta-function(basepoints,baseodds,pdo)

{

beta-pdo/log(2)

alpha-basepoints+beta*log(baseodds)

return(list(alpha=alpha,beta=beta))

}

coefficients-m$coefficients

#通过指定特定比率(1/20)的特定分值(50)和比率翻番的分数(10)

#来计算评分卡的系数alpha和beta

x-alpha_beta(50,0.05,10)

#计算基础分值

basepoint-round(x$alpha-x$beta*coefficients[1])

#1.province_score

province_score-round(as.matrix(-(data_WOE[,"Province_WOE"]*coefficients["Province_WOE"]*x$beta)))

colnames(province_score)-"province_score"

#2.attributes_score

attributes_score-round(as.matrix(-(data_WOE[,"Attributes_WOE"]*coefficients["Attributes_WOE"]*x$beta)))

colnames(attributes_score)-"attributes_score"

#3.industry_score

industry_score-round(as.matrix(-(data_WOE[,"Industry_WOE"]*coefficients["Industry_WOE"]*x$beta)))

colnames(industry_score)-"industry_score"

#输出最终的CSV格式的打分卡

#1.基础分值

r1-c("","basepoint",71)

m1-matrix(r1,nrow=1)

colnames(m1)-c("Basepoint","Basepoint","Score")

#2.Province的分值

province_scoreCard-cbind(as.matrix(c("Province",rep("",31)),ncol=1),unique(cbind(as.character(devData$province),as.character(province_score))))

#3.Attributes的分值

attributes_scoreCard-cbind(as.matrix(c("Attributes",rep("",9)),ncol=1),unique(cbind(as.character(devData$attributes),as.character(attributes_score))))

#4.Industry的分值

industry_scoreCard-cbind(as.matrix(c("Industry",rep("",10)),ncol=1),unique(cbind(as.character(devData$industry),as.character(industry_score))))

scoreCard_CSV-rbind(m1,province_scoreCard,attributes_scoreCard,industry_scoreCard)

#将标准评分卡输出到D盘根目录下,且命名为ScoreCard_Qual.csv

write.csv(scoreCard_CSV,"D:\\ScoreCard_Qual.csv")

运行上述代码可分别自动得到如表五、表六、表七所示的评分卡模型。详细过程请见参考文献中作者本人的专著。

表五、定性指标---地域,对违约状态影响的得分

地域

分值

湖南省

20

新疆维吾尔自治区

11

云南省

11

江西省

11

重庆

9

安徽省

8

湖北省

8

浙江省

7

河南省

7

贵州省

7

北京

4

江苏省

2

广东省

2

黑龙江省

2

山西省

1

福建省

0

陕西省

0

上海

-1

辽宁省

-3

天津

-4

海南省

-5

吉林省

-6

四川省

-6

青海省

-6

宁夏回族自治区

-6

山东省

-7

广西壮族自治区

-10

河北省

-11

甘肃省

-11

内蒙古自治区

-19

香港特别行政区

-22

西藏自治区

-29

绘图表示如下所示:

根据评分卡模型的一般原理,得分越高说明信用越好。表五所示的结果表明,发债主体信用最高的三个地区分别是湖南、新疆和云南。

表六、定性指标---企业性质,对违约状态影响的得分

企业性质

分值

地方国有企业

21

中央国有企业

4

中外合资企业

-2

公众企业

-3

外资企业

-6

其他企业

-11

外商独资企业

-13

民营企业

-17

集体企业

-20

国有企业

-29

绘图表示,如下所示:

表六所示的结果表明,发债主体信用最高的三类企业分别是地方国有企业、中央国有企业和中外合资企业。

表七、定性指标---行业,对违约状态影响的得分

行业(Wind)

分值

金融

30

房地产

26

公用事业

19

工业

0

医疗保健

-2

可选消费

-3

能源

-9

材料

-11

信息技术

-11

日常消费

-14

电信服务

-21

绘图表示,如下所示:

表七所示的结果表明,发债主体信用最高的三个行业分别是金融、房地产和公用事业。

四、定性研究结论

衡量定性指标对违约状态影响程度的信息值可通俗的解释为,如果样本总体中包含了大量的跟该定性指标相关的违约和正常的信息,则表明该指标能给违约状态提供较大的信息量,因此对违约状态的影响也就比较显著,反之则不显著。举个例子,位于广东惠州的侨兴电讯共计发行了14只债券,都发生了违约,这就给“广东”、“民营企业”、“电信服务业”这三个定性指标提供了很强的“负能量”信息,这就会直接拉低它们自个的分值。

从表五的统计得分,我们可以得出“投资不过山海关”是个伪命题。因为目前中国是“东西和南北”发展很不平衡的国家,经济发达的东南沿海地区企业很多,发行的债券也很多,出现违约的债券也很多。按照信息值的定义规则,东南沿海地区会产生较强的“负能量”信息,造成评分下降。反而,企业相对数量不多的中西部地区(湖南、新疆、云南、江西、重庆、安徽等),由于基本没发生过违约事件,从而产生较强的“正能量”信息,得分普遍较高。

从表六的统计得分,我们可以得出“国企信仰是需要坚守的”。因为从已经违约的只债券来看,民营企业违约债券的数量较多,国有企业数量较少。这样,民营企业就会较强的“负能量”信息,国有企业则会产生较强的“正能量”信息,造成民营企业得分低、国有企业得分高。但从违约总金额和造成的影响来看,民营企业呈现“数量多、总金额小、多数以偿付、影响小”的特点,国有企业呈现“数量少、总金额大、多数未偿付、影响大”的特点。而信息值并没有把这些因素考虑进去,因此得到民营企业得分低、国有企业得分高的结果。

从表七的统计得分,我们可以得出“两高一剩不投”是个伪命题。得分最高的前三个行业分别是金融、房地产和公用事业,这也从信用得分的角度说明了虚拟经济(金融、房地产,公用事业主要包括水电、城投)要明显好于实体经济。由于信息值只考虑了违约的数量和频率,因此“两高一剩”总体信用得分中等,属于可投资之列。

综上,任何一个衡量体系都有自身的优点和缺点,信息值也不例外。在全球信用风险评分卡模型开发领域,信息值是用来衡量定性指标对违约状态影响的显著程度最常用的指标之一,由于该指标仅考虑了违约的数量和频率,因此我们得到上述结论。在进行实际的债券投资过程中,我们还需综合考虑还款能力、现金流和违约后债务处置的效率等因素,做出综合的信用风险管理和投资决策。

参考文献:

[1]崔玉征.基于R语言的证券公司信用风险计量和管理[M].北京:清华大学出版社.

赞赏

长按







































白癜风用什么药最管用
白癜风好治吗


转载请注明:http://www.aodaliyag.com/sxzjjy/371.html