balance {compositions} R Documentation

## Compute balances for a compositional dataset.

### Description

Compute balances in a compositional dataset.

### Usage

balance(X,...)
## S3 method for class 'acomp'
balance(X,expr,...)
## S3 method for class 'rcomp'
balance(X,expr,...)
## S3 method for class 'aplus'
balance(X,expr,...)
## S3 method for class 'rplus'
balance(X,expr,...)
balance01(X,...)
## S3 method for class 'acomp'
balance01(X,expr,...)
## S3 method for class 'rcomp'
balance01(X,expr,...)
balanceBase(X,...)
## S3 method for class 'acomp'
balanceBase(X,expr,...)
## S3 method for class 'rcomp'
balanceBase(X,expr,...)
## S3 method for class 'acomp'
balanceBase(X,expr,...)
## S3 method for class 'rcomp'
balanceBase(X,expr,...)



### Arguments

 X compositional dataset (or optionally just its column names for balanceBase) expr a ~ formula using the column names of X as variables and seperating them by / and organize by paranthesis (). : and * can be used instead of / when the corresponding balance should not be created. - can be used as an synonym to / in the real geometries. 1 can be used in the unclosed geometries to level against a constant. ... for future perposes

### Details

For acomp-compositions balances are defined as orthogonal projections representing the log ratio of the geometric means of subsets of elements. Based on a recursive subdivision (provided by the expr=) this projections provide a (complete or incomplete) basis of the clr-plane. The basis is given by the balanceBase functions. The transform is given by the balance functions. The balance01 functions are a backtransform of the balances to the amount of the first portion if this was the only balance in a 2 element composition, providing an "interpretation" for the values of the balances.

The package tries to give similar concepts for the other scales. For rcomp objects the concept is mainly unchanges but augmented by a virtual component 1, which always has portion 1.

For rcomp objects, we choose not a "orthogonal" transformation since such a concept anyway does not really exist in the given space, but merily use the difference of one subset to the other. The balance01 is than not really a transform of the balance but simply the portion of the first group of parts in all contrasted parts.

For rplus objects we just used an analog to generalisation from the rcomp defintion as aplus is generalized from acomp. However at this time we have no idea wether this has any usefull interpretation.

### Value

 balance a matrix (or vector) with the corresponding balances of the dataset. balance01 a matrix (or vector) with the corresponding balances in the dataset transformed in the given geometry to a value between 0 and 1. balanceBase a matrix (or vector) with column vectors giving the transform in the cdt-transform used to achiev the correponding balances.

### References

https://ima.udg.edu/Activitats/CoDaWork08/ Papers of Boogaart and Tolosana https://ima.udg.edu/Activitats/CoDaWork05/ Paper of Egozcue

clr,ilr,ipt, ilrBase

### Examples

X <- rnorm(100)
Y <- rnorm.acomp(100,acomp(c(A=1,B=1,C=1)),0.1*diag(3))+acomp(t(outer(c(0.2,0.3,0.4),X,"^")))
colnames(Y) <- c("A","B","C")

subComps <- function(X,...,all=list(...)) {
X <- oneOrDataset(X)
nams <- sapply(all,function(x) paste(x[[2]],x[[3]],sep=","))
val  <- sapply(all,function(x){
a = X[,match(as.character(x[[2]]),colnames(X)) ]
b = X[,match(as.character(x[[2]]),colnames(X)) ]
c = X[,match(as.character(x[[3]]),colnames(X)) ]
return(a/(b+c))
})
colnames(val)<-nams
val
}
pairs(cbind(ilr(Y),X),panel=function(x,y,...) {points(x,y,...);abline(lm(y~x))})
pairs(cbind(balance(Y,~A/B/C),X),panel=function(x,y,...) {points(x,y,...);abline(lm(y~x))})

pairwisePlot(balance(Y,~A/B/C),X)
pairwisePlot(X,balance(Y,~A/B/C),panel=function(x,y,...) {plot(x,y,...);abline(lm(y~x))})
pairwisePlot(X,balance01(Y,~A/B/C))
pairwisePlot(X,subComps(Y,A~B,A~C,B~C))

balance(rcomp(Y),~A/B/C)
balance(aplus(Y),~A/B/C)
balance(rplus(Y),~A/B/C)



[Package compositions version 2.0-8 Index]