确定数据框中的哪些变量与其他两个变量最相关

问题描述 投票:0回答:1

假设我有一个像这样的示例数据框。

sample_df <- data.frame(replicate(100,sample(0:1,1000,rep=TRUE)))

您可能会问的一件事是数据框中的哪些列与 X1 列最相关。 我知道如何做到这一点,使用下面的代码,它显示前 5 个相关性。

library(lares)
corr_var(sample_df,
  X1, 
  top = 5 
)

但是,我不想只关注 X1,而是想知道哪些列与X1 和 X2 最相关。我怎么能做到这一点?

r dataframe sorting pearson-correlation
1个回答
0
投票
一个想法是计算 X1 和 X2 预测的每列的 R2 值:

set.seed(42) data <- data.frame(replicate(100,sample(0:1,1000,rep=TRUE))) r2_var <- function(data, ...) { x <- rlang::ensyms(...) |> as.character() y <- data |> names() |> setdiff(x) purrr::map_dfr(y, ~ { f <- sprintf("%s ~ %s", .x, paste(x, collapse = " + ")) r2 <- summary(lm(f, data))$r.squared dplyr::tibble(var = .x, r2 = r2) }) |> dplyr::arrange(dplyr::desc(r2)) } r2_var(data, X1, X2) #> # A tibble: 98 × 2 #> var r2 #> <chr> <dbl> #> 1 X28 0.00888 #> 2 X76 0.00810 #> 3 X42 0.00761 #> 4 X31 0.00741 #> 5 X39 0.00737 #> 6 X13 0.00678 #> 7 X88 0.00674 #> 8 X63 0.00600 #> 9 X81 0.00508 #> 10 X41 0.00470 #> # ℹ 88 more rows

创建于 2024-06-04,使用 reprex v2.1.0

© www.soinside.com 2019 - 2024. All rights reserved.