前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【贝叶斯系列】在研究机构如何应用贝叶方法论进行量化投资

【贝叶斯系列】在研究机构如何应用贝叶方法论进行量化投资

作者头像
量化投资与机器学习微信公众号
发布2018-01-30 10:47:37
1.9K0
发布2018-01-30 10:47:37
举报

贝叶斯方法与量化投资

贝叶斯方法在量化投资中有哪些应用?

  • 股票分类
  • 市场趋势识别
  • 波动率估计
  • 投资组合风险

股票分类

  • 构造投资组合的方法是买入好的 股票(未来收益率高)或卖出(空) 差的股票(未来收益率为负)
  • 如何甄别好坏?
  • 对股票进行打分或者分类。
  • 贝叶斯分类器。

市场趋势识别

  • 有些投资策略在单边下跌行情中会无效, 因而,需要识别市场趋 势是上涨、下跌,还是震荡。
  • 计算机直接识别趋势难度很大。
  • 我们可以观察到各个策略收益率。
  • 可否反推?

波动率估计

  • 很多策略依赖于市场波动才会生效,捕捉波动率很重要。
  • 期权的盈利尤其依赖于波动率建模。
  • 波动率建模比预测趋势更容易。

投资组合风险

  • 厚尾风险是否独立?

研究机构的应用

国海证券:

CTA 交易策略基于贝叶斯网络概率推断

解读分析:

这篇研报引入了贝叶斯网络(Bayesian Network),也称为信度网络 。目前不确定知识表达和 推理领域最有效的理论模型之一。

贝叶斯网络结构介绍:

贝叶斯网络是一个有向无环图,其中结点代表了随机变量,边代表了随机变量之间的概率关系,其联合概率分布可以用贝叶斯链式法则来表示

其中ParG(Xi)表示结点Xi在图G中的父节点对应的随机变量。

条件概率是指事件 A 在另外一个事件 B 已经发生条件下的发生概率。通常, 事件 A 在事件 B 发生的条件下的概率,与事件 B 在事件 A 的条件下的概率是不一样的,然而,这两者是有确定的关系。贝叶斯定理是关于随机事件 X 和 Y 的 条件概率和边缘概率:

如果变量 X 的值依赖于变量 Y,那么变量 X 与变量 Y 的关系可以表示为:Y->X,其中 Y 可以称为 X 的父节点,X 称为 Y 的子节点。如果 X 有多个父节点,那么这些父节点的集合可以表示为:Set{X 的父节点}={Y1, Y2, Y3, ...}。

贝叶斯网络和条件概率有着密不可分的关系。贝叶斯网络是一种概率网络, 利用图形化的方式进行决策分析,是一种将因果关系和概率知识相结合的信息表示框架。贝叶斯网络是有向无环图(Directed Acyclic Graph,DAG),由代表变量节点及连接这些节点有向边构成。

构成一个完整的贝叶斯网络有两个要素节点和有向边,其中,节点代表随机变量,节点间的有向边代表了节点间的互相关系,用条件概率进行表达关系强度,没有父节点的用先验概率进行信息表达。因此,对于具有不确定性的事件,我们可以依赖贝叶斯网络对事件做出有条件的推断。

概率网络:

这个很好理解,即所谓的概率图模型(PGM)是一种对现实情况进行描述的模型。其核心是条件概率,本质上是利用先验知识,确立一个随机变量之间的关联约束关系,最终达成方便求取条件概率的目的。

有向无环图:

有向无环图(Directed Acyclic Graph, DAG)是有向图的一种,字面意思的理解就是图中没有环。常常被用来表示事件之间的驱动依赖关系,管理任务之间的调度。拓扑排序是对DAG的顶点进行排序,使得对每一条有向边(u, v),均有u(在排序记录中)比v先出现。亦可理解为对某点v而言,只有当v的所有源点均出现了,v才能出现。

经典的有向无环图的拓扑结构如下图所示:

贝叶斯网络构建与训练

对于一个未知的贝叶斯网络,通常有三种方法可以对其结构进行推断:(1) 专家知识;(2)从数据集推断;(3)前面两种方法的结合。在许多研究中,构建贝叶斯网络首先由专家知识直接给出条件概率表(CPT),再根据 CPT 估计贝叶斯网络结构。但是,在很多情况下,对于特定贝叶斯网络结构,专家知识无法用于估算其中的条件概率。此时,如果有足够的数据集,可以网络参数学习的算法, 根据给定的数据集,对网络结构进行概率推断。

