set.seed(1)
options(htmltools.dir.version = FALSE)
knitr::opts_chunk$set(echo = TRUE, comment = "#>  ", fig.retina = 4)

class: inverse, center, middle

Getting Started


class: middle

A composition

library(coda.base)
X = as.data.frame(exp(matrix(rnorm(5*6), ncol = 5)))
X

class: inverse, center, middle

Clasical coordinates


ALR

coordinates(X, basis = 'alr')

CLR

coordinates(X, basis = 'clr')

ILR (default)

coordinates(X, basis = 'ilr')
all.equal(coordinates(X, basis = 'ilr'),
          coordinates(X))

class: inverse, center, middle

Performance

library(ggplot2)
theme_set(theme_minimal())
library(microbenchmark)
load('bench.RData')

ALR performance

autoplot(alr_bench) + labs(title = 'ALR coordinates performance')

CLR performance

autoplot(clr_bench) + labs(title = 'CLR coordinates performance')

ILR performance

autoplot(ilr_bench) + labs(title = 'ILR coordinates performance')

Matrix based tranformation performance

autoplot(matrix_bench) + labs(title = 'Coordinates performance')

class: inverse, center, middle

Coordinates using basis matrix


ALR matrix (1)

B.alr = alr_basis(5)
B.alr
coordinates(X, B.alr)

ALR matrix (2)

B.alr = alr_basis(5, denominator = 3, numerator = c(2,1,5,4))
B.alr
coordinates(X, B.alr)

ILR matrix

ilr_basis(5, type = 'default')

ILR matrix (pivot)

ilr_basis(5, type = 'pivot')

ILR matrix (CoDaPack)

ilr_basis(5, type = 'cdp')

class: inverse, center, middle

Balances


Sequential binary partition

bp = matrix(c(+1,+1,-1,-1, 0,
              +1,+1,+1,+1,-1,
              +1,-1, 0, 0, 0,
               0, 0,+1,-1, 0), ncol = 4)
sbp_basis(bp)

Sequential binary partition

sbp_basis(V1+V2~V3+V4,
          V1+V2+V3+V4~V5,
          V1~V2,
          V3~V4, data = X)

Sequential binary partition

sbp_basis(b1 = b3~b4,
          b2 = b1~V5,
          b3 = V1~V2,
          b4 = V3~V4, data = X)

class: inverse, center, middle

Other coordinates


Principal components

H.pc = coordinates(X, basis = 'pc')
attr(H.pc, 'basis')
apply(H.pc, 2, var)

Principal balances

H.pb = coordinates(X, basis = 'pb')
attr(H.pb, 'basis')
apply(H.pb, 2, var)

class: inverse, center, middle

Obtaining coda.base


Installation

From CRAN

install.packages()

From Github

# install.packages('remotes')
remotes::install_github('mcomas/coda.base')


mcomas/coda.base documentation built on Dec. 3, 2023, 5:08 a.m.