使用 ggpairs 获取相关值

Using ggpairs to get correlation values

我使用 ggpairs 得到以下图:

我想知道哪对的绝对相关性最大。但是,当某些对(例如 Power-Span、Power-Length、Span-Length 等)被绘图覆盖时,我应该如何确定这一点?另外,有没有更简单的方法来查看相关性(以文本格式),而不是必须通过图像查看它们?

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

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

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

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

如果要以编程方式识别最大 (non-unity) 相关系数,可以执行以下操作:

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