当前位置: 华闻网 - 证券

雪球知股乎系列三:情绪因子选股正当时

时间:2017-10-26 14:20    作者:叶知秋    

报告要点

作为“猎金系列十六”,本报告研究雪球网的第三个数据源:非格式化的用户发帖文本。通过机器学习的方式对帖子进行情绪判断,构建情绪选股因子。

研究时窗为2014年1月-2017年7月,共计得到30,658,560篇帖子。对初始的帖子经过一系列处理得到降噪之后的信息。选择27,654篇帖子作为样本内数据,通过人工的方式对帖子打标签,确定情绪(正向、负向、中性三种情绪),研究多种机器学习模型的效果,选择SVM作为最终的训练模型。模型样本内精准度达到70.16%,在正向情绪集合、负向情绪集合的召回率分别达到76.9%、68.2%。进一步判断样本外情绪,得到原始的情绪因子数据源。

构建正向情绪比、负向情绪比、综合情绪比因子(负向情绪比即周期范围内负面帖子数/总帖子数)。测试结果显示,负向情绪比因子具有较好的选股能力。整体来讲,负向情绪比越低,未来收益会越好,尤其是在500股票池内部选股能力突出。

将负向情绪比因子与反转因子结合,在中证500股票池内部构建双因子增强策略。双因子策略年化超额收益率、夏普率、最大回撤分别达到11.6%、1.87、6.5%,显著优于反转因子的相应表现。这意味着当期下跌较多但市场负面情绪没那么严重的股票将会有更高的超额收益。

另外从情绪角度出发也做了一些其他方面的选股因子的尝试,如根据综合情绪比因子构建的波动率因子在全市场具有不错的选股能力,月度因子值越大,未来收益越高。

1

背景回顾

1.1 将不可思议进行到底

将各种奇奇怪怪的单位罗列一下,我们会发现有个很有意思的对象:不可思议单位。这个单位是描述人类觉得无法想象的事情如果真的发生大概需要的时间间隔。假设以下几个场景:

场景1:我穿越时空,来到春秋,对话老子:“老人家,我将您的道德经抄录在纸上以便万世传颂好不好?”。老人家沉默不语……他觉得不可思议,何谓纸?想法根本不可能实现,何谈万世传颂。

场景2:我不死心,赶到盛唐,请教玄奘:“圣僧,我将佛法抄录在纸上以便万世传颂好不好?”。玄奘微微一笑:“出家人不打诳语。”但他心里的小九九在说:没个几百年这不可能实现。

这里的“万世”、“几百年”就是不同时代的人在衡量同一件事情的不可思议单位。“不可思议”指标的缩短见证了人类的进步和科技的力量。目前最具有争议性的就是人工智能。人工智能已经深刻的改变了我们的生活方式、思维习惯。而量化投资领域是计算机最“钱”沿的地方,该如何应对这种冲击?

随着三张报表的研究效用曲线在逐步降低,大数据以及机器学习在量化投资领域的应用愈演愈烈。我们在《雪球知股乎系列之一:和关注度因子有个约定》、《雪球知股乎系列二:百万投资组合里的宝贝》详细的介绍了大数据、机器学习、人工智能的关系和发展。下面我们简单回顾一下前面两篇报告的一些关键性内容,方便后续的研究。

1.2 雪球网前情回顾

雪球网有很多功能界面,我们通过爬虫的方式获取雪球网上用户UGC(用户自主生成)的行为内容。雪球网用户行为共计有三种:关注行为、发帖行为、投资组合调仓行为。另外,发帖行为是一种非格式化文本,关注行为是一种格式化文本,包括买入、卖出、关注三种行为,其中关注行为占比95.5%。

雪球知股乎系列三:情绪因子选股正当时
雪球知股乎系列三:情绪因子选股正当时

数据的时间窗口为2010年12月16日至2017年7月21日,在此期间共获得4,254,659个用户、51,320,982条基本行为。

雪球知股乎系列三:情绪因子选股正当时

我们根据关注行为构建了关注度因子,该因子统计了时间周期范围内某个股票被关注的次数,结论有四:

1、关注度因子具有反转效应,当期关注度低的股票未来(月度/周度)会有溢价;

2、雪球网关注度因子与其他互联网文本关注度因子(主流财经媒体网站、股吧)或者类关注度因子(同花顺点击率等)的秩相关性在0.7-0.8左右,具有高同质性;

3、雪球网关注度因子换手率较高、具有一定的小市值效应;

4、关注度因子对于价值因子有一定的增强作用,估值低关注度低的股票未来具有更大的想象空间。