目前,关于贝叶斯网络参数学习的方法有很多种。在这篇研报中本用到的是 K2 算法K2 算法由 Gregory F.Cooper 和 Edward Herskovits 在1991 年和 1992 年的两篇文章中首次提出,该算法的基本原理是通过对不同的贝叶斯网络结构进行打分,从而对贝叶斯网络结构进行选择和推断。在 K2 算法中, 假设有一个节点没有父节点,如果该节点新增加的父节点可以增加该网络结构的评分,那么该新增节点则作为父节点加入网络中。换言之,在网络推断过程中,K2 按顺序逐一考察节点变量,确定父节点,然后添加相应的边和节点。当额外增加的父节点不能增加评分,则停止增加该节点的父节点。

K2算法评分函数定义如下:

Nijk:样本数据中,当第 i 个节点(变量)的父节点为 j 的时候,该变量 为 k 的数据样本数量。

ri:第 i 个节点(变量)拥有的变量值上限。

贝叶斯网络工具箱BNT

贝叶斯网络工具箱BNT是kevin p.murphy基于Matlab语言开发的关于贝叶斯网络学习的开源软件包,提供了许多贝叶斯网络学习的底层基础函数库,支持多种类型的节点(概率分布)、精确推理和近似推理、参数学习及结构学习、静态模型和动态模型。

其中涉及K2算法如下:

调用函数:learn_struct_k2()

K2算法(Cooper and Herskovits, 1992)是一种按如下方式工作的贪婪搜索算法。每一个起始点没有父节点。然后增加结果结构打分最高时的父节点。当单独添加父节点再不能提高分数时,停止添加父节点。当我们使用固定的顺序时,我们不需要做循环检查,也不需要为每个节点单独选择父节点。

BNT推广了这点允许使用任何种类的CPD,无论贝叶斯打分规则还是BIC,另外,你可以对每一个节点指定一个任意的父节点数量的上限。

order = [C S R W];

max_fan_in = 2;

dag2 = learn_struct_K2(data, ns, order, 'max_fan_in', max_fan_in);

K2 算法计算流程图:

策略模型变量选择

根据已有信息,预测未来 K 线的变化。选择的变量数量越多,回溯的期数越长,引入的历史信息就会越多。但是我们认为指标的数量与预测精度并不成正比,这是因为引入越多的变量指标,可能会增加越多的噪声信号, 从而影响判断精度。

序号

名称

描述

1

收盘价

/

2

成交量

/

3

委比

(委买数-委卖数)/(委买数+委卖数)

4

K线变化幅度

收盘价-开盘价

5

开盘价

/

除了上述 6 组指标,还可以引入其他的指标,如持仓量、最高价、最低价、KDJ、MACD 等。在完成指标选择之后,我们需要对指标进行处理,通过函数 将其转化为状态变量。

出于简化模型的目的,在策略中,使用的状态变量为二元变量。转换函数定义如下:

其中, rt 为变量 x 在时间 t 和时间 t-1 之间的变化率。通过上式,可以将所有变量转化为二元变量,且消除了单位的影响。

策略实施步骤

交易策略的基本原理是:首先利用已有的数据集对贝叶斯网络进行推断,然后将最新的变量数据代入网络中,对未来的 K 线走势进行预测,再根据预测的概率结果,产生相应的交易信息号。此外,为了充分利用历史经验,我们为贝叶斯网络不断补充新知识,并实时更新结构。然而,必须要注意的是数据缺失会使K2 算法失效。因此如果出现数据确实的情况,我们就需要使用替代算法,如最大期望(Expectation Maximization,EM)等,数据缺失的交易策略暂不在考虑范围之内。

主要测试沪深 300 股指期货主力合约。策略的目的在于判断 K 线的收盘价和开盘价之间的相对位臵,从而获取两个位臵差之间的收益。

中信建投证券:

机器学习之贝叶斯文本分类算法的实现

解读分析:

这篇研报用的思想是在贝叶斯统计下的一些研究。

贝叶斯统计最基本的一个观点是:任一个未知量x都可看作一个随机变量,应用一个概率分布去描述对x的未知状况。这个概率是在抽样前就有的关于x的先验信息的概率陈述,称为先验分布

