【问题标题】:what is the best method to extract highly correlated vaiables within the given threshold在给定阈值内提取高度相关变量的最佳方法是什么
【发布时间】:2015-06-16 09:01:37
【问题描述】:

我有一个数据框并计算了成对相关性

>>> df1 = pd.read_csv("/home/zebrafish/Desktop/stack.csv")
>>> df1.corr()
           GA        PN        PC       MBP        GR        AP
GA   1.000000  0.070541  0.259937 -0.452661  0.115722  0.268014
PN   0.070541  1.000000  0.512536  0.447831 -0.042238  0.263601
PC   0.259937  0.512536  1.000000  0.331354 -0.254312  0.958877
MBP -0.452661  0.447831  0.331354  1.000000 -0.467683  0.229870
GR   0.115722 -0.042238 -0.254312 -0.467683  1.000000 -0.248777
AP   0.268014  0.263601  0.958877  0.229870 -0.248777  1.000000
>>> 

现在从这个相关矩阵中,我如何列出或提取上述情况下的高度相关变量,数据框很小,因此很容易选择高度相关的变量,但是当数据集很大时,比如 4000 X 2000,我们怎么能使用 python 或 pandas 或 numpy 执行此操作。

更新

通过建议的方式,我能够得到这个非常漂亮的方法,但我的困惑仍然存在,它与编程部分无关,它与理论有关

       level_0 level_1         0
0       GA      GA  1.000000
1       GA      PN  0.070541
2       GA      PC  0.259937
4       GA      GR  0.115722
5       GA      AP  0.268014
6       PN      GA  0.070541
7       PN      PN  1.000000
8       PN      PC  0.512536
9       PN     MBP  0.447831
11      PN      AP  0.263601
12      PC      GA  0.259937
13      PC      PN  0.512536
14      PC      PC  1.000000
15      PC     MBP  0.331354
17      PC      AP  0.958877
19     MBP      PN  0.447831
20     MBP      PC  0.331354
21     MBP     MBP  1.000000
23     MBP      AP  0.229870
24      GR      GA  0.115722
28      GR      GR  1.000000
30      AP      GA  0.268014
31      AP      PN  0.263601
32      AP      PC  0.958877
33      AP     MBP  0.229870
35      AP      AP  1.000000

例如,在下面给出的结果中,当我想删除显示相关性超过 0.2 的变量时,我们可以看到 AP 与给定阈值内的其余三个相关,而其余三个也与 AP 相关(虽然, 0.2 不代表高度相关的集合,而仅作为示例选择)所以在什么基础上我可以认为变量在四个 AP、GA、PN 和 PC 之间高度相关或仅相关。

    30      AP      GA  0.268014
    31      AP      PN  0.263601
    32      AP      PC  0.958877

谢谢

【问题讨论】:

    标签: python numpy pandas scipy


    【解决方案1】:

    你可以试试这个

    corr_val=0.01
    df2 = df1.corr().unstack().reset_index()
    df2[df2[0]>corr_val]
    

    【讨论】:

    • 感谢您的回复,我已经稍微更新了我的问题,以澄清一个基本概念。
    猜你喜欢
    • 1970-01-01
    • 2010-09-09
    • 1970-01-01
    • 1970-01-01
    • 2013-07-14
    • 2016-03-11
    • 2018-11-05
    • 2014-03-18
    • 1970-01-01
    相关资源
    最近更新 更多