根据投资组合的调仓行为构建价值变动因子,该因子将百万投资组合合并成一个组合,构建月度市值变动率因子,进一步剥离反转因子,该因子具有反转效应:当期调入越多的标的未来下跌的越多,调出越多的标的未来上涨的越多。(具体参见往期报告)。

而本篇是我们基于雪球网用户发帖行为推出的第三篇报告。研究基本框架如下:

1、对用户的发帖进行初始筛选,删除无效的帖子以及文本过长的帖子;

2、选择27,654篇帖子用于人工打标签,然后通过机器学习的方式对历史全样本进行判断,确定每篇帖子的情绪;

3、构建情绪因子用于选股;

4、基于有效的情绪因子构建选股策略。

2

情绪分析综述

2.1 情绪分析的基本流程

情绪分析通过运用NLP、文本挖掘、计算语言学等技术实现对各种非规范化的文本语言处理,达到相应的情绪判断的目的。目前主流的研究方法分成无监督的文本情感判断和有监督的情感判断。

无监督的情感判断主要运用情感词的相关信息进行文本情绪的判断。该方法面临的问题是:1、需要动态维护情绪库;2、忽略了文本的结构问题,导致部分关键信息的丢失。有监督学习的文本情感分析主要运用贝叶斯模型、支持向量机(SVM,Support Vector Machine)、神经网络等模型进行情感分类。不同的学者对机器学习在情绪分析方面的研究进行了不同的尝试和改进。

这里需要强调一点,无论是通过词库方式判断文本情绪,亦或通过机器学习的方式判断文本的情绪,都需要通过切词的方式对文本进行碎片化、向量化处理。

2.2 雪球网情绪判断

我们将每一篇文本的情绪分为3类:乐观、悲观、中性,采用机器学习的方式对文本情绪进行判断。可选择的机器学习模型很多,通过对比分析,我们选择SVM作为最终的机器学习模型(后面会有具体的讨论)。

整个文本处理的流程如下:

雪球知股乎系列三:情绪因子选股正当时

雪球网数据抓取在此就不做赘述,具体参见往期报告。我们接下来重点关注其他关键步骤。

1、删除无效文本:此次研究对象为雪球网用户发的非格式化文本。但有些行为可能仅仅是雪球网的一种推广行为或者无意义的格式文本,鉴于这些文本对最终的情绪分析没有作用,所以删除该类文本。

雪球知股乎系列三:情绪因子选股正当时

2、删除过长文本:部分文本内容过长,一方面增加了情绪判断的难度:当文本过长时会对切词、情绪分析、包括最终的词向量维度产生较大的影响;另一方面极大的降低学习的效率。我们统计所有样本的字符长度,发现文本长度在700以内的样本数占比为97.5%。鉴于此,我们最终只保留文本长度lt;=700的样本作为情绪分析对象。

雪球知股乎系列三:情绪因子选股正当时

3、文本清洗:原始的文本包含大量的噪音或者对情绪判断无效的信息,因此需要对初始的文本内容进行清洗,一方面提升文本质量、降低词向量空间,另一方面提升运算效率。针对于初始文本的清洗维度大致如下:

雪球知股乎系列三:情绪因子选股正当时

4、文本切分:文本清洗后,接下来需要将其分成样本内、样本外数据,同时针对于样本内的数据需要进一步切分成训练集和测试集。保证随机选择的情况下切分的原则是:确保时间维度覆盖度、A股覆盖度。我们抽取了27,654篇帖子作为样本内数据。进一步将样本内数据分成训练集和测试集,比例为70%:30%(训练集:测试集)。这样就得到了19,332篇幅的训练集合、8,322篇幅的测试集。样本内正向情绪的文本占比48.07%、负向情绪的占比29.49%、中性情绪的文本占比22.45%。这个比例与目前市场的现象比较一致:国内市场普遍存在着报喜不报忧的现象,而散户投资者的情绪也存在着类似的比例分配情况。

雪球知股乎系列三:情绪因子选股正当时

5、Prep:接下来重点讲述Prep板块的流程。该部分主要讲述了如何切词、以及如何将切词以后的结果转化成模型(贝叶斯、SVM等)的输入。主要步骤包括切词、否定词、词性的应用、词向量空间生成等几个关键步骤。

5.1、切词:这一步的主要目的是对文本进行切词,碎片化文本后,作为进一步研究的对象。而切词的依据是词库。我们这里利用的是结巴分词系统。同时为了完善词库,我们通过自定义的方式导入搜狗金融词库,构成原始的词库表。

