具有p值的多重Pearson相关

14ifxucb  于 2022-12-06  发布在  其他
关注(0)|答案(1)|浏览(111)

我想计算几列之间的皮尔逊相关系数。JasonAizkalns在this thread中发布的解决方案对我非常有用。

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

现在我想知道两件事:
1.如何获得p值?
1.为什么有些相关系数标红了?我在资料中没有发现,这些是否已经是显著相关?如果是,使用了哪个显著性水平?
我正在寻找一个尽可能简单的扩展,而不必使用完全不同的方法。
感谢您的任何提示!

  • 编辑1(11/28/22):* 因为我的分组变量(“trainingsmodus”)是一个字符变量,并且我得到了下面的错误消息,所以我对我的代码进行了修改。

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

  1. dplyr:::分组依据.数据.帧(.,训练模式)
    我的改编代码:
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)))
u4dcyp6a

u4dcyp6a1#

如何获得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

为什么有些相关系数用红色标记?
默认情况下,Tibble以红色显示负值或NA值,以便于注意。

相关问题