贝叶斯统计的另一个基本概念是后验分布。后验分布是根据样本分布和未知参 数的先验分布,用概率论中求条件概率分布的方法,求出的在样本已知下,未知参数的条件分布。因为这个分布是在抽样以后才得到的,故称为后验分布。贝叶斯推断方法的关键是任何推断都必须且只须根据后验分布,而不能再涉及样本分布。

具体的贝叶斯推到公式网上很多,就不在这里阐述了。放一个贝叶斯公式就可以啦!

BSW 套利策略

价差波动特点分析

套利交易的本质是价差交易,对于价差走势的准确预判是套利成功的关键。不管是均值回复型的套利策略,还是趋势型的套利策略,其本质都是预判未来价差将处于一个特定的水平,从而结合当前价差情况来执行套利。

价差波动大的情况:

首先, 价差的波动较大,对于价差的震荡重心较难把握。根据历史数据得到的“价差均值”往往在下一时间段不适用。 其次,价差的波动区间也不稳定。

价差稳定的情况:

套利策略会面临“无利可套”的困境。

因此,需要对价差的未来走势做出更准确的预估。当价差的短期走势与长期走势出现较大变化时,我们需要做出调整,平衡两种信息,以得到更好的预判。 为此引入贝叶斯统计学,看看可以在套利方面做些什么。

贝叶斯统计在价差预测上的应用

BSW 套利策略

根据贝叶斯公式,对未来价差做出预测后,接下来的工作就简单了。对比当前价差与预测价差,如果当前价差明显低于预测价差,我们就做多价差;反之, 则做空价差。待价差达到预测值后,平仓离场。该种套利策略我们称之为BSW套利策略。

BSW套利策略的详细步骤:

第一步,根据贝叶斯公式预测价差,求得预测值ES;

第二步,产生套利信号。对比当前价差S0 与预测值ES,记套利成本为Fee,期望收益为r,则按如下情况产生套利信号(1,表示开多仓,做多价差;-1,表示开空仓,做空价差):

第三步,盘中监控与平仓。开仓后,将最新观察的数据纳入样本中,根据贝叶斯公式更新价差预测值 E S ' 。如果最新价差 S '

中信建投证券:

机器学习之贝叶斯文本分类算法的实现

解读分析:

这篇研报用的思想自然语言处理(NLP) 、朴素贝叶斯分类模型大数据

他们从以下几个方面获取数据:

财经新闻指数

个股新闻指数:每支股票每天对应的新闻总数。

个股情绪指数:个股情绪新闻正负面加权汇总。

宏观经济指数:通过财经文本分析,得到新闻正负面,构建加权宏观经济指数等。

股吧相关指数

个股舆情指数:统计个股相关舆情,判断正负面,加权汇总。

个股每日股吧指数:个股相关每日帖子总数。

个股每周股吧指数:个股相关每周帖子总数。

微信公众号指数

个股每日微信推送指数:个股每日被所有相关机构微信公众号推荐总次数。

微信每日推荐个股指数:所有相关机构微信公众号每日推送个股数总数。

微博相关指数

个股每日微博指数:个股相关每日微博总次数。

个股官方微博指数:个股官方微博文章总数量

个股高官微博指数:公司高管在微博发文总数及情绪加权汇总。

公司关注度指数

个股搜索指数:个股每天被百度,搜狗等主流搜索引擎被搜索次数总和。

个股访问热度指数:个股行情被用户访问总数。

个股新闻点击率指数:个股新闻被点击总数。

其它相关指标

商个股销量指数:淘宝,京东等电商个股相关商品金额总数。

电商行业销量指数:淘宝,京东等电商行业相关商品商量总数。

电商个股综合指数:淘宝,京东等电商个股相关商品的浏览量、点击量、客户评价、客户收藏量等基础数据的综合指标。

电商行业综合指数:淘宝,京东等电商行业相关商品的浏览量、点击量、客户评价、客户收藏量等基础数据的综合指标。

银联消费指数:银联刷卡相关个股或者行业数据组成的指标。

贝叶斯文本分析原理

朴素贝叶斯算法假设前提:在给定目标值时属性值之间相互条件独立。 贝叶斯方法的新实例分类目标是在给定描述实例的属性值(A1,A2...An)下,得到最可能的目标值 V。

