检验组均值在 R 中是否在统计上有显着差异

Test if group means are statistically significantly different in R

*(我之前问过这个问题,但它被迁移到 stackexchange 并被标记为 'unclear' 并且我无法编辑它,所以我将尝试清理问题并制作它更清晰)。

我有以下数据框,需要确定测试组的均值之间是否存在统计显着差异,并对每个任务分组重复此操作。 :

set.seed(123)

Task_Grouping <- sample(c("A","B","C"),500,replace=TRUE)
Test_Group <- sample(c("Green","Yellow","Orange"),500,replace=TRUE)
TotalTime <- rnorm(500, mean = 3, sd = 3)

mydataframe <- data.frame(Task_Grouping, Test_Group, TotalTime)

例如,对于任务 A,我需要查看测试组(绿色、黄色、橙色)的均值是否存在显着差异。

我尝试了以下代码,但有些地方不对劲,因为 p.value 对于不同任务分组中的每个测试组组合都是相同的(即每个 p 值为 0.6190578):

results <- mydataframe %>%
  group_by(Task_Grouping) %>%
  do(tidy(pairwise.t.test(mydataframe$TotalTime, mydataframe$Test_Group,
                 p.adjust.method = "BH")))

我也不是 100% 确定 pairwise.t.test 是否是要使用的正确统计测试。换句话说,我需要查看 Test_Group 均值是否在统计上彼此不同。然后我需要为每个任务分组重复这个分析。

以下是使用 dplyrpurrrbroom

的方法
library(dply)
library(purrr)
library(broom)
mydataframe %>% 
  nest(data = c(Test_Group, TotalTime)) %>% 
  mutate(tidy=map(data, ~tidy(pairwise.t.test(.$TotalTime, .$Test_Group,
                                   p.adjust.method = "BH")))) %>%
  select(-data) %>% 
  unnest(tidy)

请注意,由于我们使用的是 map,因此我们使用 .$ 而不是 mydataframe$ 来获取当前组而不是原始 table。在 broom and dplyr vignette

查看更多示例