0

我曾经ggpairs得到以下地块:

在此处输入图像描述

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

4

1 回答 1

1

和之间的相关系数与Power和之间的相关系数Span相同。相关系数是根据点与最佳拟合线之间的平方差之和计算的,因此哪个系列在哪个轴上并不重要。因此,您可以阅读右上角的相关系数并查看左下角的散点图。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
于 2020-08-10T23:07:03.930 回答