【问题标题】:concerning my formula...Wilcox test and adjustment关于我的公式……Wilcox 测试和调整
【发布时间】:2023-02-14 12:55:52
【问题描述】:

大家好, 我有一个这样的数据框,我想用结果 LesionResponse 来估计 wilcoxon 测试每个特征的 p 值。我实际上有 158 个特征和 1052 行,这是一个示例:

structure(list(LesionResponse = structure(c(1L,2L,2L,2L,1L,2L), .Label = c("0", "1"), class = "factor"), F1= c(677.0119, 275.281, 582.131, 173.747, 6140.739, 558.277), F2=c(27390, 2818, 9856, 3176, 2312, 9800), F3=c(6573,876,246,432,9840,3455)), row.names = c(NA, -6L), class = c("data.frame"))

我试过这个并且有效

data->d 
out <- lapply(3:158, function(x) pairwise.wilcox.test(d[[x]],d[["LesionResponse"]]))
names(out) <- names(d)[3:158]
pvalue<-sapply(out, function(x) {
    p <- x$p.value
    n <- outer(rownames(p), colnames(p), paste, sep='v')
    p <- as.vector(p)
    names(p) <- n
    p
})

在那之前没问题,但我记得我必须在组之间使用波浪号 bc LesionResponse 是阶乘... 当我想使用它时,它无法正常工作......我收到一条错误消息:

Error in factor(g) : argument "g" is missing, with no default

第二点,如果我想用 Bonferroni 或 Hochberg 方法调整结果,我是否必须将它包含在前面的公式中,或者我必须尝试这样的事情(其他主题中的某人给了我这个提示):

pvalue.adj<-pvalue %>%  
  mutate(bonferroni = p.adjust(p_values, method="bonferroni"),
         hochberg = p.adjust(p_values, method="hochberg")) 

谢谢 !

【问题讨论】:

  • “我记得我必须在组之间使用波浪号”……哪里说的? g可以是“分组向量或因子”(来自?pairwise.wilcox.test)。如果您的第一个代码块有效,是否有迹象表明结果不正确?如果不是,为什么要改变?
  • 事实上,我是一名学习 R 的医学生。我只是一个初学者,并不知道所有的技巧,所以我让老板检查我调整后的结果(没有低于 0.05 的值......),他告诉了我。事实上,我选择 pairwise.wilcox 因为这个......
  • @r2evans 事实上,当我绘制未经调整的值时,有一个很大的信号,其中大部分 p 值低于 0.05。在肯定保守的Hochberg之后,变化很大,我的所有值都接近1......

标签: r statistics pairwise.wilcox.test bonferroni


【解决方案1】:

我在调整之前和之后的情节。 之前:plot of values

之后:plot of values

【讨论】:

    猜你喜欢
    • 2021-12-20
    • 2021-10-15
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多