Package 'BiGaRx'

Title: Unified Classical and Canonical Biplots
Description: Classical and canonical biplots computed from a single singular value decomposition (SVD) engine. Includes the two biplots of Gabriel (1971) <doi:10.1093/biomet/58.3.453>: the GH-biplot, named after its row markers G and column markers H, which preserves the column metric (covariances and correlations between variables), and the JK-biplot, named after its row markers J and column markers K, which preserves the row metric (distances between individuals). Also includes the HJ-biplot of Galindo (1986) <https://upcommons.upc.edu/entities/publication/e17797dd-e20b-4fe5-b34a-f4cde41695ed>, which combines the row markers J and the column markers H so that rows and columns are both represented with maximum quality. Options include configurable preprocessing, supplementary rows and columns, quality of representation, contributions, goodness of fit, bootstrap confidence intervals following Nieto, Galindo, Leiva and Vicente-Galindo (2014) <doi:10.15446/rce.v37n2spe.47944>, and imputation of missing values by iterative low-rank approximation following Gabriel and Zamir (1979) <doi:10.1080/00401706.1979.10489819>. The canonical biplot, also known as the multivariate analysis of variance (MANOVA) biplot, follows Amaro, Vicente-Villardon and Galindo (2004) <https://www.redalyc.org/pdf/339/33908807.pdf>. It is available for one-way designs and for two-way designs with total, row, column and interaction biplots. It comes with multivariate tests, pairwise comparisons with Hotelling's T-squared statistic, log-ratio transformations for compositional data and confidence regions for the group means. The regions are circles or the ellipses of Krzanowski (1989) <doi:10.1093/biomet/76.1.107>, computed consistently in the scale of the within-groups covariance matrix. Plots use base graphics or 'ggplot2'.
Authors: Kleber Garzón [aut, cre] (ORCID: <https://orcid.org/0009-0009-4378-3002>), Roxana Barrezueta [aut] (ORCID: <https://orcid.org/0009-0007-1591-1121>)
Maintainer: Kleber Garzón <[email protected]>
License: GPL (>= 3)
Version: 0.5.1
Built: 2026-10-29 22:05:27 UTC
Source: https://github.com/cran/BiGaRx

Help Index


Convierte un objeto prcomp en un biplot de BiGaRx

Description

Reutiliza la SVD ya calculada por stats::prcomp() para obtener cualquiera de los biplots de bigarx().

Usage

as_bigarx(x, ...)

## S3 method for class 'prcomp'
as_bigarx(
  x,
  method = c("hj", "gh", "jk", "sqrt"),
  alpha = NULL,
  ndim = 3,
  fix_signs = TRUE,
  ...
)

Arguments

x

Objeto de clase "prcomp" con retx = TRUE.

...

No se usa.

method, alpha, ndim, fix_signs

Como en bigarx().

Value

Objeto "bigarx". No incluye elementos suplementarios.

Examples

p <- prcomp(USArrests, scale. = TRUE)
as_bigarx(p, method = "hj")

Gráfico de un biplot con 'ggplot2'

Description

Devuelve un objeto ggplot que se puede modificar con capas, temas y escalas de 'ggplot2' como cualquier otro gráfico.

Usage

## S3 method for class 'bigarx'
autoplot(
  object,
  axes = c(1, 2),
  col_scale = "auto",
  min_quality = 0,
  labels = TRUE,
  row_col = "#0B7A72",
  arrow_col = "#C2410C",
  ...
)

Arguments

object

Objeto "bigarx".

axes

Ejes a representar.

col_scale

"auto" (por defecto) reescala las flechas en GH, JK y alfa para que se vean junto a los puntos; "none" las deja como están; un número las multiplica por ese valor. En el HJ-Biplot "auto" no reescala, porque filas y columnas comparten sistema de referencia.

min_quality

Calidad mínima (en %) en el plano para mostrar los elementos. Un número se aplica a filas y columnas; un vector de dos, c(filas, columnas), fija un umbral para cada una. Por ejemplo, c(60, 0) filtra solo las filas. Por defecto 0 (todo). En el JK-Biplot las columnas tienen baja calidad por construcción (Galindo, 1986), así que un umbral común puede ocultar variables.

labels

Si es TRUE, rotula filas y columnas.

row_col, arrow_col

Colores de los puntos y de las flechas. Si hay groups, los puntos se colorean por grupo.

...

No se usa.

Value

Un objeto ggplot.

Examples

if (requireNamespace("ggplot2", quietly = TRUE)) {
  fit <- bigarx(USArrests)
  ggplot2::autoplot(fit) + ggplot2::theme_minimal()
}

Biplots clásicos GH, JK y HJ con un motor único

Description

Calcula un biplot a partir de la descomposición en valores singulares (SVD) de la matriz preprocesada Z=UΣVTZ = U \Sigma V^T. Los métodos se diferencian solo en cómo se reparten los valores singulares entre filas y columnas:

Usage

bigarx(
  X,
  method = c("hj", "gh", "jk", "sqrt"),
  alpha = NULL,
  transform = c("standardize", "center", "double", "grand", "none"),
  ndim = 3,
  pca_scaling = FALSE,
  sup_rows = NULL,
  sup_cols = NULL,
  groups = NULL,
  fix_signs = TRUE,
  na_action = c("fail", "impute"),
  impute_rank = 2
)

Arguments

X

Matriz o data.frame numérico (individuos en filas, variables en columnas).

method

"hj" (por defecto), "gh", "jk" o "sqrt". Se ignora si se da alpha.

alpha

Número entre 0 y 1 para la familia general de Gabriel. NULL usa method.

transform

Preprocesamiento: "standardize" (por defecto), "center", "double", "grand" o "none". Ver transformaciones.

ndim

Número de ejes que se guardan en las coordenadas (por defecto 3, o el rango si es menor). Las medidas de calidad siempre usan todos los ejes.

pca_scaling

Si es TRUE, multiplica las filas por n−1\sqrt{n-1} y divide las columnas por n−1\sqrt{n-1} (Gabriel, 1971, ecuación 52). Con method = "gh" y transform = "center" la longitud de cada flecha aproxima la desviación típica de la variable y el producto escalar de dos flechas, su covarianza.

sup_rows

Matriz opcional de filas suplementarias (mismas columnas que X). Se proyectan sin intervenir en el cálculo de los ejes.

sup_cols

Matriz opcional de columnas suplementarias (mismas filas que X).

groups

Factor opcional de longitud nrow(X), solo para colorear o agrupar en los gráficos. No interviene en el cálculo.

fix_signs

Si es TRUE (por defecto), orienta cada eje para que la carga de mayor valor absoluto en V sea positiva. Hace los resultados reproducibles entre plataformas.

na_action

Qué hacer con los NA: "fail" (por defecto) detiene el análisis; "impute" los rellena con impute_svd() antes de calcular el biplot. Los valores imputados quedan en ⁠$imputation⁠.

impute_rank

Rango de la SVD usada para imputar (por defecto 2).

Details

Método Filas Columnas Calidad máxima para Referencia
"jk" UΣU\Sigma VV filas Gabriel (1971)
"gh" UU VΣV\Sigma columnas Gabriel (1971)
"sqrt" UΣ1/2U\Sigma^{1/2} VΣ1/2V\Sigma^{1/2} ninguna Gabriel (1971)
"hj" UΣU\Sigma VΣV\Sigma filas y columnas Galindo (1986)

Con alpha numérico se obtiene la familia general G=UΣαG = U\Sigma^{\alpha}, H=VΣ1−αH = V\Sigma^{1-\alpha}; alpha = 1 es el JK, alpha = 0 el GH y alpha = 0.5 el SQRT. El HJ-Biplot no pertenece a esa familia: asigna Σ\Sigma a ambos lados, por lo que el producto de marcadores no reproduce los datos, pero filas y columnas logran a la vez la máxima calidad de representación (Galindo, 1986).

Bondad de ajuste. Siguiendo a Gabriel (1971, ecuaciones 35, 66 y 67) y Galindo (1986, tabla 1), para un plano de dimensión 2:

  • matriz: (σ12+σ22)/∑σk2(\sigma_1^2+\sigma_2^2)/\sum\sigma_k^2;

  • filas con G=UΣαG = U\Sigma^{\alpha}: ∑k≤2σk4α/∑kσk4α\sum_{k\le 2}\sigma_k^{4\alpha}/\sum_k\sigma_k^{4\alpha};

  • columnas con H=VΣ1−αH = V\Sigma^{1-\alpha}: ∑k≤2σk4(1−α)/∑kσk4(1−α)\sum_{k\le 2}\sigma_k^{4(1-\alpha)}/\sum_k\sigma_k^{4(1-\alpha)}.

Así, en el GH las columnas tienen ∑σ4\sum\sigma^4 y las filas solo 2/r2/r; en el JK es al revés; y en el HJ ambas tienen la medida en σ4\sigma^4, que es la propiedad que lo define.

Value

Un objeto de clase "bigarx": lista con

rows, cols

Coordenadas de filas y columnas en los primeros ndim ejes.

sup_rows, sup_cols

Coordenadas de los elementos suplementarios, si se dieron.

d

Todos los valores singulares no nulos.

eigen

Valores propios σk2\sigma_k^2.

inertia

Tabla con valor propio, porcentaje de inercia y porcentaje acumulado por eje.

quality_rows, quality_cols

Calidad de representación (en %) de cada elemento en cada eje: 100 fik2/∑hfih2100\, f_{ik}^2 / \sum_h f_{ih}^2. Suman 100 sobre todos los ejes y se acumulan sumando columnas.

contrib_rows, contrib_cols

Contribución (en %) de cada elemento a la construcción de cada eje: 100 fik2/∑ifik2100\, f_{ik}^2 / \sum_i f_{ik}^2.

gof

Bondad de ajuste en el plano 1-2 para la matriz, las filas y las columnas (ver Detalles).

method, alpha, preprocessing, groups, call

Información del ajuste.

References

Gabriel, K. R. (1971). The biplot graphic display of matrices with application to principal component analysis. Biometrika, 58(3), 453-467.

Galindo, M. P. (1986). Una alternativa de representación simultánea: HJ-Biplot. Qüestiió, 10(1), 13-23.

Examples

fit <- bigarx(USArrests, method = "hj")
fit
summary(fit)
plot(fit)

# La familia general de Gabriel
bigarx(USArrests, alpha = 0.5)

# Filas suplementarias
bigarx(USArrests[-(1:5), ], sup_rows = USArrests[1:5, ])

Biplot con bootstrap: intervalos de confianza

Description

Calcula intervalos de confianza bootstrap para los parámetros de un biplot, siguiendo la metodología de Nieto, Galindo, Leiva y Vicente-Galindo (2014), implementada originalmente en biplotbootGUI.

Usage

bigarx_boot(
  X,
  B = 1000,
  method = c("hj", "gh", "jk", "sqrt"),
  transform = c("standardize", "center", "double", "grand", "none"),
  alpha = NULL,
  axes = c(1, 2),
  conf = 0.95,
  ci = c("percentile", "normal"),
  seed = NULL,
  groups = NULL,
  progress = interactive()
)

Arguments

X

Matriz o data.frame numérico.

B

Número de réplicas bootstrap (por defecto 1000).

method, transform, alpha

Como en bigarx().

axes

Plano en el que se calculan coordenadas, calidades y ángulos.

conf

Nivel de confianza (por defecto 0,95).

ci

"percentile" (por defecto) o "normal".

seed

Semilla opcional para reproducir los resultados.

groups

Factor opcional para colorear el biplot.

progress

Mostrar una barra de progreso.

Details

Algoritmo. Se extraen B muestras de individuos (filas) con reemplazo. En cada una se repite el preprocesamiento (por ejemplo, se vuelve a estandarizar) y el biplot, y se guardan los parámetros:

  • inercia: porcentaje de inercia de cada eje;

  • bondad: bondad de ajuste de la matriz en el plano;

  • coordenada: coordenadas de cada variable en cada eje del plano;

  • calidad: calidad de representación de cada variable en el plano;

  • contribucion: contribución de cada variable a cada eje;

  • angulo_variables: ángulo entre cada par de variables (en grados);

  • angulo_eje: ángulo entre cada variable y cada eje (en grados).

Alineación de ejes. La SVD de cada réplica puede devolver un eje con el signo invertido, lo que inflaría artificialmente los intervalos de las coordenadas y de los ángulos con los ejes. Por eso, en cada réplica se invierte el signo del eje si sus cargas apuntan en sentido contrario a las del análisis original. Los ángulos entre variables no dependen del signo. Si dos valores propios son muy parecidos, los ejes pueden intercambiarse entre réplicas; conviene revisar inercia antes de interpretar.

Intervalos (ci):

  • "percentile" (boot-q): cuantiles α/2\alpha/2 y 1−α/21-\alpha/2 de las réplicas (Algoritmo 3 del artículo);

  • "normal" (boot-t): estimación ±z1−α/2\pm z_{1-\alpha/2} por el error estándar bootstrap, con tn−1t_{n-1} si n<25n < 25 (Algoritmo 2).

Value

Un objeto "bigarx_boot" con

fit

El biplot original (bigarx()).

table

data.frame con una fila por parámetro: tipo, elemento, eje, estimación, media y error estándar bootstrap, sesgo, límites del intervalo y método.

replicates

Matriz de réplicas (una fila por réplica, una columna por parámetro).

B, conf, ci, axes

Configuración.

References

Nieto, A. B., Galindo, M. P., Leiva, V. y Vicente-Galindo, P. (2014). A methodology for biplots based on bootstrapping with R. Revista Colombiana de Estadística, 37(2), 367-397. doi:10.15446/rce.v37n2spe.47944

Efron, B. y Tibshirani, R. J. (1993). An Introduction to the Bootstrap. Chapman & Hall.

Examples

bt <- bigarx_boot(USArrests, B = 200, seed = 1)
bt
summary(bt, type = "angulo_variables")
plot(bt)
plot(bt, type = "angulo_variables")

Biplot canónico (MANOVA biplot) de una vía

Description

Representa las diferencias entre grupos definidos de antemano y las variables responsables de esas diferencias, con regiones de confianza para las medias de cada grupo (Gabriel, 1972, 1995; Vicente-Villardón, 1992; Amaro, Vicente-Villardón y Galindo, 2004).

Usage

bigarx_canonical(
  X,
  groups,
  transform = c("center", "standardize"),
  conf = 0.95,
  region = c("chi2", "t", "bonferroni", "ellipse", "ellipse_amaro", "boot"),
  ndim = 3,
  fix_signs = TRUE,
  na_action = c("fail", "impute"),
  impute_rank = 2,
  singular = c("stop", "ginv"),
  theta_est = c("uno_mas", "ms")
)

Arguments

X

Matriz o data.frame numérico (individuos en filas).

groups

Factor con el grupo de cada fila. Se necesitan al menos tres grupos para obtener un plano.

transform

"center" (por defecto) o "standardize". El análisis canónico no cambia con la escala de las variables; la estandarización solo cambia la longitud de las flechas.

conf

Nivel de confianza de las regiones (por defecto 0,95).

region

"chi2" (por defecto), "t", "bonferroni", "ellipse" (elipses de Krzanowski coherentes en la escala de W) o "ellipse_amaro" (version publicada por Amaro et al., 2008, que mezcla escalas; solo para reproducir sus tablas). "boot" dibuja circulos chi2 (las elipses bootstrap se calculan aparte).

ndim

Ejes que se guardan (por defecto 3, o menos si no hay más).

fix_signs

Orienta cada eje para que la carga mayor sea positiva.

na_action, impute_rank

Como en bigarx(). La imputación no usa los grupos.

singular

"stop" (por defecto) detiene el analisis si la matriz de covarianzas dentro de los grupos es singular; "ginv" usa la inversa generalizada (por ejemplo, con datos composicionales transformados con clr).

theta_est

Estimador de theta en las elipses de Krzanowski: "uno_mas" (1 + lambda/(K-1), por defecto) o "ms" (lambda/(K-1)); lambda = autovalores de SCH W^-1.

Details

Cálculo. Con MM la matriz K×pK \times p de medias de grupo (datos centrados), N=diag(nk)N = \mathrm{diag}(n_k) y W=E/(n−K)W = E/(n-K) la matriz de covarianzas combinada dentro de los grupos, se calcula la descomposición en valores singulares generalizada

N1/2MW−1/2=UDVTN^{1/2} M W^{-1/2} = U D V^T

(en la notación de Amaro et al., R−1/2D^E−1/2R^{-1/2}\hat{D}E^{-1/2} con R=N−1R = N^{-1}). Los marcadores son:

  • medias de grupo: P=MW−1/2V=N−1/2UDP = M W^{-1/2} V = N^{-1/2} U D;

  • variables: Q=W1/2VQ = W^{1/2} V;

  • individuos: (X−xˉ)W−1/2V(X - \bar{x}) W^{-1/2} V.

Se cumple PQT=MP Q^T = M: el producto escalar de una media y una variable reproduce la media del grupo en esa variable. Los valores propios de HE−1HE^{-1} del MANOVA son θk=dk2/(n−K)\theta_k = d_k^2/(n-K).

Escala. Se usa la covarianza combinada WW (y no la matriz de sumas de cuadrados EE) para que, en el espacio canónico, la varianza dentro de los grupos sea 1 en cada eje. Así los radios de confianza se expresan directamente en las unidades del gráfico.

Regiones de confianza (region), centradas en la media de cada grupo:

  • "chi2": radio χ2,1−α2/nk\sqrt{\chi^2_{2,1-\alpha}/n_k}; región conjunta en el plano (Amaro et al., 2008).

  • "t": radio tn−K,1−α/2/nkt_{n-K,1-\alpha/2}/\sqrt{n_k}; su proyección sobre una variable aproxima un intervalo univariante (Amaro et al., 2004).

  • "bonferroni": como "t", con α\alpha dividido entre las K(K−1)/2K(K-1)/2 comparaciones por pares.

  • "ellipse": elipses de Amaro, Vicente-Villardón y Galindo (2008), que además de la variabilidad de las medias incorporan la de los propios ejes canónicos, con las varianzas y covarianzas asintóticas de Krzanowski (1989) (ecuaciones 3 y 4 del artículo). Cada elipse cumple (z−pi)TΣi−1(z−pi)=χ2,1−α2(z - p_i)^T \Sigma_i^{-1} (z - p_i) = \chi^2_{2,1-\alpha}. Ver canonical_regions() para sus ejes, ángulo y área.

Si las regiones de dos grupos no se tocan, los grupos difieren significativamente. La prueba es conservadora: si se tocan, la diferencia puede estar en otro eje, y conviene una prueba T2T^2 de Hotelling.

Value

Un objeto de clase c("bigarx_canonical", "bigarx") con

rows

Coordenadas de las medias de grupo.

cols

Marcadores de las variables.

individuals

Coordenadas de cada individuo.

radius

Radio de la región de confianza de cada grupo.

manova

Lambda de Wilks, aproximación chi-cuadrado de Bartlett, grados de libertad y valor p.

canonical

Valores propios de HE−1HE^{-1} y correlaciones canónicas.

inertia, gof

Inercia por eje y bondad de ajuste de las medias en el plano 1-2.

quality_rows

Calidad de representación de cada media (en %).

quality_cols

Calidad de cada variable (en %): correlación al cuadrado, dentro de los grupos, entre la variable y el eje canónico.

structure

Esas mismas correlaciones con signo.

References

Amaro, I. R., Vicente-Villardón, J. L. y Galindo, M. P. (2004). MANOVA Biplot para arreglos de tratamientos con dos factores basado en modelos lineales generales multivariantes. Interciencia, 29(1), 26-32.

Amaro, I. R., Vicente-Villardón, J. L. y Galindo, M. P. (2008). Contribuciones al MANOVA-Biplot: regiones de confianza alternativas. Revista Investigación Operacional, 29(3), 231-241.

Gabriel, K. R. (1972). Analysis of meteorological data by means of canonical decomposition and biplots. Journal of Applied Meteorology, 11, 1071-1077.

Examples

cb <- bigarx_canonical(iris[, 1:4], iris$Species)
cb
summary(cb)
plot(cb)

MANOVA biplot de dos factores

Description

Biplots total, de filas, de columnas y de interaccion para un arreglo de tratamientos con dos factores (Amaro, Vicente-Villardon y Galindo, 2004). El error se estima con el modelo completo con interaccion. Si un efecto tiene un solo grado de libertad, sus medias se proyectan sobre el biplot total.

Usage

bigarx_manova2(
  X,
  A,
  B,
  efecto = c("total", "filas", "columnas", "interaccion"),
  transform = c("center", "standardize"),
  conf = 0.95,
  region = c("chi2", "t", "bonferroni", "ellipse", "ellipse_amaro", "boot"),
  ndim = 3,
  fix_signs = TRUE,
  na_action = c("fail", "impute"),
  impute_rank = 2,
  singular = c("stop", "ginv"),
  nombre_A = "A",
  nombre_B = "B",
  theta_est = c("uno_mas", "ms")
)

manova2_tests(sc, p_eff, nombre_A = "A", nombre_B = "B")

anova2_univariada(Z, A, B, nombre_A = "A", nombre_B = "B")

Arguments

X

Matriz o data.frame numerico.

A, B

Factores (filas y columnas del diseno).

efecto

"total", "filas", "columnas" o "interaccion".

transform, conf, region, ndim, fix_signs, na_action, impute_rank, singular, theta_est

Como en bigarx_canonical().

nombre_A, nombre_B

Nombres de los factores para las tablas.

sc

Lista de matrices SCPC (uso interno).

p_eff

Rango efectivo de W.

Z

Datos preprocesados.

Value

Un objeto "bigarx_canonical" con el elemento adicional diseno (contrastes MANOVA por efecto y ANOVA univariantes).

References

Amaro, I. R., Vicente-Villardon, J. L. y Galindo, M. P. (2004). MANOVA Biplot para arreglos de tratamientos con dos factores basado en modelos lineales generales multivariantes. Interciencia, 29(1), 26-32.

Examples

# Diseno simulado: 3 x 3 niveles, 4 replicas por celda y 3 variables
set.seed(1)
d <- expand.grid(A = c("a1", "a2", "a3"), B = c("b1", "b2", "b3"), rep = 1:4)
X <- matrix(rnorm(nrow(d) * 3), ncol = 3, dimnames = list(NULL, c("y1", "y2", "y3")))
X[, 1] <- X[, 1] + as.integer(d$A)
X[, 2] <- X[, 2] + as.integer(d$B)
fit <- bigarx_manova2(X, d$A, d$B, efecto = "columnas")
fit$diseno$pruebas[fit$diseno$pruebas$contraste == "Wilks", ]
plot(fit)

Datos ordenados de un biplot

Description

Devuelve las coordenadas, calidades y contribuciones en formato largo (una fila por elemento), listo para 'ggplot2' u otros paquetes.

Usage

## S3 method for class 'bigarx_canonical'
bigarx_tidy(
  x,
  matrix = c("both", "rows", "cols", "eigen"),
  axes = c(1, 2),
  ...
)

bigarx_tidy(x, ...)

## Default S3 method:
bigarx_tidy(
  x,
  matrix = c("both", "rows", "cols", "eigen"),
  axes = c(1, 2),
  ...
)

## S3 method for class 'bigarx'
tidy(x, matrix = c("both", "rows", "cols", "eigen"), axes = c(1, 2), ...)

Arguments

x

Objeto "bigarx".

matrix

"rows", "cols", "both" (por defecto) o "eigen".

axes

Ejes para la columna calidad.

...

No se usa.

Value

Un data.frame.

Examples

fit <- bigarx(USArrests)
head(bigarx_tidy(fit))

Regiones de confianza del biplot canónico

Description

Devuelve, para cada media de grupo, la región de confianza en el plano elegido: centro, varianzas y covarianza, semiejes, ángulo de inclinación y área. angulo es la inclinación de los ejes de la elipse respecto de los ejes del gráfico (entre -45 y 45 grados), como en la tabla 7 de Amaro et al. (2008); direccion_eje_mayor es el ángulo del eje mayor medido desde el eje horizontal. Con region = "ellipse" reproduce las tablas 4 a 7 de Amaro, Vicente-Villardón y Galindo (2008); con las regiones circulares, los dos semiejes son iguales al radio.

Usage

canonical_regions(x, axes = c(1, 2))

Arguments

x

Objeto de bigarx_canonical().

axes

Plano (por defecto c(1, 2)).

Value

Un data.frame con una fila por grupo.

References

Amaro, I. R., Vicente-Villardón, J. L. y Galindo, M. P. (2008). Contribuciones al MANOVA-Biplot: regiones de confianza alternativas. Revista Investigación Operacional, 29(3), 231-241.

Krzanowski, W. J. (1989). On confidence regions in canonical variate analysis. Biometrika, 76(1), 107-116.

Examples

cb <- bigarx_canonical(iris[, 1:4], iris$Species, region = "ellipse")
canonical_regions(cb)

Datos composicionales

Description

es_composicional() detecta filas que suman una constante; transformar_composicional() aplica la transformacion log-cociente centrada (clr) o aditiva (alr), con reemplazo multiplicativo de ceros.

Usage

es_composicional(X, tol = 0.001)

transformar_composicional(
  X,
  metodo = c("ninguna", "clr", "alr"),
  referencia = NULL
)

Arguments

X

Matriz o data.frame de proporciones.

tol

Tolerancia relativa.

metodo

"ninguna", "clr" o "alr".

referencia

Variable del denominador en la alr.

Value

es_composicional() devuelve TRUE si todas las filas suman la misma constante (dentro de tol); transformar_composicional() devuelve un data.frame con las variables transformadas (en la alr, sin la de referencia).

References

Aitchison, J. (1986). The Statistical Analysis of Compositional Data. Chapman and Hall.

Examples

set.seed(1)
P <- matrix(rgamma(60, 2), ncol = 4)
P <- P / rowSums(P)
es_composicional(P)
head(transformar_composicional(P, "clr"))
head(transformar_composicional(P, "alr"))

Comparaciones por pares con la T2 de Hotelling

Description

Compara cada par de medias con la matriz de covarianzas combinada del modelo.

Usage

hotelling_pares(x, ajuste = c("bonferroni", "holm", "none"))

Arguments

x

Objeto de bigarx_canonical() o bigarx_manova2().

ajuste

Ajuste de los valores p: "bonferroni", "holm" o "none".

Value

Un data.frame con D2 de Mahalanobis, T2, F, grados de libertad y valores p.

Examples

cb <- bigarx_canonical(iris[, 1:4], iris$Species)
hotelling_pares(cb, ajuste = "holm")

Imputa datos faltantes con una SVD de rango reducido

Description

Rellena las celdas NA con la aproximación de rango bajo de la matriz, iterando hasta que los valores imputados se estabilizan. Es el ajuste por mínimos cuadrados alternados descrito por Gabriel y Zamir (1979) y revisado por Galindo (1986, sección 3.1).

Usage

impute_svd(
  X,
  rank = 2,
  transform = c("standardize", "center", "double", "grand", "none"),
  maxit = 500,
  tol = 1e-06
)

Arguments

X

Matriz o data.frame numérico con NA.

rank

Rango de la aproximación (por defecto 2, el plano del biplot). Debe ser menor que el número de filas y de columnas.

transform

Transformación usada en cada iteración, como en bigarx(). Conviene usar la misma del análisis posterior.

maxit

Número máximo de iteraciones.

tol

Tolerancia para el cambio relativo de los valores imputados.

Details

Algoritmo:

  1. Se rellenan los NA con la media de su columna.

  2. Se aplica la transformación elegida (por ejemplo, estandarizar).

  3. Se calcula la SVD y la aproximación de rango rank.

  4. Se vuelve a la escala original y se reemplazan solo las celdas faltantes por los valores aproximados.

  5. Se repiten los pasos 2 a 4 hasta que el cambio relativo de los valores imputados sea menor que tol.

Los valores observados nunca se modifican.

Value

Un objeto de clase "bigarx_imputation": lista con

X

La matriz completa.

missing

Matriz de posiciones (fila, columna) imputadas.

values

data.frame con fila, columna y valor imputado.

iterations, converged, rank, transform

Detalles del ajuste.

References

Gabriel, K. R. y Zamir, S. (1979). Lower rank approximation of matrices by least squares with any choice of weights. Technometrics, 21(4), 489-498.

Galindo, M. P. (1986). Una alternativa de representación simultánea: HJ-Biplot. Qüestiió, 10(1), 13-23.

Examples

X <- as.matrix(USArrests)
X[c(3, 10, 25), 2] <- NA
imp <- impute_svd(X, rank = 2)
imp
imp$values

Invertir el signo de ejes canonicos

Description

Cambia la orientacion de los ejes indicados (medias, variables, individuos y correlaciones). No cambia ninguna conclusion; sirve para que el grafico se vea como el de un articulo o programa que eligio el signo contrario.

Usage

invertir_ejes(x, ejes)

Arguments

x

Objeto de bigarx_canonical() o bigarx_manova2().

ejes

Vector con los ejes a invertir.

Value

El objeto con los ejes invertidos.

Examples

cb <- bigarx_canonical(iris[, 1:4], iris$Species)
ci <- invertir_ejes(cb, 2)
cbind(original = cb$rows[, 2], invertido = ci$rows[, 2])

Gráfico de un biplot con gráficos base

Description

Gráfico de un biplot con gráficos base

Usage

## S3 method for class 'bigarx'
plot(
  x,
  axes = c(1, 2),
  col_scale = "auto",
  min_quality = 0,
  labels = TRUE,
  row_col = "#0B7A72",
  arrow_col = "#C2410C",
  main = .method_label(x),
  xlab = NULL,
  ylab = NULL,
  ...
)

Arguments

x

Objeto "bigarx".

axes

Ejes a representar.

col_scale

"auto" (por defecto) reescala las flechas en GH, JK y alfa para que se vean junto a los puntos; "none" las deja como están; un número las multiplica por ese valor. En el HJ-Biplot "auto" no reescala, porque filas y columnas comparten sistema de referencia.

min_quality

Calidad mínima (en %) en el plano para mostrar los elementos. Un número se aplica a filas y columnas; un vector de dos, c(filas, columnas), fija un umbral para cada una. Por ejemplo, c(60, 0) filtra solo las filas. Por defecto 0 (todo). En el JK-Biplot las columnas tienen baja calidad por construcción (Galindo, 1986), así que un umbral común puede ocultar variables.

labels

Si es TRUE, rotula filas y columnas.

row_col, arrow_col

Colores de los puntos y de las flechas. Si hay groups, los puntos se colorean por grupo.

main, xlab, ylab

Título y nombres de los ejes. Por defecto, el nombre del método y el porcentaje de inercia de cada eje.

...

Argumentos adicionales para graphics::plot(), como cex, cex.main o las.

Value

x, de forma invisible.

Examples

fit <- bigarx(USArrests, method = "hj")
plot(fit, min_quality = 50)

Gráficos de un biplot con bootstrap

Description

type = "biplot" dibuja el biplot original con la nube de réplicas de la punta de cada flecha y la elipse que contiene el conf de ellas. Los demás tipos dibujan los intervalos de confianza como segmentos.

Usage

## S3 method for class 'bigarx_boot'
plot(x, type = c("biplot", .boot_types), cloud = TRUE, ...)

## S3 method for class 'bigarx_boot'
autoplot(object, type = c("biplot", .boot_types), cloud = TRUE, ...)

Arguments

x, object

Objeto "bigarx_boot".

type

"biplot" (por defecto), "inercia", "calidad", "contribucion", "angulo_variables", "angulo_eje" o "coordenada".

cloud

Dibujar las réplicas individuales en el biplot.

...

Argumentos adicionales para plot.bigarx() (en "biplot").

Value

x de forma invisible, o un objeto ggplot.

Examples

b <- bigarx_boot(USArrests, B = 200, method = "hj", seed = 1)
plot(b)

Gráfico del biplot canónico

Description

Muestra los individuos (opcional), las medias de grupo con su región de confianza y las variables como flechas.

Usage

## S3 method for class 'bigarx_canonical'
plot(
  x,
  axes = c(1, 2),
  individuals = TRUE,
  circles = TRUE,
  col_scale = "auto",
  min_quality = 0,
  labels = TRUE,
  arrow_col = "grey20",
  main = NULL,
  xlab = NULL,
  ylab = NULL,
  ...
)

## S3 method for class 'bigarx_canonical'
autoplot(
  object,
  axes = c(1, 2),
  individuals = TRUE,
  circles = TRUE,
  col_scale = "auto",
  min_quality = 0,
  labels = TRUE,
  arrow_col = "grey20",
  ...
)

Arguments

x, object

Objeto "bigarx_canonical".

axes

Ejes a representar.

individuals

Si es TRUE (por defecto), dibuja los individuos.

circles

Si es TRUE (por defecto), dibuja las regiones de confianza (círculos o elipses, según region en bigarx_canonical()).

col_scale

"auto" (por defecto) reescala las flechas para que ocupen el rango de los individuos; "none" o un número.

min_quality

Calidad mínima (en %) de las variables para dibujarlas.

labels

Rotular medias y variables.

arrow_col

Color de las flechas.

main, xlab, ylab

Título y nombres de los ejes. Por defecto, "Biplot canónico" y el porcentaje de inercia de cada eje.

...

Argumentos adicionales para graphics::plot().

Value

x de forma invisible (plot) o un objeto ggplot (autoplot).

Examples

cb <- bigarx_canonical(iris[, 1:4], iris$Species)
plot(cb)
if (requireNamespace("ggplot2", quietly = TRUE)) ggplot2::autoplot(cb)

Proyecta filas o columnas suplementarias

Description

Sitúa en el biplot nuevas filas (individuos) o columnas (variables) sin recalcular los ejes. Las filas se transforman con los parámetros de la matriz activa; las columnas, con sus propias medias y desviaciones.

Usage

## S3 method for class 'bigarx'
predict(object, newdata, type = c("rows", "cols"), ...)

## S3 method for class 'bigarx_canonical'
predict(object, newdata, ...)

Arguments

object

Objeto "bigarx".

newdata

Matriz o data.frame numérico.

type

"rows" (por defecto) o "cols".

...

No se usa.

Value

Matriz de coordenadas en los mismos ejes que object.

Examples

fit <- bigarx(USArrests[-(1:5), ])
predict(fit, USArrests[1:5, ])

Resumen de un biplot con bootstrap

Description

Resumen de un biplot con bootstrap

Usage

## S3 method for class 'bigarx_boot'
summary(object, type = .boot_types, digits = 3, ...)

Arguments

object

Objeto "bigarx_boot".

type

Parámetros a mostrar: uno o varios de "inercia", "bondad", "coordenada", "calidad", "contribucion", "angulo_variables" y "angulo_eje". Por defecto, todos.

digits

Decimales.

...

No se usa.

Value

Un data.frame (de forma invisible) con las filas mostradas.

Examples

b <- bigarx_boot(USArrests, B = 200, method = "hj", seed = 1)
summary(b, type = "inercia")

Resumen de un biplot

Description

Reúne la inercia por eje, la bondad de ajuste y la calidad de representación de filas y columnas en los ejes elegidos.

Usage

## S3 method for class 'bigarx_canonical'
summary(object, axes = c(1, 2), ...)

## S3 method for class 'bigarx'
summary(object, axes = c(1, 2), ...)

Arguments

object

Objeto "bigarx".

axes

Ejes para la calidad acumulada (por defecto c(1, 2)).

...

No se usa.

Value

Objeto "summary.bigarx" con las tablas inertia, gof, rows y cols. En rows y cols, la columna calidad es la suma de las calidades en los ejes elegidos (QLR en MultBiplot).

Examples

fit <- bigarx(USArrests, method = "hj")
summary(fit)