# Problem with p-value calculation for Spearman's rho correlation analysis

17 visualizzazioni (ultimi 30 giorni)
Manuel Eichenlaub il 18 Set 2018
Commentato: Brendan Hamm il 23 Ott 2018
Hello,
I am using the corr function to calculate correlation coefficients between variables of interest. Specifically, I am using the Spearman's rho method for correlation analysis. While doing this, I noticed something odd when looking at the calculated p-values:
Here is an example that illustrates the problem:
x = [2 7 9 5 4 1 3 8 10 6 11]';
y = [1 2 3 4 5 6 7 8 9 10 11;
1 1 3 4 5 6 7 8 9 10 11]';
[r,p]=corr(x,y,'Type','Spearman')
[r,p]=corr(x,y(:,1),'Type','Spearman')
The output is the following:
r =
0.4455 0.4237
p =
0.1697 0.1941
r =
0.4455
p =
0.1728
One can clearly see that the calculated p-values for the correlation between x and the fist column of y are different, depending on whether y is passed as the full matrix or just its first column.
I found out that this is a specific problem of the Spearman's correlation, as this method uses ranks for calculation. It essentially comes down to the fact that the p-values are calculated differently, depending on the existence of rank ties in the data. In the first function call, the method in the case of ties is used for both columns of y, even though there are only ties in the second column. In the second function call there are no ties in the first column of y, so a different method is used, yielding a different p-value (and from my understanding the correct one) for the correlation between x and the fist column of y.
Would it be possible for anyone to resolve this issue?
Best wishes,
Manuel
##### 0 CommentiMostra -2 commenti meno recentiNascondi -2 commenti meno recenti

Accedi per commentare.

### Risposte (1)

Brendan Hamm il 18 Set 2018
I will notify the development team of your request. In the meantime, if anyone is experiencing the same issue, it may be worth explaining what is happening.
The way this is working is that in the presence of ties (for any column) then the corr function will use an Edgeworth expansion for the tail probabilities, this is documented as Algorithm AS89 . In the event that there are no ties, then MATLAB will use a t-approximation for the p-value as described in the Wiki article.
##### 3 CommentiMostra 1 commento meno recenteNascondi 1 commento meno recente
Manuel Eichenlaub il 10 Ott 2018
Is there any news regarding this issue? It has been 3 weeks.
Brendan Hamm il 23 Ott 2018
I have notified the development team, pointing them to this question and they will review it and make a decision accordingly. I typically will not receive any notification regarding this.If you would like to hear any information back then I would suggest you open a technical support case .

Accedi per commentare.

### Categorie

Scopri di più su Creating and Concatenating Matrices in Help Center e File Exchange

R2017a

### Community Treasure Hunt

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

Start Hunting!

Translated by