V = arg maxP(B[j]/ A1,A2...An)

根据贝叶斯公式:

V = arg maxP(A1,A2...An /B[j]) * P(B[j]) / P(A1,A2...An)

由于 P(A1,A2...An)是不依赖于 B[i]的常量,故简化为:

V = arg maxP(A1,A2...An /B[j]) * P(B[j])

因为属性值之间相互条件独立,即联合 A1,A2...An 的概率等于每个单独属性的概率乘积:

Vnb = arg maxP(B[j])* ∏P(Ai | B[j])

其中 i 为 1 到 n。Vnb 表示朴素贝叶斯输出的目标值。

朴素贝叶斯分类模型

1) 多元分布模型(muiltinomial model)

多元分布模型以单词为粒度,不仅仅计算特征词出现/不出现,还要计算出现的次数。另外多元分布模型实 际中分别还可用 tf-idf ,Bool(Bool 表示某个单词是否在某个文档中出现,如果出现则记为 1,否定则记为 0)。BOOL 型特征下的向量空间模型更适合做情绪分类。以下公式以单词出现次数为例。

类条件概率:

P(A1|B[0]) = (Na+1)/(n+N)

其中: Na 为类 B[0]下单词 A1 出现在所有文档中的次数之和

n 为类 B[0]下特征词总数

N 为训练样本中不重复的特征词总数

先验概率:

P(B[0]) = 类 B[0]下单词总数 /训练样本中的特征词总数

2) 伯努利模型

伯努利模型以文件为粒度。

类条件概率:

P(A1 | B[0]) = (类 B[0]下出现 A1 的文件总数 + 1) / (类 B[0]下的文件总数 + 2)

先验概率:

P(B[0]) = (类 B[0]下的文件总数) / (整个训练样本文件总数)

以上两种模型的类条件概率分子中加 1,原因是待分类文本中的属性可能样本中没有,会导致条件概率为 0 的 情况. 贝叶斯公式推导前提各个特征不能为 0。因此实现上通常要做一些小的处理,例如把所有计数进行+1(加 法平滑(additive smoothing,又叫拉普拉斯平滑(Laplace smothing))。而如果通过增加一个大于 0 的可调参数 alpha进行平滑,就叫 Lidstone 平滑。

朴素贝叶斯应用

在新闻分类中,目标集由 B[0],B[1]组成。其中,B[0]为负面,B[1]为正面。属性值(A1,A2...An)即为新闻文本经过分词后的结果。比如:

(A1,A2...An)=(开盘 ,万科, 再 ,出现 ,大涨 ,态势, 涨幅, 一度 ,超 ,股价, 最高, 达元,创出, 多年, 新高, 有所, 回落 ,发稿 ,时 ,成交量, 接近)共 21 个属性值。

根据前面需要得出 Vnb = arg maxP(B[j])* ∏P(Ai | B[j])。需要依次求出 P(Ai | B[j])及 P(B[j]),然后相乘,最大值取为该文本的分类结果。

比如“负面”先验概率 P(B[0]) = 类“负面”下特征词总数 /训练样本中的特征词总数

比如,“开盘”在为类“负面”的条件概率为:

类条件概率 P(A1 | B[0])=p(开盘|负面) = (类“负面”下单词“开盘”出现在所有文档中的次数之和+1)/( 类 “负面”下特征词总数 +训练样本中不重复的特征词总数)。

同样可以求出剩下的属性特征词,(万科, 再 ,出现 ,大涨 ,态势, 涨幅, 一度 ,超 ,股价, 最 高, 达元, 创出, 多年, 新高, 有所, 回落 ,发稿 ,时 ,成交量, 接近)

得出由这些属性值组成的新闻文本归类为“负面”的概率为: V0 = P(B[0])* P(A1 | B[0])* P(A2 | B[0])*...* P(A21 | B[0])

同样的方法,求出由这些属性值组成的新闻文本归类为“正面”的概率为:

V1 = P(B[1])* P(A1 | B[1])* P(A2 | B[1])*...* P(A21 | B[1])

最后,比较 V0 与 V1 的大小,若 V0>V1,则该新闻文本应该归类为负面。否则为正面。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-07-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 量化投资与机器学习 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档