calculate a P value using a permutation test

52 views (last 30 days)
How can I calculate a P value using a permutation test for these 2 groups?
controlA=[0.22, -0.87, -2.39, -1.79, 0.37, -1.54, 1.28, -0.31, -0.74, 1.72, 0.38, -0.17, -0.62, -1.10, 0.30, 0.15, 2.30, 0.19, -0.50, -0.09];
treatmentA=[-5.13, -2.19, -2.43, -3.83, 0.50, -3.25, 4.32, 1.63, 5.18, -0.43, 7.11, 4.87, -3.10, -5.81, 3.76, 6.31, 2.58, 0.07, 5.76, 3.50];
I know that both samples come from the same distribution.
thanks
  1 Comment
Shuting Li
Shuting Li on 1 Feb 2021
permutationTest(controlA, treatmentA, 10000, 'plotresult', 1);
and the permutation code is in https://github.com/lrkrol/permutationTest.git

Sign in to comment.

Answers (2)

Star Strider
Star Strider on 11 Jan 2020
In MATLAB, use the ranksum function.
For your data:
p =
0.350702223666955
h =
0
stats =
zval: -0.933228071880792
ranksum: 375
So the ‘p’ value indicates that they are not significantly different, and ‘h’ indicates that the null hypothesis is not rejected.
  3 Comments
Star Strider
Star Strider on 11 Jan 2020
I have never heard of the ’permutation test’. When I did an Interweb search on it, the Wilcoxon rank-sum test came up in several examples. That is the reason I use it here.
BINNAN YU
BINNAN YU on 7 May 2020
permutation test is equivalent to wilcoxon rank-sum test, but two are different test

Sign in to comment.


Jeff Miller
Jeff Miller on 12 Jan 2020
This contribution on file exchange looks like it will do what you want.

Products

Community Treasure Hunt

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

Start Hunting!