5.2、否定词:否定词的使用会导致语义反转。比如“不/太平”、“不/开心”、“并非/如此”、“从未/快乐”等。根据切词的结果会切出正向词汇,但实际上上面的表述本身传达的是一种否定的意义。需要对否定句进行特殊处理,如句子”I didn’t like thismovie”。部分学者提出“一旦出现否定词,那么在否定词之后、符号之前的所有切词结果都加上否定词,进而形成新的词汇”,根据此规则可以将句子“didn’t like this movie , but I”转换为“didn’t NOT_like NOT_thisNOT_movie, but I”。

5.3、停用词:停用词(stopwords) 是指评论文本数量较多,但对文本的情绪倾向分析没有帮助的词语,例如代词“这”、“那”、“他”,副词“也”、“刚刚”,其他词汇如“而”、“及”、“与”、“或”等。根据停用词集合构建的停用词表删除停用词,能够减少数据噪音,提升文本情感分类的准确率。

部分停用词样本如下:[和,是,就,都,而,及,與,著,或,一个, 我们,你们,她们,他们]。这里需要注意的是需要将刚刚“文本清洗”步骤产生的一些词汇,如“STOCK_URL_”、“USER_URL_”等添加到停用词里面。

5.4、词性标注:通常而言,表达情感的词汇往往是形容词,此外动词、名词等也有类似的作用。但是数词、量词、介词等词汇可能并无太大的作用;另外如果不做词性的限制,最终词向量空间可能会比较大,也会影响运算效率。因此我们将仅仅考虑形容词、动词、名词等功能实词作为特征。

5.5、词向量:这一步主要说明的是模型的输入,即词向量生成问题。根据前面的文本切分、我们得到了每个文本的分词结果(每一个文本是一个词向量空间,1*N维度,这里的N是每个文本切分后的词数目);然后通过否定词处理将每句否定词位置以后的词语进行否定化处理;进一步丢弃没有意义的词汇,其中没有意义的词汇处理流程包括:停用词的处理以及词性的处理。这样我们就能得到每个文本处理完毕的词向量(1*N’维,这里N’ lt;=N)。 然后取所有文本切词后的词量并集,生成词向量全集(1*M),进一步生成K*M(K个样本)维度的向量空间。

下面以两个文本为例,将上面的过程进行简单的梳理。

雪球知股乎系列三:情绪因子选股正当时

对上面切词后的结果进行“Prep”阶段处理。1、切词,切词后结果参见上述表格;2、将例句1中的否定词“没”添加到后面的“离开”(否定词以后,符号之前的所有分词结果)上形成新词汇“没离开”;3、将例句2中的“和”这个停用词去掉;4、然后取所有例句的词全集[大部分、员工、没、没离开、女孩、非常、爱、吃、Ginger、甜品]。依照词向量全集对每个例句切词后的词是否出现在全集中做0/1判断处理(0表示没有出现、1表示出现),处理完毕后结果如下:

雪球知股乎系列三:情绪因子选股正当时

然后根据每个文本词向量化后的结果,结合情绪的帖子得到模型的输入,进行训练。

6、SVM模型:前面在情绪判断的研究中提及,可以运用SVM、贝叶斯、神经网络等多种方法对文本情绪进行判断,在效率和效果方面性价比较高的是SVM模型。我们这里以SVM和贝叶斯模型的对比分析为例进行说明。

选择N个情绪文本作为测试对象(训练集:测试集=70%:30%),分别测试N=6,000、8,000、10,000时,相应的模型表现。从测试结果来看:1、同样本下SVM要优于贝叶斯的表现;2、SVM模型对N的敏感性要优于贝叶斯模型,随着N的增大,SVM效果提升的更快;3、时间效率方面,SVM也显著的、稳定的优于贝叶斯表现。因此后面的分析中将运用SVM作为情绪判断的训练模型。

雪球知股乎系列三:情绪因子选股正当时

7、训练效果:通过以上的整体操作,我们得到了模型输入,运用SVM模型进行训练,得到模型的训练结果,我们从精准度和召回率两个维度考察效果(根据前面的测试集合和训练集合的比例,我们在27,654个样本中共计得到8,322个测试文本)。在测试集上,模型的精准度为70.16%。而从召回率的角度来看,正向、负向、中性文本的召回率分别为76.9%、68.2%、58.3%。

雪球知股乎系列三:情绪因子选股正当时

另外需要注意的是,正如前面在对比SVM 和贝叶斯模型对测试样本数目的敏感性分析一样,我们分别测试了N=6,000、8,000、10,000、15,000、20,000、27,654个样本时,SVM模型的表现。随着N的增大,模型效果在不断提升,但考虑到打标签的人工成本,我们最终打了27,654个样本。

