# Reporting coefficient of determination using Spearman's rho

I have two non-normally distributed variables (positively-skewed, exhibiting ceiling effects). I would like to calculate the correlation coefficient between these two variables. Due to the non-normal distribution, I used Spearman's rank-order correlation, which returns a correlation coefficient and a significance (p) value. My results (n=400) show a significant ($p = 8 \times 10^{-5}$) but weak correlation (Spearman's $\rho$ = .20). If one uses Pearson's, one could describe the strength of the correlation in terms of shared variance (coefficient of determination, $R^2$ – in my case $R^2$ = .04, ie. 4%). Clearly, for Spearman's, it doesn't seem meaningful to square the $\rho$ value as Spearman ranks data. What is the best way to talk about the effect size using Spearman's $\rho$?

Alternatively, following a discussion here (Pearson's or Spearman's correlation with non-normal data), I interpret the discussions as meaning that Pearson's correlation does not assume normality, but calculating p-values from the correlation coefficients does. Thus, I was wondering whether one could use Spearman to calculate the p-value of the correlation, and Pearson's to calculate the effect size, and thus continue to speak of shared variance between the two variables.

• could you specify the nature of data(continuous or grouped data or count data on each of variable. The two measures of correlation are quite different in terms of purpose.
– user10619
Dec 29, 2013 at 15:13

Pearson's r and Spearman's rho are both already effect size measures. Spearman's rho, for example, represents the degree of correlation of the data after data has been converted to ranks. Thus, it already captures the strength of relationship.

People often square a correlation coefficient because it has a nice verbal interpretation as the proportion of shared variance. That said, there's nothing stopping you from interpreting the size of relationship in the metric of a straight correlation.

It does not seem to be customary to square Spearman's rho. That said, you could square it if you wanted to. It would then represent the proportion of shared variance in the two ranked variables.

I wouldn't worry so much about normality and absolute precision on p-values. Think about whether Pearson or Spearman better captures the association of interest. As you already mentioned, see the discussion here on the implication of non-normality for the choice between Pearson's r and Spearman's rho.

• The original scale for $\rho$ is the best, and is directly related to a "majority concordance of triplets of observations" index. But I also don't have much of a problem communicating $\rho^2$. A (much) different way to view this is the $\rho$ is almost a special case of a regression test arising from the proportional odds ordinal logistic model, and that model has a generalized $R^2$ measure based on log likelihood explained, that is akin to variance explained. Jul 14, 2013 at 11:30

@ Jeromy Anglim About squaring the Spearman's Rho and interpreting it as the coefficient of determination: If you are using partial Spearman's Rho, squaring the partial Spearman's Rho and adding them can give you a total that can be above one. Thus, losing the meaning of partial determination coefficient, i.e., the % of variance of dependent variance's rank explained by the independent variable's rank. However, if you do the same procedure with Pearson's partial correlation coefficient, the total will always be bounded btw [0,1].

For instance, try in R:

y.data <- data.frame(
hl=c(7,15,19,15,21,22,57,15,20,18),
disp=c(0.000,0.964,0.000,0.000,0.921,0.000,0.000,1.006,0.000,1.011),
deg=c(9,2,3,4,1,3,1,3,6,1),
BC=c(1.78e-02,1.05e-06,1.37e-05,7.18e-03,0.00e+00,0.00e+00,0.00e+00
,4.48e-03,2.10e-06,0.00e+00))

p1=pcor.test(y.data$$hl, y.data$$disp,  y.data[,c("deg","BC")], method = c("pearson"))$$estimate^2# y.data[,c("deg","BC") --> indicates what other valiables are controling to p2=pcor.test(y.data$$hl,  y.data$$deg, y.data[,c("disp","BC")], method = c("pearson"))$$estimate^2
p3=pcor.test(y.data$$hl, y.data$$BC,  y.data[,c("disp","deg")], method = c("pearson"))$estimate^2 p1+p2+p3  OUTPUT = 0.8444889 and s1= pcor.test(y.data$$hl, y.data$$disp, y.data[,c("deg","BC")], method = c("spearman"))$$estimate^2 s2=pcor.test(y.data$$hl, y.data$$deg, y.data[,c("disp","BC")], method = c("spearman") )$$estimate^2 s3=pcor.test(y.data$$hl, y.data$$BC, y.data[,c("disp","deg")], method = c("spearman"))$estimate^2
s1+s2+s3


OUTPUT = 1.22142

Not sure what is the detailed math explaining why the squared sum of partial Spearman's rho can be above 1.

QUESTION: Could we interpret the squared Kendall's partial correlation coefficient as a coefficient of determination? Using Kendall for the example above:

k1= pcor.test(y.data$$hl, y.data$$disp, y.data[,c("deg","BC")], method = c("kendall"))$$estimate^2 k2=pcor.test(y.data$$hl,  y.data$$deg, y.data[,c("disp","BC")], method = c("kendall") )$$estimate^2
k3=pcor.test(y.data$$hl, y.data$$BC,   y.data[,c("disp","deg")], method = c("kendall"))$estimate^2 k1+k2+k3  OUTCOME= 0.6010744. But I am not sure how to interpret squared Kendall, or if it is acceptable squaring it. ## About the pcor.test() function in R: Pearson and Spearman partial correlation coefficient I don't have enough reputation to comment on the answer of Lucas, so I will write this an answer. You can also get a sum of partial R-squareds with Pearson correlation above 1. This does not happen because of the Spearman or Pearson correlation, actually, I'd expect this to happen regardless of the dependence measure. This happens because of spurious correlation added by adjusting for colliders. Maybe there are other situations, but this is one of the ways. Check the R code below for an example. set.seed(2021) N <- 1000 X <- rnorm(N) Y <- rnorm(N) Z1 <- X - Y + rnorm(N) Z2 <- X - Y + rnorm(N) Z3 <- X - Y + rnorm(N) Z4 <- X - Y + rnorm(N) Z5 <- X - Y + rnorm(N) Z1_r2 <- (pcor.test(X,Y,Z1)$$estimate)**2 Z2_r2 <- (pcor.test(X,Y,Z2)$$estimate)**2 Z3_r2 <- (pcor.test(X,Y,Z3)$$estimate)**2 Z4_r2 <- (pcor.test(X,Y,Z4)$$estimate)**2 Z5_r2 <- (pcor.test(X,Y,Z5)$estimate)**2
Z1_r2 + Z2_r2 + Z3_r2 + Z4_r2 + Z5_r2


The result is larger than one. It is 1.296859. For understanding why, you can check this answer.