| 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 |
prcomp en un biplot de BiGaRxReutiliza la SVD ya calculada por stats::prcomp() para obtener cualquiera
de los biplots de bigarx().
as_bigarx(x, ...) ## S3 method for class 'prcomp' as_bigarx( x, method = c("hj", "gh", "jk", "sqrt"), alpha = NULL, ndim = 3, fix_signs = TRUE, ... )as_bigarx(x, ...) ## S3 method for class 'prcomp' as_bigarx( x, method = c("hj", "gh", "jk", "sqrt"), alpha = NULL, ndim = 3, fix_signs = TRUE, ... )
x |
Objeto de clase |
... |
No se usa. |
method, alpha, ndim, fix_signs
|
Como en |
Objeto "bigarx". No incluye elementos suplementarios.
p <- prcomp(USArrests, scale. = TRUE) as_bigarx(p, method = "hj")p <- prcomp(USArrests, scale. = TRUE) as_bigarx(p, method = "hj")
Devuelve un objeto ggplot que se puede modificar con capas, temas y
escalas de 'ggplot2' como cualquier otro gráfico.
## 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", ... )## 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", ... )
object |
Objeto |
axes |
Ejes a representar. |
col_scale |
|
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,
|
labels |
Si es |
row_col, arrow_col
|
Colores de los puntos y de las flechas. Si hay
|
... |
No se usa. |
Un objeto ggplot.
if (requireNamespace("ggplot2", quietly = TRUE)) { fit <- bigarx(USArrests) ggplot2::autoplot(fit) + ggplot2::theme_minimal() }if (requireNamespace("ggplot2", quietly = TRUE)) { fit <- bigarx(USArrests) ggplot2::autoplot(fit) + ggplot2::theme_minimal() }
Calcula un biplot a partir de la descomposición en valores singulares (SVD)
de la matriz preprocesada . Los métodos se diferencian
solo en cómo se reparten los valores singulares entre filas y columnas:
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 )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 )
X |
Matriz o data.frame numérico (individuos en filas, variables en columnas). |
method |
|
alpha |
Número entre 0 y 1 para la familia general de Gabriel. |
transform |
Preprocesamiento: |
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 |
sup_rows |
Matriz opcional de filas suplementarias (mismas columnas que
|
sup_cols |
Matriz opcional de columnas suplementarias (mismas filas que
|
groups |
Factor opcional de longitud |
fix_signs |
Si es |
na_action |
Qué hacer con los |
impute_rank |
Rango de la SVD usada para imputar (por defecto 2). |
| Método | Filas | Columnas | Calidad máxima para | Referencia |
"jk" |
|
|
filas | Gabriel (1971) |
"gh" |
|
|
columnas | Gabriel (1971) |
"sqrt" |
|
|
ninguna | Gabriel (1971) |
"hj" |
|
|
filas y columnas | Galindo (1986) |
Con alpha numérico se obtiene la familia general
, ; alpha = 1 es el
JK, alpha = 0 el GH y alpha = 0.5 el SQRT. El HJ-Biplot no pertenece a
esa familia: asigna 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: ;
filas con :
;
columnas con :
.
Así, en el GH las columnas tienen y las filas solo
; en el JK es al revés; y en el HJ ambas tienen la medida en
, que es la propiedad que lo define.
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.
dTodos los valores singulares no nulos.
eigenValores propios .
inertiaTabla 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: . 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: .
gofBondad 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.
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.
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, ])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, ])
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.
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() )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() )
X |
Matriz o data.frame numérico. |
B |
Número de réplicas bootstrap (por defecto 1000). |
method, transform, alpha
|
Como en |
axes |
Plano en el que se calculan coordenadas, calidades y ángulos. |
conf |
Nivel de confianza (por defecto 0,95). |
ci |
|
seed |
Semilla opcional para reproducir los resultados. |
groups |
Factor opcional para colorear el biplot. |
progress |
Mostrar una barra de progreso. |
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 y de
las réplicas (Algoritmo 3 del artículo);
"normal" (boot-t): estimación por el error
estándar bootstrap, con si (Algoritmo 2).
Un objeto "bigarx_boot" con
fitEl biplot original (bigarx()).
tabledata.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.
replicatesMatriz de réplicas (una fila por réplica, una columna por parámetro).
B, conf, ci, axes
Configuración.
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.
bt <- bigarx_boot(USArrests, B = 200, seed = 1) bt summary(bt, type = "angulo_variables") plot(bt) plot(bt, type = "angulo_variables")bt <- bigarx_boot(USArrests, B = 200, seed = 1) bt summary(bt, type = "angulo_variables") plot(bt) plot(bt, type = "angulo_variables")
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).
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") )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") )
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 |
|
conf |
Nivel de confianza de las regiones (por defecto 0,95). |
region |
|
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 |
singular |
|
theta_est |
Estimador de theta en las elipses de Krzanowski: |
Cálculo. Con la matriz de medias de grupo
(datos centrados), y
la matriz de covarianzas combinada dentro de los
grupos, se calcula la descomposición en valores singulares generalizada
(en la notación de Amaro et al., con
). Los marcadores son:
medias de grupo: ;
variables: ;
individuos: .
Se cumple : el producto escalar de una media y una variable
reproduce la media del grupo en esa variable. Los valores propios de
del MANOVA son .
Escala. Se usa la covarianza combinada (y no la matriz de sumas
de cuadrados ) 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 ; región conjunta en el
plano (Amaro et al., 2008).
"t": radio ; su proyección sobre una
variable aproxima un intervalo univariante (Amaro et al., 2004).
"bonferroni": como "t", con dividido entre las
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
. 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 de Hotelling.
Un objeto de clase c("bigarx_canonical", "bigarx") con
rowsCoordenadas de las medias de grupo.
colsMarcadores de las variables.
individualsCoordenadas de cada individuo.
radiusRadio de la región de confianza de cada grupo.
manovaLambda de Wilks, aproximación chi-cuadrado de Bartlett, grados de libertad y valor p.
canonicalValores propios de y correlaciones
canónicas.
inertia, gof
Inercia por eje y bondad de ajuste de las medias en el plano 1-2.
quality_rowsCalidad de representación de cada media (en %).
quality_colsCalidad de cada variable (en %): correlación al cuadrado, dentro de los grupos, entre la variable y el eje canónico.
structureEsas mismas correlaciones con signo.
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.
cb <- bigarx_canonical(iris[, 1:4], iris$Species) cb summary(cb) plot(cb)cb <- bigarx_canonical(iris[, 1:4], iris$Species) cb summary(cb) plot(cb)
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.
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")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")
X |
Matriz o data.frame numerico. |
A, B
|
Factores (filas y columnas del diseno). |
efecto |
|
transform, conf, region, ndim, fix_signs, na_action, impute_rank, singular, theta_est
|
Como en |
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. |
Un objeto "bigarx_canonical" con el elemento adicional diseno
(contrastes MANOVA por efecto y ANOVA univariantes).
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.
# 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)# 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)
Devuelve las coordenadas, calidades y contribuciones en formato largo (una fila por elemento), listo para 'ggplot2' u otros paquetes.
## 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), ...)## 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), ...)
x |
Objeto |
matrix |
|
axes |
Ejes para la columna |
... |
No se usa. |
Un data.frame.
fit <- bigarx(USArrests) head(bigarx_tidy(fit))fit <- bigarx(USArrests) head(bigarx_tidy(fit))
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.
canonical_regions(x, axes = c(1, 2))canonical_regions(x, axes = c(1, 2))
x |
Objeto de |
axes |
Plano (por defecto |
Un data.frame con una fila por grupo.
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.
cb <- bigarx_canonical(iris[, 1:4], iris$Species, region = "ellipse") canonical_regions(cb)cb <- bigarx_canonical(iris[, 1:4], iris$Species, region = "ellipse") canonical_regions(cb)
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.
es_composicional(X, tol = 0.001) transformar_composicional( X, metodo = c("ninguna", "clr", "alr"), referencia = NULL )es_composicional(X, tol = 0.001) transformar_composicional( X, metodo = c("ninguna", "clr", "alr"), referencia = NULL )
X |
Matriz o data.frame de proporciones. |
tol |
Tolerancia relativa. |
metodo |
|
referencia |
Variable del denominador en la alr. |
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).
Aitchison, J. (1986). The Statistical Analysis of Compositional Data. Chapman and Hall.
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"))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"))
Compara cada par de medias con la matriz de covarianzas combinada del modelo.
hotelling_pares(x, ajuste = c("bonferroni", "holm", "none"))hotelling_pares(x, ajuste = c("bonferroni", "holm", "none"))
x |
Objeto de |
ajuste |
Ajuste de los valores p: |
Un data.frame con D2 de Mahalanobis, T2, F, grados de libertad y valores p.
cb <- bigarx_canonical(iris[, 1:4], iris$Species) hotelling_pares(cb, ajuste = "holm")cb <- bigarx_canonical(iris[, 1:4], iris$Species) hotelling_pares(cb, ajuste = "holm")
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).
impute_svd( X, rank = 2, transform = c("standardize", "center", "double", "grand", "none"), maxit = 500, tol = 1e-06 )impute_svd( X, rank = 2, transform = c("standardize", "center", "double", "grand", "none"), maxit = 500, tol = 1e-06 )
X |
Matriz o data.frame numérico con |
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
|
maxit |
Número máximo de iteraciones. |
tol |
Tolerancia para el cambio relativo de los valores imputados. |
Algoritmo:
Se rellenan los NA con la media de su columna.
Se aplica la transformación elegida (por ejemplo, estandarizar).
Se calcula la SVD y la aproximación de rango rank.
Se vuelve a la escala original y se reemplazan solo las celdas faltantes por los valores aproximados.
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.
Un objeto de clase "bigarx_imputation": lista con
XLa matriz completa.
missingMatriz de posiciones (fila, columna) imputadas.
valuesdata.frame con fila, columna y valor imputado.
iterations, converged, rank, transform
Detalles del ajuste.
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.
X <- as.matrix(USArrests) X[c(3, 10, 25), 2] <- NA imp <- impute_svd(X, rank = 2) imp imp$valuesX <- as.matrix(USArrests) X[c(3, 10, 25), 2] <- NA imp <- impute_svd(X, rank = 2) imp imp$values
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.
invertir_ejes(x, ejes)invertir_ejes(x, ejes)
x |
Objeto de |
ejes |
Vector con los ejes a invertir. |
El objeto con los ejes invertidos.
cb <- bigarx_canonical(iris[, 1:4], iris$Species) ci <- invertir_ejes(cb, 2) cbind(original = cb$rows[, 2], invertido = ci$rows[, 2])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
## 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, ... )## 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, ... )
x |
Objeto |
axes |
Ejes a representar. |
col_scale |
|
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,
|
labels |
Si es |
row_col, arrow_col
|
Colores de los puntos y de las flechas. Si hay
|
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 |
x, de forma invisible.
fit <- bigarx(USArrests, method = "hj") plot(fit, min_quality = 50)fit <- bigarx(USArrests, method = "hj") plot(fit, min_quality = 50)
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.
## 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, ...)## 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, ...)
x, object
|
Objeto |
type |
|
cloud |
Dibujar las réplicas individuales en el biplot. |
... |
Argumentos adicionales para |
x de forma invisible, o un objeto ggplot.
b <- bigarx_boot(USArrests, B = 200, method = "hj", seed = 1) plot(b)b <- bigarx_boot(USArrests, B = 200, method = "hj", seed = 1) plot(b)
Muestra los individuos (opcional), las medias de grupo con su región de confianza y las variables como flechas.
## 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", ... )## 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", ... )
x, object
|
Objeto |
axes |
Ejes a representar. |
individuals |
Si es |
circles |
Si es |
col_scale |
|
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 |
x de forma invisible (plot) o un objeto ggplot (autoplot).
cb <- bigarx_canonical(iris[, 1:4], iris$Species) plot(cb) if (requireNamespace("ggplot2", quietly = TRUE)) ggplot2::autoplot(cb)cb <- bigarx_canonical(iris[, 1:4], iris$Species) plot(cb) if (requireNamespace("ggplot2", quietly = TRUE)) ggplot2::autoplot(cb)
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.
## S3 method for class 'bigarx' predict(object, newdata, type = c("rows", "cols"), ...) ## S3 method for class 'bigarx_canonical' predict(object, newdata, ...)## S3 method for class 'bigarx' predict(object, newdata, type = c("rows", "cols"), ...) ## S3 method for class 'bigarx_canonical' predict(object, newdata, ...)
object |
Objeto |
newdata |
Matriz o data.frame numérico. |
type |
|
... |
No se usa. |
Matriz de coordenadas en los mismos ejes que object.
fit <- bigarx(USArrests[-(1:5), ]) predict(fit, USArrests[1:5, ])fit <- bigarx(USArrests[-(1:5), ]) predict(fit, USArrests[1:5, ])
Resumen de un biplot con bootstrap
## S3 method for class 'bigarx_boot' summary(object, type = .boot_types, digits = 3, ...)## S3 method for class 'bigarx_boot' summary(object, type = .boot_types, digits = 3, ...)
object |
Objeto |
type |
Parámetros a mostrar: uno o varios de |
digits |
Decimales. |
... |
No se usa. |
Un data.frame (de forma invisible) con las filas mostradas.
b <- bigarx_boot(USArrests, B = 200, method = "hj", seed = 1) summary(b, type = "inercia")b <- bigarx_boot(USArrests, B = 200, method = "hj", seed = 1) summary(b, type = "inercia")
Reúne la inercia por eje, la bondad de ajuste y la calidad de representación de filas y columnas en los ejes elegidos.
## S3 method for class 'bigarx_canonical' summary(object, axes = c(1, 2), ...) ## S3 method for class 'bigarx' summary(object, axes = c(1, 2), ...)## S3 method for class 'bigarx_canonical' summary(object, axes = c(1, 2), ...) ## S3 method for class 'bigarx' summary(object, axes = c(1, 2), ...)
object |
Objeto |
axes |
Ejes para la calidad acumulada (por defecto |
... |
No se usa. |
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).
fit <- bigarx(USArrests, method = "hj") summary(fit)fit <- bigarx(USArrests, method = "hj") summary(fit)