pb_basis {coda.base} R Documentation

## Isometric log-ratio basis based on Principal Balances.

### Description

Exact method to calculate the principal balances of a compositional dataset. Different methods to approximate the principal balances of a compositional dataset are also included.

### Usage

```pb_basis(
X,
method,
constrained.complete_up = FALSE,
cluster.method = "ward.D2",
ordering = TRUE,
...
)
```

### Arguments

 `X` compositional dataset `method` method to be used with Principal Balances. Methods available are: 'exact', 'constrained' or 'cluster'. `constrained.complete_up` When searching up, should the algorithm try to find possible siblings for the current balance (TRUE) or build a parent directly forcing current balance to be part of the next balance (default: FALSE). While the first is more exhaustive and given better results the second is faster and can be used with highe dimensional datasets. `cluster.method` Method to be used with the hclust function (default: 'ward.D2') or any other method available in hclust function `ordering` should the principal balances found be returned ordered? (first column, first principal balance and so on) `...` parameters passed to hclust function

matrix

### References

Martín-Fernández, J.A., Pawlowsky-Glahn, V., Egozcue, J.J., Tolosana-Delgado R. (2018). Advances in Principal Balances for Compositional Data. Mathematical Geosciencies, 50, 273-298.

### Examples

```set.seed(1)
X = matrix(exp(rnorm(5*100)), nrow=100, ncol=5)

# Optimal variance obtained with Principal components
(v1 <- apply(coordinates(X, 'pc'), 2, var))
# Optimal variance obtained with Principal balances
(v2 <- apply(coordinates(X,pb_basis(X, method='exact')), 2, var))
# Solution obtained using constrained method
(v3 <- apply(coordinates(X,pb_basis(X, method='constrained')), 2, var))
# Solution obtained using Ward method
(v4 <- apply(coordinates(X,pb_basis(X, method='cluster')), 2, var))

# Plotting the variances
barplot(rbind(v1,v2,v3,v4), beside = TRUE, ylim = c(0,2),
legend = c('Principal Components','PB (Exact method)',
'PB (Constrained)','PB (Ward approximation)'),
names = paste0('Comp.', 1:4), args.legend = list(cex = 0.8), ylab = 'Variance')

```

[Package coda.base version 0.3.1 Index]