This implementation is a special case of the class of isometric log-ratio transformations.

ilr(x) invilr(x)

x | A numeric vector. Naturally, the forward transformation is only sensible for vectors with all elements being greater than zero. |
---|

The result of the forward or backward transformation. The returned components always sum to 1 for the case of the inverse log-ratio transformation.

Peter Filzmoser, Karel Hron (2008) Outlier Detection for Compositional Data Using Robust Methods. Math Geosci 40 233-248

Another implementation can be found in R package
`robCompositions`

.

René Lehmann and Johannes Ranke

#> [1] -1.628174 -2.820079#> [1] 1.628174 2.820079#> [1] 0 0#> [1] -0.2034219 0.1174457#> [1] 0.70 0.29 0.01#> [1] 0.70 0.29 0.01# Inverse transformation of larger numbers gives unequal elements invilr(-10)#> [1] 7.213536e-07 9.999993e-01#> [1] 7.207415e-07 9.991507e-01 8.486044e-04#> [1] 1# This is why we do not need all elements of the inverse transformation to go back: a <- c(0.1, 0.3, 0.5) b <- invilr(a) length(b) # Four elements#> [1] 4#> [1] 0.1 0.3 0.5