【问题标题】:Finding aggregate correlation of multiple columns against one column in r在 r 中查找多列与一列的聚合相关性
【发布时间】:2015-05-31 12:49:17
【问题描述】:

我有一个包含 11 列的数据框,其中 9 列是数字。我试图找出 8 列与剩余列的相关性,即 8 个变量与 1 个变量的相关性,这应该生成一个相关值,而不是在矩阵中生成 9 个不同的值。

有可能吗?还是我需要在计算个体相关性之后计算平均相关性?例如,我试图找到 X、Y、Z 与 A 的相关性。使用上述方法,我得到一个矩阵,它给出了 X 的个体关联分数, Y,Z 和 A,因为我需要一个考虑所有三个 X、Y 和 Z 的分数。

为了便于说明,下面给出了一个模拟的df

          x            y           z   a
1   1.72480753  0.007053053  0.32435032  10
2   0.97227885 -0.844118498 -0.75534119  20
3  -0.53844294 -0.036178789  0.89396765  30
4   1.34695331  0.870119744  0.99400826  40
5   0.02336335  0.514481676  0.95894286  50
6  -0.15239307  0.386061290  0.73541287  60
7  -0.29878116  1.615012645 -0.04416341  70
8  -1.10907706 -1.581093487 -0.93293702  80
9   2.73021114 -0.130141775  1.85304372  90
10  0.22417487  1.170900385 -0.68312974 100

我可以将每一行和变量与 a 相关,但我想要的是 x,y,z 与 a 的相关性

corr.test(df[,1:3],df[,4])

对于这个问题的任何帮助,我将不胜感激。

问候,

【问题讨论】:

    标签: r correlation


    【解决方案1】:

    皮尔逊相关性被定义为将一个值序列(或向量)与另一个值相关联(查找)的数字。据我所知,一组向量与另一个向量没有大致等效的定义,但你可以做一些事情,比如取平均向量(三个向量的)并将 a 与它相关联。

    至少对我来说,这比取 3 个相关值的平均值具有更直接的几何意义。

    【讨论】:

    • 这更有意义,因为数据已经标准化,因此取平均值将是一个明智的选择。我在平均相关性时遇到问题,因为答案似乎不正确。谢谢。
    • 太好了,很高兴它有帮助。我想你可能不需要代码,它很简单。
    【解决方案2】:

    如果您想计算每个变量与a 的相关性,您可以执行以下操作:

    head(cor(df)[,"a"], -1)
    #           x           y           z 
    # -0.14301569  0.19188340 -0.06561505 
    

    你说你想通过平均来组合这些值,所以我想你可以取平均值:

    mean(head(cor(df)[,"a"], -1))
    # [1] -0.005582445
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-10
      • 2019-10-02
      • 1970-01-01
      • 1970-01-01
      • 2022-01-06
      • 2017-03-21
      • 2013-04-07
      相关资源
      最近更新 更多