scikit-bio is back in active development! Check out our announcement of revitalization.

skbio.stats.composition.clr#

skbio.stats.composition.clr(mat)[source]#

Perform centre log ratio transformation.

This function transforms compositions from Aitchison geometry to the real space. The \(clr\) transform is both an isometry and an isomorphism defined on the following spaces:

\[clr: S^D \rightarrow U\]

where \(U= \{x :\sum\limits_{i=1}^D x = 0 \; \forall x \in \mathbb{R}^D\}\)

It is defined for a composition \(x\) as follows:

\[clr(x) = \ln\left[\frac{x_1}{g_m(x)}, \ldots, \frac{x_D}{g_m(x)}\right]\]

where \(g_m(x) = (\prod\limits_{i=1}^{D} x_i)^{1/D}\) is the geometric mean of \(x\).

Parameters:
matarray_like of shape (n_compositions, n_components)

A matrix of proportions.

Returns:
ndarray of shape (n_compositions, n_components)

Clr-transformed matrix.

Examples

>>> import numpy as np
>>> from skbio.stats.composition import clr
>>> x = np.array([.1, .3, .4, .2])
>>> clr(x)
array([-0.79451346,  0.30409883,  0.5917809 , -0.10136628])