使用ggpairs获得相关值

问题描述

我用ggpairs得到了以下图:

enter image description here

我想知道哪对具有最大绝对相关性。但是,当某些对(例如功率跨度,功率长度,跨度长度等)被图覆盖时,我应该如何确定呢?另外,有没有比查看图像更容易的方式(以文本格式)查看相关性了?

解决方法

PowerSpan之间的相关系数与SpanPower之间的相关系数相同。相关系数是根据点与最佳拟合线之间的平方差的总和来计算的,因此哪个序列位于哪个轴上无关紧要。因此,您可以在右上方阅读相关系数,并在左下方查看散点图。

cor函数返回两个向量之间的相关系数。顺序无关紧要。

set.seed(123)
x <- runif(100)
y <- rnorm(100)
cor(x,y)
[1] 0.05564807
cor(y,x)
[1] 0.05564807

如果将data.frame(或类似数据)馈送到cor(),则将获得每对变量之间的相关系数的相关矩阵。

set.seed(123)
df <- data.frame(x= rnorm(100),y= runif(100),z= rpois(100,1),w= rbinom(100,1,.5))
cor(df)
            x           y          z           w
x  1.00000000  0.05564807 0.13071975 -0.14978770
y  0.05564807  1.00000000 0.09039201 -0.09250531
z  0.13071975  0.09039201 1.00000000  0.11929637
w -0.14978770 -0.09250531 0.11929637  1.00000000

您可以在此矩阵中看到围绕对角线的对称性。

如果要以编程方式识别最大(非统一)相关系数,则可以执行以下操作:

library(dplyr)
library(tidyr)
cor(df) %>%
  as_data_frame(rownames = "var1") %>%
    pivot_longer(cols = -var1,names_to = "var2",values_to = "coeff") %>%
    filter(var1 != var2) %>%
    arrange(desc(abs(coeff)))
# A tibble: 12 x 3
  var1  var2    coeff
  <chr> <chr>   <dbl>
 1 x     w     -0.150 
 2 w     x     -0.150 
 3 x     z      0.131 
 4 z     x      0.131 
 5 z     w      0.119 
 6 w     z      0.119 
 7 y     w     -0.0925
 8 w     y     -0.0925
 9 y     z      0.0904
10 z     y      0.0904
11 x     y      0.0556
12 y     x      0.0556