Notes | 文本分析方法构建融资约束指标
前言
本文是刊载于《管理世界》2017 年第 12 期《多个大股东与企业融资约束——基于文本分析的经验证据》[1] 的阅读笔记。原论文参照 Hoberg 和 Maksimovic(2015)、Buehlmaier 和 Whited(2016)的方法,结合中国制度背景和语言习惯,采用文本分析方法构建了融资约束指标。本笔记主要记录其使用文本分析方法构建指标的过程。
指标构建过程
文本来源
上市公司年报中“管理层讨论与分析”(简称为 MD&A )的文本。“管理层讨论与分析”直接或间接的涉及到公司资金状况的讨论,隐含了公司融资约束状况信息。
我国上市公司年报中“管理层讨论与分析”一般包括:
- 对报告期内公司经营状况、财务状况和投资状况的回顾,其中包括了主营业务状况、现金流状况、资产与负债状况、募集资金使用状况、投资状况、主要参股控股公司状况;
- 对公司未来发展情况的展望,其中包括行业格局与趋势、公司发展战略、经营计划和公司面对的主要风险等;
- 除此之外,还可能包含利润分配预案或资本公积金转增股本预案、履行社会责任情况等工作内容。
整体流程
- 提取公司年报中 MD&A(从 2000-2014 年年报中共获取了 25301 份);
- 采用正则表达式检索出隐含融资约束信息的文本,并把相应的 MD&A 进行标记,纳入对应年度的融资约束文本集;
- 重复性检索、查阅矫正以保证隐含融资约束文本集识别的准确性;
- 计算余弦相似度,衡量全体样本和融资约束样本的相似度
;
- 构建多元线性回归模型,剔除共性、行业特征等导致相似度失真的因素,模型残差
即为融资约束度量指标
。
技术细节
提取文本
在下载非金融行业公司历年年报后,使用程序提取和人工核对的方法提取。
这种涉及结构化文件和批量处理的工作,可以主要交由程序完成。首先是通过爬虫批量下载年报;然后通过分析 PDF 文档,需要提取文字板块的开始和结束特征(比如页码、标题等);最后,可以运用 Python 读取 PDF 的库读入文件,再通过条件判断语句提取对应信息。
隐含融资约束的标准
Hoberg 和 Maksimovic(2015)认为融资约束体现为:投资计划、项目的推迟、搁置乃至放弃,因此,他们构造了两组“推迟投资”词语列表。
- 其中一组是有推迟、延期、搁置含义的动词词表;
- 另一组是与投资、项目和计划等意思相近的名词词表。
- 若在待识别文本中,动词词表和名词词表中的词语、词组同时出现,且相隔不超过 12 个词,则将其判定为有推迟投资含义的融资约束文本。
原文作者的创新:
- 没有通过“推迟投资”界定融资余额是,而是通过公司对资金状况的描述去识别。比如,公司明确表明融资能力有限、资金紧张,则被视为融资约束成本;
- 没有采用 12 词的窗口长度,而是采用正则表达式。
用于识别的正则表达式
"'[^。]*?((融资|资金|筹资))[^。]{0,6}?(难以|不能|无法|不足以)[^。]*'"
(除句号以外的任意长度字符串)+ 融资/资金/筹资+(六个字符长度域内的任意字符串)+ 难以/不能/无法满足/不足以 + (除句号以外的任意长度字符串)
"'[^。]*?((融资|资金|筹资))[^。]{0,6}?(成本|压力|难度)[^。]{0,4}?(升|增|高|大)[^。]*'"
(除句号以外的任意长度字符串)+ 融资/资金/筹资 +(六个字符长度以内的任意字符串)+ 成本/压力/难度 +(四个字符长度以内的任意字符串)+ 升/高/增/大 +(除句号以外的任意长度字符串)
利用正则表达式太过机械,可能引起误判。因此,在正则表达式的基础上,再利用条件判断语句和正则配合使用,构造出正则表达式组。
文本相似度
为何计算文本相似度?
度量全体样本与融资约束样本的文本相似度。将任意一份 MD&A 中的词汇、词频信息映射为可比较的向量。对每个向量标准化,根据余弦相似度原理,任意两个标准化词频向量的积,即为两份 MD&A 之间的文本相似度。通过余弦相似度方法,能够识别全体样本的融资约束程度,并以连续变量的形式进行呈现。
初步计算
- 公司
在
年的 MD&A 标准化词频向量记为
。
- 将隶属于融资约束文本集内的 MD&A 求标准化词频向量的均值,再次标准化后记为
,即反映当年融资约束 MD&A 的平均用词特征。
- 由
乘以
计算出
,即为全体 MD&A 与当年的融资约束文本集的相似程度。
但是初步计算出来的相似度衡量的是单份 MD&A 与融资约束文本集的整体相似度,其中夹杂可能导致相似度失真的因素,诸如:
- 文本共性因素:不同 MD&A 的共同性文本内容,譬如标题、固定格式和样板语句等;
- 行业共性因素:每个行业的专有性名词、术语,隶属于同一行业的公司,MD&A 相似程度会更高。
针对上述问题,还需要在初步计算的基础上进一步清理才能得到更为准确的指标。
精细计算
问题 |
对策 |
---|---|
不同交易所信息披露文本格式不同 |
将每年的 MD&A 按照不同交易所和深交所的不同板块进行划分 |
行业共性 |
以 2001 年证监会行业分类代码为标准划分行业,计算因行业特征引发的相似度 |
对历年隶属于各个板块的公司 MD&A ,求标准化词频向量的均值并做标准化处理,记为
,反映上市板
在
年的共同性信息披露内容。由
乘以
计算因 MD&A 共性内容导致的相似度。同样的方法,以 2001 年证监会行业分类代码为标准划分行业,记算因行业特征导致的共性。
借鉴 Hoberg 和 Maksimovic(2015)的方法,构建多元线性回归模型:
其中,残差
即为剔除上市交易所和行业特征引发融资约束后的融资约束相似度,也即文章最终采用的融资约束度量指标
。
参考资料
[1]
《多个大股东与企业融资约束——基于文本分析的经验证据》: https://kns.cnki.net/KCMS/detail/detail.aspx?dbcode=CJFQ&dbname=CJFDLAST2018&filename=GLSJ201712012&v=MDU3Njc0SDliTnJZOUVab1I4ZVgxTHV4WVM3RGgxVDNxVHJXTTFGckNVUjdxZlkrWnNGeXJuVUx2TElpSFlaTEc=
- 使用VBA创建Access数据表
- 新时代已经来临,你做好准备了吗?
- Python自学笔记——多线程微信文章爬取
- 习近平要求加快这项技术发展 与你关系很密切!
- 趴比库获数百万元融资 域名pabiku.com给力十足
- 联袂腾讯 “互联网+税务”创新模式在蒙启动
- 学医11年,终将被机器取代
- 大数据揭示:女性比男性更关注医改 建档等是热门话题
- 腾讯人工智能实验室AI Lab主任张潼博士前沿对话:AI如何助力营销?
- 当前所有源码链接
- Python入门基础连载(4)控制流
- 济西站构建大数据运营网络,打造智能化列车加工厂
- 五位数终端收购的域名dongxiao.cn已启用
- 全球互联网发展进入“拐点”——展望下一代互联网
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- lipo命令
- protobuf 为经络,gRPC为骨架
- JVM系列之:String,数组和集合类的内存占用大小
- 如何用 Python 写个登陆窗口?
- 3500 字算法刷题精华总结
- web 云开发获取匿名登录返回的uid
- MySQL 最佳实践:慢查询分析三步曲
- 【NLP】利用jieba对网易云音乐的评论进行词云分析
- 【深度学习】一分钟速学 | NMS, IOU 与 SoftMax
- 【机器学习基础】数学推导+纯Python实现机器学习算法26:随机森林
- 【机器学习基础】Python数据预处理:彻底理解标准化和归一化
- Logback配置文件这么写,TPS提高10倍
- 重学数据结构之队列
- 太简单,springboo 使用自定义的 Tomcat
- 没想到,几行代码,你就可以实现图片压缩(springboot)!