非负矩阵分解及在量化中的作用探索

本文介绍如何使用非负矩阵分解(NMF)算法识别市场驱动因素及受影响的个股。通过分解时间-股票成交量矩阵,得到权重矩阵和特征矩阵,进而分析主要市场驱动因素及其影响的个股。

阅读原文:http://club.jr.jd.com/quant/topic/953653



非负矩阵分解(NMF)本身是一个降维算法,在量化中可以用来识别市场驱动因素以及相应的个股。不过需要说明的一点是,本人目前还处于探索阶段,还没写出相应策略,因此也不敢肯定他的效果。有兴趣的可以讨论一下。

首先我们获取一个矩阵,行为时间,列为股票代码,值为相应的成交量,代码如下:


然后,将该矩阵分解,需要指定特征数量,这里用的是5


这样上述矩阵就分解为了 pw,pf两个矩阵。pw叫做权重矩阵,pf叫做特征矩阵。

pw可以看出驱动市场的主要因素是什么;pf可以看出哪只个股受该驱动因素影响最大

这是pw矩阵最后15行

Image 1.png

可以看出从8月18日开始,第二个特征(即第二列)权重高于其他特征

通过pf矩阵第二行,可查到首次特征影响最大的个股。


返回值为 ['000826.SZ', '300002.SZ']。说明这两只个股走势具有一定相关性

这两个股票和沪深300在2016-8-18到2016-9-1走势如下:

Image 2.png

Image 3.png

Image 4.png

可以看出在大盘下跌的趋势下,这两只股都保持了向上的趋势,说明是具有一定相关性的。

但是也带来了一个问题,既然特征二是主要影响市场的因素,为什么受该特征影响的个股和大盘走势不一致呢?现在我也不知道

阅读原文:http://club.jr.jd.com/quant/topic/953653

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值