NAG Library Routine Document

g08daf (concordance_kendall)


g08daf calculates Kendall's coefficient of concordance on k independent rankings of n objects or individuals.


Fortran Interface
Subroutine g08daf ( x, ldx, k, n, rnk, w, p, ifail)
Integer, Intent (In):: ldx, k, n
Integer, Intent (Inout):: ifail
Real (Kind=nag_wp), Intent (In):: x(ldx,n)
Real (Kind=nag_wp), Intent (Inout):: rnk(ldx,n)
Real (Kind=nag_wp), Intent (Out):: w, p
C Header Interface
#include <nagmk26.h>
void  g08daf_ (const double x[], const Integer *ldx, const Integer *k, const Integer *n, double rnk[], double *w, double *p, Integer *ifail)


Kendall's coefficient of concordance measures the degree of agreement between k comparisons of n objects, the scores in the ith comparison being denoted by
The hypothesis under test, H0, often called the null hypothesis, is that there is no agreement between the comparisons, and this is to be tested against the alternative hypothesis, H1, that there is some agreement.
The n scores for each comparison are ranked, the rank rij denoting the rank of object j in comparison i, and all ranks lying between 1 and n. Average ranks are assigned to tied scores.
For each of the n objects, the k ranks are totalled, giving rank sums Rj, for j=1,2,,n. Under H0, all the Rj would be approximately equal to the average rank sum kn+1/2. The total squared deviation of the Rj from this average value is therefore a measure of the departure from H0 exhibited by the data. If there were complete agreement between the comparisons, the rank sums Rj would have the values k,2k,,nk (or some permutation thereof). The total squared deviation of these values is k2n3-n/12.
Kendall's coefficient of concordance is the ratio
W = j=1 n Rj - 12 kn+1 2 112 k2 n3-n  
and lies between 0 and 1, the value 0 indicating complete disagreement, and 1 indicating complete agreement.
If there are tied rankings within comparisons, W is corrected by subtracting kT from the denominator, where T=t3-t/12, each t being the number of occurrences of each tied rank within a comparison, and the summation of T being over all comparisons containing ties.
g08daf returns the value of W, and also an approximation, p, of the significance of the observed W. (For n>7,kn-1W approximately follows a χn-12 distribution, so large values of W imply rejection of H0.) H0 is rejected by a test of chosen size α if p<α. If n7, tables should be used to establish the significance of W (e.g., Table R of Siegel (1956)).


Siegel S (1956) Non-parametric Statistics for the Behavioral Sciences McGraw–Hill


1:     xldxn – Real (Kind=nag_wp) arrayInput
On entry: xij must be set to the value xij of object j in comparison i, for i=1,2,,k and j=1,2,,n.
2:     ldx – IntegerInput
On entry: the first dimension of the arrays x and rnk as declared in the (sub)program from which g08daf is called.
Constraint: ldxk.
3:     k – IntegerInput
On entry: k, the number of comparisons.
Constraint: k2.
4:     n – IntegerInput
On entry: n, the number of objects.
Constraint: n2.
5:     rnkldxn – Real (Kind=nag_wp) arrayWorkspace
6:     w – Real (Kind=nag_wp)Output
On exit: the value of Kendall's coefficient of concordance, W.
7:     p – Real (Kind=nag_wp)Output
On exit: the approximate significance, p, of W.
8:     ifail – IntegerInput/Output
On entry: ifail must be set to 0, -1 or 1. If you are unfamiliar with this argument you should refer to Section 3.4 in How to Use the NAG Library and its Documentation for details.
For environments where it might be inappropriate to halt program execution when an error is detected, the value -1 or 1 is recommended. If the output of error messages is undesirable, then the value 1 is recommended. Otherwise, if you are not familiar with this argument, the recommended value is 0. When the value -1 or 1 is used it is essential to test the value of ifail on exit.
On exit: ifail=0 unless the routine detects an error or a warning has been flagged (see Section 6).

Error Indicators and Warnings

If on entry ifail=0 or -1, explanatory error messages are output on the current error message unit (as defined by x04aaf).
Errors or warnings detected by the routine:
On entry, n=value.
Constraint: n2.
On entry, ldx=value and k=value.
Constraint: ldxk.
On entry, k=value.
Constraint: k2.
An unexpected error has been triggered by this routine. Please contact NAG.
See Section 3.9 in How to Use the NAG Library and its Documentation for further information.
Your licence key may have expired or may not have been installed correctly.
See Section 3.8 in How to Use the NAG Library and its Documentation for further information.
Dynamic memory allocation failed.
See Section 3.7 in How to Use the NAG Library and its Documentation for further information.


All computations are believed to be stable. The statistic W should be accurate enough for all practical uses.

Parallelism and Performance

g08daf is not threaded in any implementation.

Further Comments

The time taken by g08daf is approximately proportional to the product nk.


This example is taken from page 234 of Siegel (1956). The data consists of 10 objects ranked on three different variables: X, Y and Z. The computed values of Kendall's coefficient is significant at the 1% level of significance p=0.008<0.01, indicating that the null hypothesis of there being no agreement between the three rankings X, Y, Z may be rejected with reasonably high confidence.

Program Text

Program Text (g08dafe.f90)

Program Data

Program Data (g08dafe.d)

Program Results

Program Results (g08dafe.r)