### 21.6 Correlation

Function: double gsl_stats_correlation (const double data1[], const size_t stride1, const double data2[], const size_t stride2, const size_t n)

  This function efficiently computes the Pearson correlation coefficient between the datasets data1 and data2 which must both be of the same length n.

      r = cov(x, y) / (\Hat\sigma_x \Hat\sigma_y)
        = {1/(n-1) \sum (x_i - \Hat x) (y_i - \Hat y)
           \over
           \sqrt{1/(n-1) \sum (x_i - \Hat x)^2} \sqrt{1/(n-1) \sum (y_i - \Hat y)^2}
          }

Function: double gsl_stats_spearman (const double data1[], const size_t stride1, const double data2[], const size_t stride2, const size_t n, double work[])

  This function computes the Spearman rank correlation coefficient between the datasets data1 and data2 which must both be of the same length n. Additional workspace of size 2*n is required in work. The Spearman rank correlation between vectors x and y is equivalent to the Pearson correlation between the ranked vectors x_R and y_R, where ranks are defined to be the average of the positions of an element in the ascending order of the values.