首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >多重t检验比较

多重t检验比较
EN

Stack Overflow用户
提问于 2017-09-19 16:43:17
回答 2查看 4.6K关注 0票数 3

我想知道如何使用t.testpairwise.t.test对基因组合进行多重比较。首先,如何比较基因1与基因3、基因3与基因4等所有组合?第二,如何才能将基因1的组合与其他基因进行比较?

我需要为此做些什么吗?

假设我有下面的数据集,当“参数不是相同的长度”时,我能做什么?

谢谢。

代码语言:javascript
运行
复制
Gene   S1      S2      S3      S4      S5      S6     S7
1   20000   12032   23948    2794    5870     782    699
3   15051   17543   18590   21005   22996   26448
4   35023   43092   41858   39637   40933   38865
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-09-19 17:56:40

我认为@akrun在编程方面有一个很好的答案,但由于这个问题也与统计有关,因此需要指出的是,使用多次t检验可能不被认为是一种统计上合理的分析方法,这取决于您在完整数据集中的比较次数。所以请记住这一点。至少,在此建议采用Bonferroni修正或类似的方法。所以我把它添加到@akrun的代码中。

在运行t-测试之前,最好进行一次方差分析,看看总体上是否存在任何差异。哥伦比亚大学在他们的统计页面上对这一方法有了有益的解释。

尽管如此,为了回答问题的编程方面,我将向您展示如何做到这两种方法,但是对于那些查找相同问题的人,在使用这个答案之前,请仔细检查您的方法。

我在R.中通过选项(scipen=999)展示了以下结果,但没有科学符号,以帮助那些不太熟悉它的人。

T检验前方差分析:

代码语言:javascript
运行
复制
summary(aov(val ~ as.factor(Gene), data=gather(df, key, val, -Gene)))

                Df     Sum Sq    Mean Sq F value     Pr(>F)    
as.factor(Gene)  2 2627772989 1313886494   34.49 0.00000245 ***
Residuals       15  571374752   38091650                       
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

T检验:

代码语言:javascript
运行
复制
library(broom)
library(dplyr)
library(tidyr)

gather(df, key, val, -Gene) %>% 
  do(data.frame(tidy(pairwise.t.test(.$val, .$Gene, p.adjust="bonferroni"))))

  group1 group2       p.value
1      3      1 0.05691493022
2      4      1 0.00000209244
4      4      3 0.00018020669

编辑:

对于这些测试,如果观测的长度不完全相同,那就不重要了。我前面描述的代码仍将运行。但是,通常在R中,使空值或空值等于NA是很好的做法。有关将值更改为NA的方法,请参见此所以回答

如果你想把你的t测试限制在几个基因比较上,例如,基因1和基因3,基因1和基因4,但不包括基因3和基因4,最简单的方法仍然是使用上面的代码。然而,不要在pairwise.t.test函数中应用p值校正,只需将其应用于您想要评估的p值。试试这个:

代码语言:javascript
运行
复制
res <- gather(df, key, val, -Gene) %>% 
  do(data.frame(tidy(pairwise.t.test(.$val, .$Gene))))

res <- res[res$group1==1 | res$group2 ==1,]

res$p.value <-  p.adjust(res$p.value, method = "bonferroni")

print(res)

  group1 group2        p.value
1      3      1 0.015989134399
2      4      1 0.000001458475

请注意,上面只对我们有子集的测试应用p值校正,并希望对其进行评估,在本例中,这是任何涉及基因1的组合,不包括不涉及基因1的组合。

票数 3
EN

Stack Overflow用户

发布于 2017-09-19 18:21:32

好吧,这是另一个统计建议。您可能想看看霍特林T检验,作为多元分布t-统计的推广。

包:带有教程的ICSNP 这里,或霍特林

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

https://stackoverflow.com/questions/46305742

复制
相关文章

相似问题

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