雪球知股乎系列三:情绪因子选股正当时

3

情绪因子构建

3.1 因子逻辑

基于前面的整体研究,我们得到了情绪因子的初始数据源,进一步构建情绪因子。每篇帖子的情绪有三种可能:正向情绪、负向情绪、中性情绪。那么,我们分别定义了以下几种类别的情绪因子。

雪球知股乎系列三:情绪因子选股正当时

从占比的角度来讲,我们分别构建了正向情绪占比、负面情绪占比、综合情绪比三个因子。因子之间可能具有一定的相关性,但各因子反应的信息量不一样。

这里,我们研究了三个情绪因子的截面均值历史趋势图。以负面情绪比为例进行说明(正面情绪比与其正好相反),14年至15年7月呈现单调递增的趋势,尤其是15年前半年,当时行情暴涨,但是从负面情绪比指标来看市场表现一定的恐慌情绪;15年8月至今呈现单调递减的趋势,今年以来有一定波动。

雪球知股乎系列三:情绪因子选股正当时

下面所有的测试都是在以下条件基础之上进行:

个股数据:全市场选股,剔除不满足交易条件的个股;

行业分类:中信一级行业;

数据区间:2014年1月1日至2017年7月21日;

3.2 覆盖度分析

首先研究不同类别的月度情绪因子对A股的覆盖度。从结果来看,正向情绪比因子的覆盖度较高,覆盖度均值达到93.9%,尤其是2014年以后的覆盖度已经趋于全市场覆盖;而负面情绪覆盖度相对较低,但是月度因子的覆盖度均值已经达到83.8%。

雪球知股乎系列三:情绪因子选股正当时

3.3 不同时间频度的对比分析

构建周度以及月度频度的上述因子,从IC 以及分位数组合角度测试因子在全市场的有效性。

雪球知股乎系列三:情绪因子选股正当时

从检测结果来看:1、从频度角度分析,周度频度的因子几乎全部失效,没有选股的预测作用;2、从月度因子具体分析,负面情绪比因子有着较强的选股能力,负面情绪比越低意味着未来标的表现越好。

正面情绪因子失效而负面情绪有一定的预测作用这种现象也比较符合实际。国内股市一般是报喜不报忧,正面情绪存在着大量的噪音,很难从中找到有效的选股信息。而一旦股票形成负面情绪,那市场对股票的认可方面可能进入一个低谷,在悲观里面进行切分,悲观情绪较重的股票可能面临着更大的下行空间。

对悲观情绪比因子进行行业市值中性化,并进一步观察中性化之后的因子与价值、成长、反转、分析师情绪、换手率等因子的相关性。结果发现:中性化以后因子选股能力有所降低;另外,因子与传统的选股因子相关性较低。

雪球知股乎系列三:情绪因子选股正当时

虽然中性化以后的负面情绪比因子有效性有所降低,但在不同指数股票池上可能会有另一番惊喜,所以接下来测试中性化负面情绪比因子在中证500股票池内部的选股效果。

3.4 悲观情绪比因子在中证500中有效性测试

验证中性化悲观情绪比因子在中证500股票池内部的表现。测试结果显示,在中证500股票池内部有较为突出的选股能力,IC达到0.022,IC_IR达到0.4。而观察分位数组合测试的结果发现悲观情绪比与未来收益率呈现负相关关系,悲观情绪比值越小,未来表现会越好。top组别(悲观情绪比值最低的)年化收益率为21.7%,夏普率为0.65。

后面如无特别强调,悲观情绪比因子均是行业市值中性化以后的结果。

雪球知股乎系列三:情绪因子选股正当时
雪球知股乎系列三:情绪因子选股正当时
雪球知股乎系列三:情绪因子选股正当时

3.5 其他维度的情绪因子的研究

我们根据正向情绪、负向情绪、以及两者截面的差异构建了三个选股因子。实际上我们还进行了多维度的研究。这里将其中比较有意义的一些结果分享出来,希望能起到抛砖引玉的作用。

进一步利用综合情绪比因子,构建该因子的月度波动率因子,测试该因子的有效性。

因子计算步骤:

1、计算每个月的(正面帖子数-负面帖子数)/帖子总数,即综合情绪比指标;

2、计算该指标的月度波动率,得到综合情绪比波动率因子;

全市场选股测试该因子的表现,并对该因子进行行业市值中性化,一并研究中性化之后的表现。

