Eliminación del primer componente principal

Autor/a

Sergio Melgar

Eliminación del primer componente principal

Para eliminar el efecto del crecimiento alométrico es necesario hacer un análisis de componentes principales o de componentes principales comunes dependiendo si se trata de una población o de varias, respectivamente.

Para ilustrar lo que hace la rotación de ejes, se prepara abajo una gráfica de tres caracteres, de manera que se puede rotar para colocar la dirección del crecimiento de manera perpendicular al plano.

#tomado de https://plotly.com/r/3d-scatter-plots/
library(plotly)
Cargando paquete requerido: ggplot2

Adjuntando el paquete: 'plotly'
The following object is masked from 'package:ggplot2':

    last_plot
The following object is masked from 'package:stats':

    filter
The following object is masked from 'package:graphics':

    layout
iris$Species <- as.factor(iris$Species)
fig <- plot_ly(iris, x = ~Sepal.Length, y = ~Sepal.Width, z = ~Petal.Length, color = ~Species, colors = c('#BF382A', '#0C4B8E', "darkgreen"))
fig <- fig %>% add_markers()
fig <- fig %>% layout(scene = list(xaxis = list(title = 'Longitud del sépalo'),
                                   yaxis = list(title = 'Anchura del sépalo'),
                                   zaxis = list(title = 'Longitud del pétalo')))
fig

Se observan diferencias entre especies, se puede ver que I. setosa está bastante diferenciada de las otras dos especies. Hay una pequeña separación entre Iris versicolor e Iris virginica, pero parece que Iris virginica es más grande, pero comparte la recta de crecimiento alométrico con I. versicolor.

library(MASS)

Adjuntando el paquete: 'MASS'
The following object is masked from 'package:plotly':

    select
library(ggplot2)
library(GGally)
Registered S3 method overwritten by 'GGally':
  method from   
  +.gg   ggplot2
set.seed(12) # Para reproducibilidad

## Parámetros comunes a los tres grupos
# Matriz de covarianza (misma estructura de correlación para todos)
sigma <- matrix(c(
  4.0, 3.8, 3.6, 3.5,    # Longitud
  3.8, 9.0, 6.3, 6.0,    # Anchura
  3.6, 6.3, 16.0, 12.0,  # Altura
  3.5, 6.0, 12.0, 25.0    # Peso
), nrow = 4, byrow = TRUE)

# Nombres de las variables
colnames(sigma) <- rownames(sigma) <- c("Longitud", "Anchura", "Altura", "Peso")

## Medias para cada grupo (distintos promedios)
mu_grupo1 <- c(5, 10, 20, 15)
mu_grupo2 <- c(10, 20, 40, 30)
mu_grupo3 <- c(20, 15, 20, 35)

## Simular datos para cada grupo
n <- 100 # Tamaño muestral por grupo

grupo1 <- as.data.frame(mvrnorm(n, mu = mu_grupo1, Sigma = sigma))
grupo2 <- as.data.frame(mvrnorm(n, mu = mu_grupo2, Sigma = sigma))
grupo3 <- as.data.frame(mvrnorm(n, mu = mu_grupo3, Sigma = sigma))

# Añadir identificador de grupo
grupo1$Grupo <- "Grupo 1"
grupo2$Grupo <- "Grupo 2"
grupo3$Grupo <- "Grupo 3"

# Combinar todos los datos
datos <- rbind(grupo1, grupo2, grupo3)
datos$Grupo <- factor(datos$Grupo)

## Visualización de pares de variables
ggpairs(datos, 
        columns = 1:3,
        mapping = aes(color = Grupo),
        title = "Matriz de gráficos de dispersión por grupo",
        upper = list(continuous = "points"),
        lower = list(continuous = "cor"),
        diag = list(continuous = "densityDiag")) +
  theme_bw()

fig <- plot_ly(datos, x = ~Longitud, y = ~Anchura, z = ~Altura, color = ~Grupo, colors = c('#BF382A', '#0C4B8E', "darkgreen"))
fig <- fig %>% add_markers()
fig <- fig %>% layout(scene = list(xaxis = list(title = 'Longitud'),
                                   yaxis = list(title = 'Anchura'),
                                   zaxis = list(title = 'Altura')))
fig

Se observa que los grupos 1 (rojo) y 2 (azul) se encuentran alineados en la misma dirección de crecimiento alométrico, mientras que el grupo 3 se separa de los mismos. Esto se interpreta como que los grupos 1 y 2 representan dos grupos que difieren solo en el grado de desarrollo, debido a la edad o a condiciones ambientales. El grupo 3 difiere de los otros dos en forma. De manera que las diferencias entre grupos observada inicialmente se puede deducir que dependen del crecimiento como en los grupos 1 y 2 o del diferencias en forma como el grupo 3. Estas diferencias en forma se supone que tienen una base genética.