Se importan los datos relativos a las dimensiones de pétalos y sépalos de tres especies del género Iris (I. setosa, I. versicolor e I. virginica)
iris_aae <- read.csv("a2_DelAngelEscalona_AndresLIMPIO.csv", header = TRUE)
También se suben a la sesión los paquete gráficos de R
library(ggplot2)
library(gridExtra)
¿Es posible, con fines taxonómicos, diferenciar las tres especies del género Iris con base en los tamaños de sus respectivos pétalos y sépalos?
Los datos fueron generados por Edgar Anderson en 1935 y retomados por el legendario Ronald A. Fisher (1936), con fines taxonómicos en el área biológica de la botánica. E. Anderson midió cuatro variables métricas (anchuras y longitudes) de los pétalos y sépalos de las flores en cuestión; cincuenta de cada una de las especies (denominadas por Fisher “variedades”).
head(iris_aae)
## sepal_length sepal_width petal_length petal_width variety id
## 1 5.1 3.5 1.4 0.2 Setosa 1
## 2 4.9 3.0 1.4 0.2 Setosa 2
## 3 4.7 3.2 1.3 0.2 Setosa 3
## 4 4.6 3.1 1.5 0.2 Setosa 4
## 5 5.0 3.6 1.4 0.2 Setosa 5
## 6 5.4 3.9 1.7 0.4 Setosa 6
tail(iris_aae)
## sepal_length sepal_width petal_length petal_width variety id
## 145 6.7 3.3 5.7 2.5 Virginica 145
## 146 6.7 3.0 5.2 2.3 Virginica 146
## 147 6.3 2.5 5.0 1.9 Virginica 147
## 148 6.5 3.0 5.2 2.0 Virginica 148
## 149 6.2 3.4 5.4 2.3 Virginica 149
## 150 5.9 3.0 5.1 1.8 Virginica 150
table(iris_aae$variety)
##
## Setosa Versicolor Virginica
## 50 50 50
Como las cuatro variables cuantitativas dan cuenta del tamaño de los especímenes, considero pertinente calcular de manera aproximada el área de las estructuras observadas (pétalos y sépalos), como si fueran cuadrángulos perfectos (que, en verdad, no lo son), pero que permiten estimar, a partir de ellas, el área de cada una (área del sépalo y área del pétalo, respectivamente).
iris_aae <- transform(iris_aae,
area.sepalo = sepal_length * sepal_width,
area.petalo = petal_length * petal_width)
head(iris_aae)
## sepal_length sepal_width petal_length petal_width variety id area.sepalo
## 1 5.1 3.5 1.4 0.2 Setosa 1 17.85
## 2 4.9 3.0 1.4 0.2 Setosa 2 14.70
## 3 4.7 3.2 1.3 0.2 Setosa 3 15.04
## 4 4.6 3.1 1.5 0.2 Setosa 4 14.26
## 5 5.0 3.6 1.4 0.2 Setosa 5 18.00
## 6 5.4 3.9 1.7 0.4 Setosa 6 21.06
## area.petalo
## 1 0.28
## 2 0.28
## 3 0.26
## 4 0.30
## 5 0.28
## 6 0.68
tail(iris_aae)
## sepal_length sepal_width petal_length petal_width variety id area.sepalo
## 145 6.7 3.3 5.7 2.5 Virginica 145 22.11
## 146 6.7 3.0 5.2 2.3 Virginica 146 20.10
## 147 6.3 2.5 5.0 1.9 Virginica 147 15.75
## 148 6.5 3.0 5.2 2.0 Virginica 148 19.50
## 149 6.2 3.4 5.4 2.3 Virginica 149 21.08
## 150 5.9 3.0 5.1 1.8 Virginica 150 17.70
## area.petalo
## 145 14.25
## 146 11.96
## 147 9.50
## 148 10.40
## 149 12.42
## 150 9.18
ggplot(iris_aae, aes(x = sepal_length, y = sepal_width, color = variety,
shape = variety)) +
geom_point() +
scale_color_manual(values = c("orange", "limegreen", "darkred")) +
labs(title = "Tamaño del sépalo en el género Iris",
x = "Longitud del sépalo (cm)", y = "Anchura del sépalo (cm)") +
theme(legend.position = c(.65, .85))
ggplot(iris_aae, aes(x = petal_length, y = petal_width, color = variety,
shape = variety)) +
geom_point() +
scale_color_manual(values = c("orange", "limegreen", "darkred")) +
labs(title = "Tamaño del pétalo en el género Iris",
x = "Longitud del pétalo (cm)", y = "Anchura del pétalo (cm)") +
theme(legend.position = c(.9, .2))
ggplot(iris_aae, aes(x = area.sepalo, y = area.petalo, color = variety,
shape = variety)) +
geom_point() +
scale_color_manual(values = c("orange", "limegreen", "darkred")) +
labs(title = "Áreas de sépalo/pétalo en el género Iris",
x = "Área del sépalo (cm cuadrados)",
y = "Área del pétalo (cm cuadrados)") +
theme(legend.position = c(.9, .2))
I. setosa es en definitiva una planta con pétalos y sépalos significativamente más pequeños que sus contrapartes. ¿Qué parte de la planta distingue mejor a cada especie? Pues los pétalos, tanto en su longitud como en su longitud, así como en su área; mientras que los sépalos muestran menor diversidad, así como un traslape más o menos intenso en las distribuciones.
En primer lugar, se ilustran los datos agrupados por especie para, posteriormente, exponerlos a través de facetas en ggplot2. Emplearemos las variables derivadas a partir de las originales, a saber, las área de las dos estructuras observadas: área del sépalo y área del pétalo.
ggplot(iris_aae, aes(x = variety, y = area.sepalo)) +
geom_boxplot(fill = "cornflowerblue", color = "black", notch = TRUE,
alpha = 0.35) +
geom_point(position = "jitter", color = "blue", alpha = 0.5) +
geom_rug(sides = "l", color = "black") +
labs(x = "Especie", y = "Área del sépalo, cm cuadrados",
title = "Comparación del tamaño del sépalo, género Iris")
ggplot(iris_aae, aes(x = variety, y = area.petalo)) +
geom_boxplot(fill = "darkgreen", color = "black", notch = TRUE, alpha = .3) +
geom_point(position = "jitter", color = "blue", alpha = 0.5) +
geom_rug(sides = "l", color = "black") +
labs(x = "Especie", y = "Área del pétalo, cm cuadrados",
title = "Comparación del tamaño del pétalo, género Iris")
## Notch went outside hinges
## ℹ Do you want `notch = FALSE`?
ggplot(iris_aae, aes(x = variety, y = area.sepalo)) +
geom_boxplot(fill = "cornflowerblue", color = "black", notch = TRUE,
alpha = 0.35) +
geom_point(position = "jitter", color = "blue", alpha = 0.5) +
geom_rug(sides = "l", color = "black") +
facet_grid(.~variety) +
labs(x = "Especie", y = "Área del sépalo, cm cuadrados",
title = "Comparación del tamaño del sépalo, género Iris")
ggplot(iris_aae, aes(x = variety, y = area.petalo)) +
geom_boxplot(fill = "darkgreen", color = "black", notch = TRUE, alpha = .3) +
geom_point(position = "jitter", color = "blue", alpha = 0.5) +
geom_rug(sides = "l", color = "black") +
facet_grid(.~variety) +
labs(x = "Especie", y = "Área del pétalo, cm cuadrados",
title = "Comparación del tamaño del pétalo, género Iris")
## Notch went outside hinges
## ℹ Do you want `notch = FALSE`?
Como ya se había apuntado líneas arriba, el pétalo muestra la mayor diferencia interespecie en las distribuciones. También es evidente que el tamaño mayor de las flores de I. versicolor e I. virginica “apachurran” la distribución de las flores de I. setosa. Conviene transformar las áreas calculadas para efectuar una comparación adecuada, quizá una estandarización (0, 1) o una a partir de un logaritmo.
Al ponerse en evidencia que los datos provenientes de las medidas del pétalo discriminan mejor a las tres especies de Iris consideradas, realizaremos una examinación de las distribuciones a través de gráficos de densidad.
ggplot(iris_aae, aes(x = petal_length, fill = variety)) +
geom_density(alpha = 0.3) +
labs(title = "Pétalos del género Iris", subtitle = "Longitud del pétalo (cm)",
y = "Densidad", x = "") +
theme(legend.position = c(.9, .8))
ggplot(iris_aae, aes(x = petal_width, fill = variety)) +
geom_density(alpha = 0.3) +
labs(title = "Pétalos del género Iris", subtitle = "Anchura del pétalo (cm)",
y = "Densidad", x = "") +
theme(legend.position = c(.9, .8))
La distribución de I. setosa se aparta decididamente de sus hermanas de género y, dada la menor escala de sus pétalos, la varianza también es mucho menor. Entre las otras dos especies hay cierto traslape, lo cual, no obstante, permite diferenciarlas en cierta medida.
Regresando al planteamiento inicial de este estudio, referente al poder discriminatorio de las tres especies de Iris con base en las medidas de sus flores, concluimos que, efectivamente, es posible buscar una combinación de todas ellas, especialmente de sus pétalos, para diferenciarlas.
El trabajo citado de Fisher (1936) desarrolla una serie de combinaciones lineales que confirman la separación contundente de I. setosa y su distinción razonable a pesar del relativo traslape de I. versicolor e I. virginica.
Convendría explorar la transformación de los datos originales, con el objetivo de estabilizar las escalas, en beneficio de una mejor comprensión de los datos.
Anderson, Edgar (1935). The irises of the Gaspe Peninsula, Bulletin of the American Iris Society, 59, 2–5.
Fisher, R. A. (1936) The use of multiple measurements in taxonomic problems. Annals of Eugenics, 7, Part II, 179–188. doi:10.1111/j.1469-1809.1936.tb02137.x.