所以我遇到了一个奇怪的差异,这取决于我如何用R中的wilcox.test()函数分析相同的数据。在这个例子中,我比较了两组中的值。我可以将它们作为两个单独的向量提供给wilcox.test函数,或者我可以给函数一个data.frame并使用公式来指定我想要进行的比较。奇怪的是,我最终得到了测试统计量(W)的不同值,具体取决于我使用的输入法。我在下面列举了一个例子(R v3.3.1):
#Prepare test data
wt_exp = c(0.59, 0.56, 0.45, 0.59, 0.54, 0.13, 0.25, 0.10, 0.15)
kd_exp = c(0.27, 0.27, 0.33, 0.25, 0.22, 0.2, 0.16, 0.2, 0.36, 0.58, 0.51)
test.data_frame =
data.frame(Expression = c(wt_exp, kd_exp),
Genotype = rep(c("WT", "KD"),
times=c(length(wt_exp), length(kd_exp))))
#Wilcox test using two input vectors
wilcox.test(wt_exp, kd_exp)
# Result:
# Wilcoxon rank sum test with continuity correction
#
# data: wt_exp and kd_exp
# W = 55.5, p-value = 0.6756
# alternative hypothesis: true location shift is not equal to 0
#
# Warning message:
# In wilcox.test.default(wt_exp, kd_exp) :
# cannot compute exact p-value with ties
#Wilcox test using data.frame and formula
wilcox.test(Expression ~ Genotype, data=test.data_frame)
# Result:
# Wilcoxon rank sum test with continuity correction
#
# data: Expression by Genotype
# W = 43.5, p-value = 0.6756
# alternative hypothesis: true location shift is not equal to 0
#
# Warning message:
# In wilcox.test.default(x = c(0.27, 0.27, 0.33, 0.25, 0.22, 0.2, :
# cannot compute exact p-value with ties
虽然我意识到在这种情况下p值是相同的,但我将会进行数千次这样的测试,我想确定原因,所以我不会这样做。需要对结果进行抽查。想法?
答案 0 :(得分:2)
如果您有两个样本x
和y
,则此测试的测试统计信息基本上是x
值的排名之和。因此,对于测试统计而言,哪一组观察结果为x
并且y
为{1}}。比较
wilcox.test(wt_exp, kd_exp)
wilcox.test(kd_exp, wt_exp)
请注意,从后者获得的值对应于使用公式语法时获得的值。
请注意,这些都得到相同的p值,因为在生成p值之前,样本大小会对统计量进行归一化。