skbio.stats.composition.perturb_inv#
- skbio.stats.composition.perturb_inv(x, y)[source]#
Perform the inverse perturbation operation.
This operation is defined as:
\[x \ominus y = C[x_1 y_1^{-1}, \ldots, x_D y_D^{-1}]\]\(C[x]\) is the closure operation defined as:
\[C[x] = \left[\frac{x_1}{\sum_{i=1}^{D} x_i},\ldots, \frac{x_D}{\sum_{i=1}^{D} x_i} \right]\]for some \(D\) dimensional real vector \(x\) and \(D\) is the number of components for every composition.
- Parameters:
- xarray_like of shape (n_compositions, n_components)
A matrix of proportions.
- yarray_like of shape (n_compositions, n_components)
A matrix of proportions.
- Returns:
- ndarray of shape (n_compositions, n_components)
A matrix of proportions where all of the values are non-zero and each composition (row) adds up to 1.
Examples
>>> import numpy as np >>> from skbio.stats.composition import perturb_inv >>> x = np.array([.1, .3, .4, .2]) >>> y = np.array([1/6, 1/6, 1/3, 1/3]) >>> perturb_inv(x, y) array([ 0.14285714, 0.42857143, 0.28571429, 0.14285714])