Este trabajo contiene el reporte descriptivo del dataset
“a4_iris.csv” que contiene observaciones de tres especies de flores del
género Iris:
- setosa
- versicolor
- virginica
Cada observación incluye cuatro variables numéricas que describen medidas morfológicas de los sépalos y pétalos.
Realizaremos primero un analisis exploratorio de los datos:
data <- read.csv("a4_iris.csv")
data <- data %>% mutate(variety = as.factor(variety))
str(data)
## 'data.frame': 150 obs. of 5 variables:
## $ sepal.length: num 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
## $ sepal.width : num 3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
## $ petal.length: num 1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
## $ petal.width : num 0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
## $ variety : Factor w/ 3 levels "Setosa","Versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...
summary(data)
## sepal.length sepal.width petal.length petal.width
## Min. :4.300 Min. :2.000 Min. :1.000 Min. :0.100
## 1st Qu.:5.100 1st Qu.:2.800 1st Qu.:1.600 1st Qu.:0.300
## Median :5.800 Median :3.000 Median :4.350 Median :1.300
## Mean :5.843 Mean :3.057 Mean :3.758 Mean :1.199
## 3rd Qu.:6.400 3rd Qu.:3.300 3rd Qu.:5.100 3rd Qu.:1.800
## Max. :7.900 Max. :4.400 Max. :6.900 Max. :2.500
## variety
## Setosa :50
## Versicolor:50
## Virginica :50
##
##
##
Observamos que el dataset no contine valores faltantes y que esta listo para trabajar en él.
Se aprecia que las medias y medianas de las variables son consistentes, sin valores extremos evidentes. Los pétalos presentan mayor variabilidad que los sépalos, especialmente en longitud.
Cada observación incluye cuatro variables numéricas que describen medidas morfológicas de los sépalos y pétalos:
| Variable | Descripción | Tipo |
|---|---|---|
Sepal.Length |
Largo del sépalo | numérica |
Sepal.Width |
Ancho del sépalo | numérica |
Petal.Length |
Largo del pétalo | numérica |
Petal.Width |
Ancho del pétalo | numérica |
variety |
Especie de la flor | categórica |
Graficando:
iris_long <- pivot_longer(data, cols = -variety,
names_to = "variable", values_to = "value")
ggplot(iris_long, aes(x = value)) +
geom_histogram(fill = "#69b3a2", alpha = 0.6, bins = 25, position = "identity") +
facet_wrap(~variable, scales = "free", ncol = 2) +
labs(title = "Distribuciones de las variables morfológicas",
x = "Valor", y = "Frecuencia") +
theme_minimal() +
theme(plot.title = element_text(face = "bold", hjust = 0.5))
Se observa que las variables de pétalo presentan distribuciones bimodales, lo que sugiere la presencia de grupos diferenciados (posiblemente especies). En contraste, las variables de sépalo muestran distribuciones más continuas y solapadas. Posiblemente esto sea debido a la variable variety, exploraremos esta suposición:
iris_long <- reshape2::melt(data, id.vars = "variety")
ggplot(iris_long, aes(x = value, fill = variety)) +
geom_histogram(alpha = 0.6, bins = 25, position = "identity") +
facet_wrap(~variable, scales = "free", ncol = 2) +
labs(title = "Distribuciones de las variables morfológicas",
x = "Valor", y = "Frecuencia") +
theme_minimal() +
theme(plot.title = element_text(face = "bold", hjust = 0.5))
Observamos que Las variables Petal.Length y Petal.Width son las más discriminantes entre especies.
Setosa se distingue fácilmente por sus pétalos cortos y estrechos.
Versicolor y Virginica se diferencian mejor por el largo del pétalo que por el sépalo.
ggplot(iris_long, aes(x = variety, y = value, fill = variety)) +
geom_violin(trim = FALSE, alpha = 0.6) +
facet_wrap(~variable, scales = "free", ncol = 2) +
labs(title = "Distribuciones morfológicas por especie (Gráficas de violín)",
x = "Especie", y = "Valor") +
theme_minimal() +
theme(plot.title = element_text(face = "bold", hjust = 0.5))
Se observa que las variables de pétalo (petal.length y petal.width) presentan distribuciones más diferenciadas entre especies, lo que sugiere una alta capacidad discriminativa.
En cambio, las variables de sépalo muestran mayor solapamiento, especialmente entre versicolor y virginica.
Esto sugiere una posible correlación entre las variables, verificaremos este hecho
cor_matrix <- cor(data[, 1:4])
cor_long <- as.data.frame(as.table(cor_matrix))
ggplot(cor_long, aes(Var1, Var2, fill = Freq)) +
geom_tile(color = "white") +
scale_fill_gradient2(low = "#00FFFF", high = "#EE6A50", mid = "white",
midpoint = 0, limit = c(-1,1), name = "Correlación") +
labs(title = "Matriz de correlación entre variables morfológicas",
x = "", y = "") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1),
plot.title = element_text(face = "bold", hjust = 0.5))
Se observa una correlación positiva fuerte entre petal.length y petal.width, lo que sugiere que ambas variables crecen conjuntamente y podrían estar relacionadas funcionalmente. En contraste, se aprecia una correlación negativa entre sepal.width y petal.length, lo que indica que a medida que una aumenta, la otra tiende a disminuir.
Ahora graficaremos todas las combinaciones posibles entre las variables morfológicas del dataset: sepal.length, sepal.width, petal.length y petal.width. Cada celda representa una relación bivariada o un resumen univariado
ggpairs(data[, 1:4],
title = "Matriz de gráficos: combinaciones entre variables morfológicas")
Sepal Length
- Distribución unimodal con “pico” alrededor de 5.8–6.0 cm.
Sepal Width
- Distribución unimodal y simétrica, con valores centrados en 3.0–3.2
cm.
Petal Length
- Distribución casi bimodal, reflejando diferencias entre especies.
Petal Width
- Distribución bimodal muy marcada.
Sepal Width vs. Sepal Length
- Relación débil y ligeramente negativa.
Petal Length vs. Sepal Length
- Relación positiva clara; se distinguen agrupaciones por especie.
Petal Width vs. Sepal Length
- Relación creciente, a veces curvilínea.
Petal Length vs. Sepal Width
- Tendencia negativa.
Petal Width vs. Sepal Width
- Relación negativa débil.
Petal Width vs. Petal Length
- Relación muy fuerte y positiva, con tres grupos lineales
(especies).
Las graficas inferiores muestran datos separados, como hemos visto previamente, es posbile que esta separación este determinada por la especie de las plantas, exploraremos esto con la siguiente grafica:
ggpairs(data, columns = 1:4,mapping = aes(color = variety), title = "Matriz de gráficos por especie")
Las correlaciones generales pueden ocultar variabilidad entre grupos. Al separar por especie se observa:
De acuerdo a lo visto a lo largo de este trabajo podemos asegurar que las tres especies presentan distribuciones claramente separadas. Distinguiendo que Setosa es la más aislada en todas las relaciones. Versicolor exhibe las correlaciones más fuertes, especialmente entre variables de pétalos. Virginica mantiene relaciones similares, aunque con mayor variabilidad.