r语言 - 与p值的多重Pearson相关



我想计算几个列之间的Pearson相关性。JasonAizkalns在这个线程中发布的解决方案对我非常有用。

df %>%
select_if(is.numeric) %>%
group_by(year) %>%
group_map(~ correlate(.x))

现在我想知道两件事:

  1. 如何获得p值?
  2. 为什么一些相关系数用红色标记?我没有在文档中找到任何关于它的信息。这些已经是显著的相关性了吗?如果是,使用哪个显著性水平?

我正在寻找一个尽可能简单的扩展,而不必使用完全不同的方法。

谢谢你的建议!

编辑1 (11/28/22):因为我的分组变量("trainingsmodus")是一个字符变量,我得到以下错误消息,我已经调整了我的代码。

group_by()错误:! 必须按.data中找到的变量分组。找不到trainingsmodus列回溯:

  1. …%在%…
  2. dplyr::: group_by.data.frame (trainingsmodus)

我的改编代码:

df %>%
select_if(is.character) %>%
group_by(year) %>%
group_map(~ correlate(.x)) %>%
add_column(year)

即使我将分组变量创建为数字变量,两组的结果也完全相同,这没有意义。有谁能告诉我如何修改代码吗?

编辑2 (11/28/22)我的df和代码的再现:

df <- data.frame(year = c("lorem", "ipsum", "lorem", "ipsum"),    
var1 = 4:7,
var2 = 5:8,
var3 = 6:9,
var4 = 7:10)
library(rstatix)
df %>%
select_if(is.character) %>%
group_by(year) %>%
group_map(~ cor_test(df,
vars = c("var1", "var2", "var3", "var4"), 
vars2 = c("var1", "var2", "var3", "var4") %>%
filter(is.finite(statistic))) 

如何获得p值?

correlate()不提供此信息,因此您需要使用另一个工具。rstatix包有一个函数cor_test(),可以用来代替:

library(tibble)
library(dplyr)
library(rstatix)
df <- tribble(
~year, ~V1, ~V2, ~V3, ~misc_var,
2018,   5,   6,   5,       "a",
2018,   4,   6,   4,       "b",
2018,   3,   2,   3,        NA,
2013,   5,   8,   2,       "4",
2013,   6,   3,   8,       "8",
2013,   4,   7,   5,        NA
)
df |>
select(where(is.numeric)) |>
group_by(year) |>
group_map(~ cor_test(.x, vars = c("V1", "V2", "V3"),
vars2 = c("V1", "V2", "V3")) |> 
filter(is.finite(statistic)) |>
add_column(.y))
[[1]]
# A tibble: 7 × 7
var1  var2    cor    statistic             p method   year
<chr> <chr> <dbl>        <dbl>         <dbl> <chr>   <dbl>
1 V1    V2    -0.76       -1.15  0.454         Pearson  2013
2 V1    V3     0.5         0.577 0.667         Pearson  2013
3 V2    V1    -0.76       -1.15  0.454         Pearson  2013
4 V2    V2     1    67108864     0.00000000949 Pearson  2013
5 V2    V3    -0.94       -2.89  0.212         Pearson  2013
6 V3    V1     0.5         0.577 0.667         Pearson  2013
7 V3    V2    -0.94       -2.89  0.212         Pearson  2013
[[2]]
# A tibble: 4 × 7
var1  var2    cor statistic     p method   year
<chr> <chr> <dbl>     <dbl> <dbl> <chr>   <dbl>
1 V1    V2     0.87      1.73 0.333 Pearson  2018
2 V2    V1     0.87      1.73 0.333 Pearson  2018
3 V2    V3     0.87      1.73 0.333 Pearson  2018
4 V3    V2     0.87      1.73 0.333 Pearson  2018

为什么有些相关系数用红色标记?

默认情况下,标题以红色显示负值或NA值,以便更容易注意到。

相关内容

  • 没有找到相关文章

最新更新