本专栏上期文章讨论了根据证券价格变动百分比序列相似度分析证券之间价格关联关系和构建证券市场价格关联关系网络的方法及其应用,本期文章将应用上期介绍的证券市场价格关联关系网络对市场上的证券节点进行聚类研究。
复杂网络节点聚类可采用的方法有谱平分法、变色龙算法、群体动力学模型和粒子竞争模型等。这里就以粒子竞争模型为例进行聚类分析。粒子竞争模型的主要思路是:
1. 初始化若干携带能量的粒子随机散落在网络节点上,粒子通过访问节点增加粒子对节点的控制力,节点访问次数最大的粒子是节点的控制粒子,控制节点的粒子的访问次数与其他访问粒子访问次数差距越大控制力越强;
2. 粒子在游走访问的过程中,如果访问受其控制的节点则增加粒子能量,如果访问非受其控制的节点则消耗粒子能量,如果粒子能量达到上限则能量不再增加,如果粒子能量降至下限则返回任意一个受其控制的节点;
3. 粒子依据一定的访问规则最大化控制节点数量和控制节点访问次数,该访问规则是:
(1)随机访问与粒子当前所在节点有连边(关联关系)的节点或者仅随机访问与粒子当前所在节点有出边连接节点,
(2)粒子从节点至近邻节点随机访问概率与近邻节点数量、近邻节点的该粒子历史访问次数比例相关,还可以考虑连边权重因素;
4. 所有粒子同步随机游走至预设轮次或参考指标收敛至阈值后,受同一粒子控制的节点则归为一个社团,并可由粒子的节点平均最大访问比例以及节点的粒子重叠度指标(由节点最高访问比例和次高访问比例得出)分析社团之间的重叠度。
我们继续以Python库valuequant作为分析工具,示例粒子竞争模型在证券市场价格关联关系网络聚类研究中的应用,相关功能由valuequant的ParticleCompetitionTraining证券市场粒子竞争社团建模数据服务提供。
>>> import valuequant as vq
>>> vq.login('<BoomEvolve用户名>','<用户密码>')#可登陆www.boomevolve.com注册用户
>>> sn=vq.StockNet.StockNet('daily','2022-03-18','SYN','price')#查询基于2022-03-18之前30个自然日内同期交易日价格变动余弦相似度的证券市场网络
>>> pct=vq.StockNet.ParticleCompetitionTraining(network=sn,sid=0)#该功能默认使用半径S75即余弦相似度大于0.75的连边数据(计算概率不考虑连边权重),这里选取子图id为0训练数据
>>> pct.TrainingInfo()#获取训练数据,包括训练编号、训练粒子规模、粒子-节点平均最大访问比例;粒子规模分别是子图节点数量的1/300的1、1.5倍、2倍取整,如果节点数量小于5则不训练
psize avemaxctl
tid
298 9 0.5990
299 13 0.5902
300 18 0.5830
可以通过分析粒子数据,分析证券社团的数量分布以及社团之间的重叠度。包括粒子独立控制的节点数量(monopolize粒子访问节点次数最多且其他粒子访问次数均小于该粒子),粒子重叠控制的节点数量(overlap粒子访问节点次数最多且存在访问次数等于该粒子的其他粒子),粒子控制节点中次高访问次数粒子访问次数比例与该粒子访问次数比例差距小于5%的节点数量(competeL1),粒子控制节点中次高访问次数粒子访问次数比例与该粒子访问次数比例差距小于10%的节点数量(competeL2)。
>>> pct.Particles(tid=298)
monopolize overlap competeL1 competeL2
pid
0 287 0 12 81
1 331 0 26 139
2 402 0 78 195
3 237 0 7 26
...
还可以通过分析节点的访问数据,分析该节点受各粒子(社团)的影响程度。包括该节点的访客数量(uv),访问总数(pv),top1-5粒子编号,top1-5粒子访问比例,社团重叠度(overlap),最高访问粒子数量(maxctlnum)
pct.Vertexes(tid=298)
vertex uv pv top1 ... top5 top5freq overlap maxctlnum
0 <证券代码> 9 584 1 ... 5 0.0169 0.2175 1
1 <证券代码> 9 643 5 ... 7 0.0123 0.2178 1
2 <证券代码> 9 550 8 ... 2 0.0179 0.2558 1
3 <证券代码> 9 1261 5 ... 6 0.0606 0.6614 1
4 <证券代码> 9 1375 0 ... 4 0.0629 0.9834 1
... .. ... ... ... ... ... ... ...
|