我有一个包含数千个样本的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
..
Run Code Online (Sandbox Code Playgroud)
我被要求做曼恩·惠特尼(Mann Whitney)u测试,当我使用它时,R正在给我结果:
results <- apply(data,1,function(x){wilcox.test(x[1:3],x[4:6])$pvalue})
Run Code Online (Sandbox Code Playgroud)
但是,我只得到0.1或0.5之类的值。
当我添加时,alternative ="greater"我得到的值为0.35000或0.05000,而一些样本得到的p值为0.14314(这是我可以接受的值)。所以我想知道为什么R给我这样奇怪的pvalues(0.35000,..),以及如何解决它以获得“正常” pvalues。
您正在执行非参数测试,其中测试统计信息是从排名中得出的。样本大小为3时,测试统计信息只有几个可能的不同值。
例:
set.seed(42)
x <- matrix(rnorm(3000), ncol=6)
ps <- apply(x, 1, function(a) wilcox.test(a[1:3], a[4:6])$p.value)
table(ps)
#ps
#0.1 0.2 0.4 0.7 1
# 54 45 108 141 152
Run Code Online (Sandbox Code Playgroud)