测试结果显示,该因子具有较强的选股能力,行业市值中性化以后的表现依然稳健,IC为0.035,IC_IR达到0.69。而中性化以后的分位数测试显示,该因子与收益率之间是严格的单调规律,波动率越高未来表现越好。

雪球知股乎系列三:情绪因子选股正当时
雪球知股乎系列三:情绪因子选股正当时
雪球知股乎系列三:情绪因子选股正当时

4 基于负面情绪比因子构建选股策略

中性化负面情绪比因子在中证500股票池内部表现出比较好的选股能力。那么该因子对传统的选股因子有没有一定的增强作用呢?从反转因子的角度出发,当前股票下跌幅度较大的股票未来会有更大的成长空间。那么在下跌的里面找到负面情绪相对较低的股票,即当期下跌的非常严重但是市场情绪又不是那么悲观的股票未来是否能取得更高的超额收益呢?

基于月度反转因子和月度中性化负面情绪比因子构建双因子增强策略。

选股基本条件:

个股数据:中证500股票池内部选股,剔除不符合条件个股;

行业分类:中信一级行业;

数据区间:2014年1月1日至2017年7月21日;

4.1反转因子与负面情绪比因子增强策略

利用反转因子和中性化负面情绪比因子在中证500股票池内部选股。研究的目的是双因子增强策略对比单独的反转因子的选股策略表现。双因子增强策略选股流程如下:每个月最后一个交易日结束后进行组合的筛选和调整,按照中信行业对负面情绪比因子排序、选择每个行业因子值最低的50%比例股票作为初始股票池,然后按照反转因子进行排序,选择反转因子最大的20%配仓,按中证500权重配权。单独的反转因子选股策略相对简单:月度调仓、月底选择反转因子最大的10%配仓、行业中性化、中证500权重配权。

从对冲策略的结果来看,双因子增强策略表现稳定的优于单反转因子的表现。在年化收益率、夏普率、最大回撤等关键指标方面都得到了大幅度的提升。而分年度来看,双因子策略也稳定的优于单因子的对冲策略表现。.

雪球知股乎系列三:情绪因子选股正当时
雪球知股乎系列三:情绪因子选股正当时

正如前面所言,当期出现大幅下跌的股票并不一定在未来都能获得优异的表现,我们需要从中找到那种市场情绪不是那么悲观的股票,坚定的持有,获取更加稳健的收益。

5 结束语

不知不觉间,基于雪球网的三篇报告全部落地。回首整个研究历程,从去年年底开始布局整个雪球网的研究计划、到网络文本抓取、再到相应的因子研究,虽然不一定做到步步精细,但我们确有处处打磨;虽然未必做到字字珠玑,但我们定量团队确心有所系。在此和大家分享一些浅见,如能起绵薄作用,将倍感荣幸。

1、互联网文本下的大数据研究难点有二:1)、原始数据的获取,国内大数据的兴起和积累大致是从2013年左右开始有一个突破点,但数据壁垒较高,获取成本很大;2)、如何从海量信息中抽茧剥丝在有效降噪的情况下,聚焦有效信息,研发有效的选股策略。

2、充分利用已有的文本数据,切忌“未来函数”现象的出现。比如雪球网用户的粉丝数、比如投资组合里面的关注人数等,没办法去回溯历史上某一时刻这些指标的数值大小。

3、大数据文本下的类关注度因子(和关注度因子相仿的因子,如点击率等)都有很高的同质性。我们兴业定量团队抓取一些主流的财经媒体网站以及东方财富股吧等数据,这些数据源构建的关注度因子的秩相关性均在0.7-0.8之间。

4、情绪因子真的很“情绪”。情绪分析一直是文本挖掘的一个难题,综合利用到NLP、机器学习等学科。而中文方面的研究更是难上加难:在对汉语进行情绪分析时,首先需要切词,切词的依据是有效的词库。而我们没有一个权威的、成熟的、得到广泛认可的词库。另外,无论是国内亦或是国外基于情绪构建的选股因子的选股并不是特别显著(相对于传统的选股因子而言)。

宛宛转转,三篇报告也已攒完,很感激各位对成果的思考和意见。接下来,我们兴业定量研究团队将投入到时效性的文本研究当中,还希望各位从中取“知”、取“悦”。

详情请参阅相关研究报告《雪球知股乎系列三:情绪因子选股正当时》,或联系兴业金融工程研究团队。

--

联系人:任瞳

--

联系人:徐寅

--

联系人:郑兆磊

--

雪球知股乎系列三:情绪因子选股正当时

相关内容