免责声明:我没有任何这些股票的归属,我也不是股票分析师。 投资前请尽职调查!
TLDR:想挑选最好的股票进行投资。 使用K-means聚类过滤出获胜组。 发现了一组表现出色的57只股票。
作为一名金融专业的毕业生,我想充分利用自己的资金,即投资股票市场以获得比银行利率更高的回报。 让我感到困扰的是: 我应该投资哪些股票? 我知道我必须做自己的尽职调查,并仔细阅读公司的财务报表,而不要读什么,但是我应该从哪家公司开始呢?
考虑到这一点,我想利用我的数据科学知识来缩小对获胜股票的搜索范围。 我计划通过对相似的股票进行分组来使用聚类技术,并希望能够筛选出表现较好的股票。 顾名思义,聚类算法旨在分割数据集并将相似的数据点分组在一起。
摘要
我在数据集上应用了K均值聚类 ,最终结果非常令人满意 。 在2012年至2018年期间,我设法将选股范围从1300只股票(纽约证券交易所和纳斯达克股票)缩小到57只股票,这些股票的平均年收益率为24%,相差5% 。
什么是K均值聚类? (像我五岁那样解释)
K-均值聚类是一种无监督的学习模型。 非监督模型用于从未标记或分类的数据集中学习。 它标识数据集中的共性,并根据每个数据点中这种共性的存在或不存在做出反应。
K-均值聚类模型仅初始化K个质心,与质心接近(相似)的数据点将归类为一个聚类。

数据处理
我获得的数据集是使用Stocker和Yahoo-Finance python软件包提取的。 以下是数据集外观的示例。

根据数据集,我将把这两个变量拟合到K-means模型中:
- 年度回报
- 年度差异
我决定使用这些变量,因为它们会告诉我们有关股票表现及其波动性(风险)的信息。
从原始数据中,我将其转换为更有用的数据框架,该框架使我了解了每只股票的平均年收益率和方差(过去7年)。

评估模型(K均值)
我使用了两个指标来评估模型:
- 群集内的误差平方和(SSE)。 SSE值将通知用户每个数据点到中心的距离。
- 轮廓分数。 轮廓分数可衡量数据点与其自身群集相比与其他群集的相似程度。
我们希望具有较低的SSE值和较高的轮廓分数(轮廓分数范围从1到-1)。
模型结果:在3个集群迭代之后发现了黄金集群
我进行了3次K均值聚类的迭代,以下是我的思考过程。

为了确定每次迭代中的K值,我绘制了2个图,这些图告诉我关于K值范围的每个K值的簇值和轮廓分数内的SSE。
第一次迭代导致分布偏斜
例如,在我的第一次迭代中,我将K的值循环了25次,从K = 1到K = 25。 结果是下面看到的两个图。

从第一个图表中,我们可以看到,随着群集数超过7,群集内的SSE值趋于平稳。 然后,我们参考第二张图,可以看到当聚类的数量从14增加到15时,轮廓得分会大幅下降。因此,我选择在模型中应用K = 14。 我们可以在下面看到第一次聚类的结果。

我们可以看到,大多数股票(1193)集中在一个集群中,而其他集群非常稀疏。 这些其他集群的回报和方差惊人! 精明的投资者绝对不会投资这些股票。 由于当前结果并未缩小我对获胜股票的搜索范围,因此,我决定在多数群体0上进行另一个K均值聚类。
第二次迭代导致2个潜在簇
在K均值聚类的第二次迭代中,我选择我的K值为5(使用与上述相同的逻辑)。 结果(如下所示)更好地散布了,我们可以看到群集0和群集2是性能更好的群集。

由于平均年收益率和方差相当成比例,因此很难分辨哪个是表现较好的集群(在两个集群中)。 因此,我决定添加一个指标Sharpe Ratio ,以更好地反映股票表现。
夏普比率是一种有助于我们了解投资收益与风险相比的指标。 如果您有兴趣,可以在这里阅读更多信息。
为了更好地显示数字,我绘制了2个箱形图。

在图B中,我们可以看到群集2具有最佳的Sharpe Ratio分布。 它的范围从0.2到2.2(通常认为Sharpe Ratio大于1很好,大于2则非常好)。 此外,我们可以看到第2组中有一些异常值(跑赢股票),并且该组中的股票数量仍然相当大(257个股票)。 因此,我继续在聚类2上进行K均值聚类的第三次迭代,以进行更深入的研究,并尝试滤除黄金储备。
黄金集群产生第三次迭代
在K均值聚类的第三次迭代中,我们可以找到黄金簇! 类别3的年平均回报率为24%,方差为5%,夏普比率在0.7到2.2之间!


总结思想
我已经设法缩小到57只股票来对它们进行尽职调查。 在做出任何投资决定之前,应对其财务报表进行进一步分析。 有了这个集群,我什至可以组成一个alpha投资组合(投资组合优化将留在另一篇博客文章中)。
这项研究的一些局限性和假设是:
- 没有考虑发生金融危机的时间段(2007年和2008年)。
- 也没有考虑一年内每种股票的波动性。 黄金集群的年回报率在7年内可能只有5%的低方差,但一年之内股价可能会发生巨大变化。
免责声明:我没有任何这些股票的归属,我也不是股票分析师。 投资前请尽职调查!
如果您对我的工作方式和代码感兴趣,可以单击此链接在我的GitHub上访问它们。
那是所有人!