【问题标题】: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 检验,而不是整个数据集。

标签: r statistics anova t-test hypothesis-test


【解决方案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查看更多示例

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-14
    • 2012-12-20
    • 2020-06-26
    • 2020-06-05
    • 2019-08-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多