Día 7: Estimación de Mordida Máxima y Morfometría Geométrica
2026-04-27









set.seed(42)
# p landmarks × k coordenadas × n especímenes
craneos_3d <- array(
data = rnorm(20 * 3 * 30),
dim = c(20, 3, 30),
dimnames = list(
paste0("lm_", sprintf("%02d", 1:20)), # 20 landmarks
c("x", "y", "z"), # 3 coordenadas 3D
paste0("sp_", 1:30) # 30 especímenes
)
)
dim(craneos_3d) # p × k × ngpagen() aplica la superposición generalizada de Procrustes en un paso.$coords — forma pura: sin escala, rotación ni traslación.$Csize — proxy del tamaño corporal; útil como covariable en análisis de alometría.# PCA sobre coordenadas de Procrustes
pca <- gm.prcomp(gpa$coords)
# Varianza explicada por cada componente
summary(pca)
# Morfoespacio (cada punto = un espécimen)
plot(pca,
main = "Morfoespacio — Carnívora",
pch = 19,
col = as.factor(familia))
legend("topright", legend = levels(familia),
pch = 19, col = 1:nlevels(familia))
# Vector de fuerza de mordida (un valor por espécimen, en N)
mordida_N <- c(...)
# PLS de dos bloques: ¿covaria la forma con la fuerza?
pls <- two.b.pls(
A1 = two.d.array(gpa$coords), # bloque 1: forma (matriz 2D)
A2 = log(mordida_N), # bloque 2: log-mordida
print.progress = FALSE
)
summary(pls) # r-PLS y p-valor permutacional
plot(pls,
main = "Covariación forma–mordida en Carnívora",
label = rownames(mordida_N))





E. Miguel Díaz de León Muñoz · Museo Virtual Nacional