Wilcoxon rank sum test

3 views (last 30 days)
Mohsen  Davarynejad
Mohsen Davarynejad on 22 May 2012
I would like to check if my data is smaller than zero or not. Assume the following example.
A = -1*ones(15,1);
[p, h, Stats] = ranksum(A, zeros(15,1))
z-value < 1.96, So A is statistically smaller than zero. But if change the test like the following:
[p, h, Stats] = ranksum(A, zeros(14,1))
the z-value goes positive. Why is that?
  1 Comment
Oleg Komarov
Oleg Komarov on 22 May 2012
MATLAB's ranksum is a two-sided test thus you're not testing for something smaller than zero but different from zero.

Sign in to comment.

Accepted Answer

the cyclist
the cyclist on 23 May 2012
The reason you get a positive z-score for
ranksum(A, zeros(14,1))
is that the z-score is based on ranks of the smaller sample relative to the larger sample. So, it is the ranks of zeros relative to A , and you get higher ranks.
The reason you get a negative z-score for
ranksum(A, zeros(15,1))
is that when the two input vectors have equal sample size, MATLAB arbitrarily bases the z-score on first input (A) relative to the second (zeros), so you get the negative z-score
You can see all this in action if you set a breakpoint inside the ranksum() function. [Lines 70-78 in R2012a.]
  1 Comment
Mohsen  Davarynejad
Mohsen Davarynejad on 23 May 2012
Ahhh, Yes, Thanks Cyclist!

Sign in to comment.

More Answers (0)


Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!