【发布时间】:2014-06-12 14:37:18
【问题描述】:
我有一个包含数千个样本的csv,应该比较不同处理后的基因表达:
ID U1 U2 U3 H1 H2 H3
1 5.95918 6.07211 6.01437 5.89113 5.89776 5.95443
2 6.56789 5.98897 6.67844 5.78987 6.01789 6.12789
..
我被要求做一个Mann Whitney u test,当我使用这个时,R 给了我结果:
results <- apply(data,1,function(x){wilcox.test(x[1:3],x[4:6])$pvalue})
但是,我只得到 0.1 或 0.5 之类的值..
当我添加 alternative ="greater" 时,我得到了 0.35000 或 0.05000 之类的值,一些样本得到了 0.14314 之类的 pvalue(这是我可以接受的值)。
所以我想知道为什么 R 会给我这么奇怪的 pvalues (0.35000,..) 以及如何修复它以获得“正常”pvalues。
【问题讨论】:
-
我们需要一些样本数据,...你应该修复你的 shift 键。未能大写会降低人类的可读性。您还应该通过“玩耍”来表达您的意思。 (将 3 个项目与 3 个项目与 M-W 进行比较几乎没有意义。描述实验设置可能会从统计角度获得更好的响应。)
-
我希望现在没问题..为什么我不能将 3 个值与 3 个值进行比较?抱歉,我以前从未使用过此测试..
-
您的非参数测试有效地查看了您的数据的“混洗”程度 - 只有 3+3 个样本,没有多少可能的混洗,因此 p 值将非常离散.不幸的是,三个重复在基因组学中很常见 - 如果您有很多基因(行),您应该查看 bioconductor 中的
limma包,以便您可以跨基因共享变异信息。 -
您可以比较它们,但该比较的结果是否具有任何统计意义则完全是另一回事。非参数测试的功效往往低于其等效参数(因为您丢弃了大量数据并仅保留排名顺序),因此每组有 3 个观察值,我怀疑您是否有足够的信息来检测除巨大之外的所有数据差异。
-
@GavinSimpson “除了巨大的差异之外”:
wilcox.test(-1e9+1:3,1e9+1:3)的 p 值仍然为 0.1(如下面的 Roland 所指出的)