测试组均值在 R 中是不是在统计上显着不同

Posted

技术标签:

【中文标题】测试组均值在 R 中是不是在统计上显着不同【英文标题】:Test if group means are statistically significantly different in R测试组均值在 R 中是否在统计上显着不同 【发布时间】:2020-03-21 04:18:02 【问题描述】:

*(我之前问过这个问题,但它已迁移到 stackexchange 并被标记为“不清楚”,我无法对其进行编辑,所以我将尝试清理问题并使其更清楚)。

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

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 的平均值是否在统计上彼此不同。然后我需要对每个任务分组重复这个分析。

【问题讨论】:

您的示例无法正常工作,因为该因素至少需要 2 个级别 请尝试阅读此www2.le.ac.uk/departments/health-sciences/research/biostats/…。尝试使用反向 Kaplan Meier 方法。 这似乎仍然是一个统计问题,而不是一个编程问题。似乎您只是在询问哪种统计方法对您的假设是正确的。你需要先知道你想做什么测试,然后才能用任何语言实现。 R 并没有消除您首先为您的数据选择正确的统计方法的需要。关于模型选择的问题属于Cross Validated,而不是 Stack Overflow。 所以我遇到的 dplyr 代码的 pairwise.t.test 部分的一个问题是,我认为该函数正在计算整个数据帧的 t.test,而不是针对每个组。我认为通过调用“mydataframe$TotalTime,mydataframe$Test_Group”,它引用了完整的数据框。我需要它来计算每个组的 t 检验,而不是整个数据集。 【参考方案1】:

以下是使用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$ 来获取当前组而不是原始表。在broom and dplyr vignette查看更多示例

【讨论】:

以上是关于测试组均值在 R 中是不是在统计上显着不同的主要内容,如果未能解决你的问题,请参考以下文章

在 Python 中,如何计算两个数据数组之间的相关性和统计显着性?

显着性检验 R

如果计算相对拒绝频率,如何衡量与显着性水平是不是显着不同? (R中的正态性检验)

如何在 R 中执行测试的现场显着性

R语言单因素方差分析简单小例子

在 Power BI (DAX) 中实施二项式假设检验显着性检验