skbio.stats.composition.clr

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

Performs centre log ratio transformation.

State: Experimental as of 0.4.0.

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:

mat (array_like, float) – a matrix of proportions where rows = compositions and columns = components

Returns:

clr transformed matrix

Return type:

numpy.ndarray

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])