Tell me more ×
Cross Validated is a question and answer site for statisticians, data analysts, data miners and data visualization experts. It's 100% free, no registration required.

I am trying to determine why I am getting different results with these different Wilcoxson test implementations in R version 2.15.2. I have paired data with some ties. I have read the response for What is the difference between wilcox.test and wilcox_test in R, but some of the p-values are extremely different in my data. Also, I do not understand why the coin package would have two functions (wilcoxsign_test and wilcox_test) to produce the same result. What am I missing?

Here is my example data:

library('exactRankTests') # for wilcox.exact
library('coin')

data <- data.frame(
    y = c(2770.00, 3160.00, 4120.00, 4510.00, 3320.00, 3170.00, 3340.00, 3810.00, 3760.00, 6350.00, 2720.00, 3740.00, 5210.00, 3330.00, 4230.00, 3490.00, 3138.07, 2630.88, 4058.70, 3521.11, 4941.09, 5762.31, 3565.89, 3517.91, 3413.32, 3415.98, 3439.96, 2602.11, 2659.36, 3099.79, 2820.00, 2830.00, 4310.00, 4010.00, 2780.00, 2730.00, 3130.00, 2700.00, 3510.00, 3460.00, 2470.00, 2920.00, 3230.00, 3370.00, 3290.00, 2380.00, 2845.69, 2137.58, 3477.96, 3128.84, 3117.77, 4949.78, 3061.60, 2942.57, 3149.46, 3067.10, 3164.60, 2135.01, 2275.32, 3154.66),
    condition = factor(c(rep('A', 30), rep('B', 30))),
    participant = factor(rep(1:30, times=2))
)

When trying to get exact results I compared wilcoxsign_test, wilcox_test, and the depreciated wilcox.exact.

wilcoxsign_test(y ~ condition | participant, data=data, alternative='less', 
    distribution = "exact")
##  Exact Wilcoxon-Signed-Rank Test
## 
## data:  y by x (neg, pos) 
##   stratified by block 
## Z = -4.577, p-value = 3.818e-08
## alternative hypothesis: true mu is less than 0

wilcox_test(y ~ condition | participant, data=data, alternative='greater', 
    distribution = "exact")
##  Exact Wilcoxon Mann-Whitney Rank Sum Test
## 
## data:  y by
##   condition (A, B) 
##   stratified by participant 
## Z = 4.15, p-value = 0.05913
## alternative hypothesis: true mu is greater than 0

wilcox.exact(y ~ condition, data=data, alternative='greater', exact=TRUE, 
    paired = TRUE)
##  Exact Wilcoxon signed rank test
## 
## data:  y by condition 
## V = 455, p-value = 3.818e-08
## alternative hypothesis: true mu is greater than 0

Even the approximate methods sometimes differ as seen below.

wilcox_test(y ~ condition | participant, data = data, alternative = "greater", 
    distribution = "approximate")
## 
##  Approximative Wilcoxon Mann-Whitney Rank Sum Test
## 
## data:  y by
##   condition (A, B) 
##   stratified by participant 
## Z = 4.15, p-value < 2.2e-16
## alternative hypothesis: true mu is greater than 0
wilcoxsign_test(y ~ condition | participant, data = data, alternative = "less", 
    distribution = "approximate")
##  Approximative Wilcoxon-Signed-Rank Test
## 
## data:  y by x (neg, pos) 
##   stratified by block 
## Z = -4.577, p-value < 2.2e-16
## alternative hypothesis: true mu is less than 0
wilcox.exact(y ~ condition, data = data, alternative = "greater", exact = FALSE, 
    paired = TRUE)
##  Asymptotic Wilcoxon signed rank test
## 
## data:  y by condition 
## V = 455, p-value = 2.362e-06
## alternative hypothesis: true mu is greater than 0
wilcox.test(y ~ condition, data = data, alternative = "greater", paired = TRUE)
## Warning: cannot compute exact p-value with ties
## 
##  Wilcoxon signed rank test with continuity correction
## 
## data:  y by condition 
## V = 455, p-value = 2.481e-06
## alternative hypothesis: true location shift is greater than 0
pairwise.wilcox.test(data$y, data$condition, p.adj = "none", paired = TRUE)
## Warning: cannot compute exact p-value with ties
## 
##  Pairwise comparisons using Wilcoxon signed rank test 
## 
## data:  data$y and data$condition 
## 
##   A    
## B 5e-06
## 
## P value adjustment method: none

As a related question. How can I get the extract observed Wilcoxon statistic for wilcoxsign_test? I know you can do the following for wilcox_test, but it does not seem to work for wilcoxsign_test.

w_t <- wilcox_test(y ~ condition | participant, data = data, alternative = "greater", 
distribution = "exact")
statistic(w_t, "linear")
##       
## A 1128
share|improve this question
I realize the the wilcoxsign_test documentation states that it is for repeated measures designs, which is what I am doing, while the wilcox_test is documented as useful for independent data sets. However, the wilcox_test has a blocking variable documented in the formula, which indicates that it should handle handle pairwise comparisons as well. – StretchTiberius Nov 2 '12 at 19:17

Know someone who can answer? Share a link to this question via email, Google+, Twitter, or Facebook.

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Browse other questions tagged or ask your own question.