【问题标题】:Clustering a correlation matrix into multiple matrices of maximum correlations in Python在Python中将相关矩阵聚类成多个最大相关矩阵
【发布时间】:2018-06-30 02:58:24
【问题描述】:

假设我计算了 500 只股票价格的相关性,并将它们存储在一个 500x500 的相关矩阵中,对角线上为 1。

如何将相关性聚类成更小的相关性矩阵(在 Python 中),以使每个矩阵中股票的相关性最大化?意思是说,我想对股票进行聚类,使得在每个聚类中,股票价格都相互高度相关。

我可以聚集成多少个较小的矩阵没有上限,尽管最好它们的大小相似,即拥有 3 个 100x100 矩阵和 1 个 200x200 矩阵比说 10x10 矩阵、90x90 矩阵和 400x400 矩阵更好。 (即最小化矩阵大小的标准偏差)。

最好在 Python 中完成。我尝试查找 SciPy 的聚类库,但尚未找到解决方案(我是 SciPy 的新手和此类统计编程问题)。

非常感谢任何为我指明正确方向的帮助!

【问题讨论】:

  • 你能不能再次聚类相关矩阵?你可以把它扔到seaborn.clustermap 看看它的样子。

标签: python numpy scipy cluster-analysis correlation


【解决方案1】:

这里明显的选择是层次凝聚聚类。

请注意,大多数工具(例如 sklearn)都需要一个 distance 矩阵。但它可以用 similarity 矩阵代替。然后你可以使用相关性。这是教科书。

【讨论】:

    猜你喜欢
    • 2016-10-01
    • 2016-06-20
    • 1970-01-01
    • 2012-11-04
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 2018-09-25
    相关资源
    最近更新 更多