Congruence among distance matrices

Pierre Legendre
April 2001
Département de Sciences Biologiques
Université de Montréal

What does program CADM do?

This program computes a test of the congruence among several distance matrices, using Kendall’s W statistic. The test, which is meant to be applied prior to using several data matrices together in a combined phylogenetic or other type of multivariate analysis, is described in Legendre & Lapointe (2003). Principle of the test (H0: Incongruence of all matrices):
  1. Read in the distance matrices and write them out to a table, each matrix being unfolded onto a row of that table.
  2. Transform the distances from each matrix into ranks.
  3. Compute Kendall’s coefficient of concordance, W.
  4. Permute each matrix using a “matrix permutation” procedure, as in the Mantel test, and compute W*.
  5. Repeat step 4 a large number of times.
  6. Add the reference value of W to the distribution of W* values. Calculate the permutational probability associated to W.
The global CADM test is followed by test of significance in which each distance matrix, in turn, is permuted (H0: This distance matrix is incongruent with the other matrices). Complementary Mantel tests, based upon ranks, are also computed; they allow users to determine what are the groups of congruent distance matrices. The choice is left to users to determine if they want the program to compute the tests of congruence only, the Mantel tests based on ranks only, or both:
(1) Compute and test congruence only
(2) Compute and test Mantel on ranked distances only
(3) Both congruence and Mantel
The number of probabilities of the two forms of tests can be set separately. The program allows the calculation of the test using asymmetric matrices. This is used only if one of the matrices remains asymmetric, i.e., is not transformed into a symmetric matrix by the program.

Program availability

Macintosh version
Compressed binhexed archive containing:
32-bit DOS version
Zip-compressed archive containing:
The maximum size of the data matrix is 120 objects and 20 distance matrices. The program requires 5.6 Mb RAM for running. The source code can be compiled using a Fortran compiler. The user may modify the Parameter statement at the beginning of the program, which fixes the size of the largest data matrix that can be analysed analysed (nmax = maximum number of observations, matmax = maximum number of distance matrices). If you do not have access to a Fortran compiler, we will be glad to help.


Legendre, P. & F.-J. Lapointe. 2004. Assessing the congruence among distance matrices: single malt Scotch whiskies revisited. Australian and New Zealand Journal of Statistics 46: 615-629.

Last updated on Saturday, March 30, 2013 by Philippe Casgrain
Created on Monday, April 09, 2001