首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >P值与多个Pearson相关

P值与多个Pearson相关
EN

Stack Overflow用户
提问于 2022-11-25 12:50:41
回答 1查看 67关注 0票数 0

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

代码语言:javascript
运行
复制
  df %>%
  select_if(is.numeric) %>%
  group_by(year) %>%
  group_map(~ correlate(.x))

现在我想知道两件事:

  1. 我怎么能得到p-值?
  2. 为什么用红色标记一些相关系数?我在文件里没有找到任何关于它的东西。这些是否已经具有显著的相关性?如果是,则使用哪个重要级别?

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

谢谢你的建议!

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

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

...

  • dplyr:::group_by.data.frame(.,trainingsmodus)

  1. . %>%

我的改编代码:

代码语言:javascript
运行
复制
df %>%
  select_if(is.character) %>%
  group_by(year) %>%
  group_map(~ correlate(.x)) %>%
  add_column(year)

即使我将分组变量创建为一个数值变量,这两个组的结果完全相同,这是没有意义的。有人知道我如何纠正代码吗?

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

代码语言:javascript
运行
复制
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))) 
EN

回答 1

Stack Overflow用户

发布于 2022-11-25 17:59:42

我怎样才能得到p值?

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

代码语言:javascript
运行
复制
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

为什么某些相关系数被标记为红色?

默认情况下,tibbles以红色显示负值或NA值,以使它们更容易被注意到。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74573082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档