Pivot coordinates and their inverse
Pivot coordinates as a special case of isometric logratio coordinates and their inverse mapping.
pivotCoord( x, pivotvar = 1, fast = FALSE, method = "pivot", base = exp(1), norm = "orthonormal" ) isomLR(x, fast = FALSE, base = exp(1), norm = "sqrt((D-i)/(D-i+1))") isomLRinv(x) pivotCoordInv(x, norm = "orthonormal") isomLRp(x, fast = FALSE, base = exp(1), norm = "sqrt((D-i)/(D-i+1))") isomLRinvp(x)
x |
object of class data.frame or matrix. Positive values only. |
pivotvar |
pivotal variable. If any other number than 1, the data are resorted in that sense that the pivotvar is shifted to the first part. |
fast |
if TRUE, it is approx. 10 times faster but numerical problems in case of high-dimensional data may occur. Only available for method “pivot”. |
method |
pivot takes the method described in the description. Method "symm" uses symmetric pivot coordinates (parameters pivotvar and norm have then no effect) |
base |
a positive or complex number:
the base with respect to which logarithms are computed. Defaults to |
norm |
if FALSE then the normalizing constant is not used, if TRUE |
Pivot coordinates map D-part compositional data from the simplex into a (D-1)-dimensional real space isometrically. From our choice of pivot coordinates, all the relative information about one of parts (or about two parts) is aggregated in the first coordinate (or in the first two coordinates in case of symmetric pivot coordinates, respectively).
The data represented in pivot coordinates
Matthias Templ, Karel Hron, Peter Filzmoser
Egozcue J.J., Pawlowsky-Glahn, V., Mateu-Figueras, G., Barcel'o-Vidal, C. (2003) Isometric logratio transformations for compositional data analysis. Mathematical Geology, 35(3) 279-300.
Filzmoser, P., Hron, K., Templ, M. (2018) Applied Compositional Data Analysis. Springer, Cham.
require(MASS) Sigma <- matrix(c(5.05,4.95,4.95,5.05), ncol=2, byrow=TRUE) z <- pivotCoordInv(mvrnorm(100, mu=c(0,2), Sigma=Sigma)) data(expenditures) ## first variable as pivot variable pivotCoord(expenditures) ## third variable as pivot variable pivotCoord(expenditures, 3) x <- exp(mvrnorm(2000, mu=rep(1,10), diag(10))) system.time(pivotCoord(x)) system.time(pivotCoord(x, fast=TRUE)) ## without normalizing constant pivotCoord(expenditures, norm = "orthogonal") # or: pivotCoord(expenditures, norm = "1") ## other normalization pivotCoord(expenditures, norm = "-sqrt((D-i)/(D-i+1))") # symmetric balances (results in 2-dim symmetric pivot coordinates) pivotCoord(expenditures, method = "symm")
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.