ACTIVIDAD 03 – Reporte exploratorio en RMarkdown

Práctica del Curso de R como herramienta de investigación

11 de noviembre de 2025, en algún lugar de las mazmorras de Lindavista Sur (CdMx)

Importación de los datos de actividad anterior

iris.aae <- read.csv("a2_DelAngelEscalona_AndresLIMPIO.csv", header = TRUE)

Instalación de paquetes pertinentes

library(ggplot2)
library(dplyr)
## 
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union

Descripción general

Listado de variables

names(iris.aae)
## [1] "sepal_length" "sepal_width"  "petal_length" "petal_width"  "variety"     
## [6] "id"

Dimensiones del data frame

dim(iris.aae)
## [1] 150   6

Estructura del data frame

str(iris.aae)
## 'data.frame':    150 obs. of  6 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     : chr  "Setosa" "Setosa" "Setosa" "Setosa" ...
##  $ id          : int  1 2 3 4 5 6 7 8 9 10 ...

Vistazo de los primeros renglones

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

Resumen numérico de todas las variables

summary(iris.aae)
##   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                id        
##  Length:150         Min.   :  1.00  
##  Class :character   1st Qu.: 38.25  
##  Mode  :character   Median : 75.50  
##                     Mean   : 75.50  
##                     3rd Qu.:112.75  
##                     Max.   :150.00

Resumen numérico de todas las variables (vista transpuesta)

glimpse(iris.aae)
## Rows: 150
## Columns: 6
## $ sepal_length <dbl> 5.1, 4.9, 4.7, 4.6, 5.0, 5.4, 4.6, 5.0, 4.4, 4.9, 5.4, 4.…
## $ sepal_width  <dbl> 3.5, 3.0, 3.2, 3.1, 3.6, 3.9, 3.4, 3.4, 2.9, 3.1, 3.7, 3.…
## $ petal_length <dbl> 1.4, 1.4, 1.3, 1.5, 1.4, 1.7, 1.4, 1.5, 1.4, 1.5, 1.5, 1.…
## $ petal_width  <dbl> 0.2, 0.2, 0.2, 0.2, 0.2, 0.4, 0.3, 0.2, 0.2, 0.1, 0.2, 0.…
## $ variety      <chr> "Setosa", "Setosa", "Setosa", "Setosa", "Setosa", "Setosa…
## $ id           <int> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17…

Comentario: Se trata de datos métricos (en centímetros) de 150 plantas de varias especies con flores (pétalos) en formato numérico y una variable tipo carácter para especificar la especie de cada planta (cinco variables en total). Cada especie se caracteriza por un tamaño y proporción propios. Consideré pertinente añadir una variable que identificara cada espécimen (id_). Además, es adecuado convertir en variable tipo FACTOR a “variety”, que adscribe a cada planta a una de las tres especies en consideración.

Histogramas por variable

Long. sépalo

ggplot(iris.aae, aes(x = sepal_length, fill = variety)) +
  geom_histogram(binwidth = 0.32, col = "blue", alpha = 0.45) +
  labs(title = "Diversidad métrica en el género Iris",
       subtitle = "Longitud del sépalo (cm)",
       x = "Long. sépalo (cm)", y = "Frecuencia")

Comentario: Aunque las respectivas distribuciones de las tres especies de plantas se traslapan, en lo que respecta a la longitud del sépalo hay una diferenciación clara, con los valores pequeños asociados con la especie SATOSA y los grandes a la VIRGINICA; con los valores intermedios de la VERSICOLOR.

Long. pétalo

ggplot(iris.aae, aes(x = petal_length, fill = variety)) +
  geom_histogram(binwidth = 0.32, col = "blue", alpha = 0.45) +
  labs(title = "Diversidad métrica en el género Iris",
       subtitle = "Longitud del pétalo (cm)",
       x = "Long. pétalo (cm)", y = "Frecuencia")

Comentario: definitivamente, la distribución de SETOSA se separa contundentemente del resto de sus parientes del mismo género, aunque las otras dos variedades se traslapan en cierta medida, pero no totalmente, pues la VIRGINICA se ubica en la cola superior de la distribución, mientras que la VERSICOLOR en el punto medio entre sus otras dos “primas florales”.

An. sépalo

ggplot(iris.aae, aes(x = sepal_width, fill = variety)) +
  geom_histogram(binwidth = 0.23, col = "blue", alpha = 0.45) +
  labs(title = "Diversidad métrica en el género Iris",
       subtitle = "Anchura del sépalo (cm)",
       x = "An. sépalo (cm)", y = "Frecuencia")

Comentario: a diferencia de las otras variables, esta anchura del sépalo se traslapa en las tres especies, aunque hay cierto alejamiento de SETOSA hacia la cola superior.

An. pétalo

ggplot(iris.aae, aes(x = petal_width, fill = variety)) +
  geom_histogram(binwidth = 0.23, col = "blue", alpha = 0.45) +
  labs(title = "Diversidad métrica en el género Iris",
       subtitle = "Anchura del pétalo (cm)",
       x = "An. pétalo (cm)", y = "Frecuencia")

Comentario: como en otras variables de este conjunto de datos, la variedad SETOSA se separa claramente de sus cercanas parientes, con anchuras pequeñas, mientras que sus hermanas de género se ubican en el extremo superior de la distribución, VERSICOLOR y VIRGINICA, en ese orden.

Estadisticos descriptivos por especie (VARIETY)

descrip.Sepal.Length <- iris.aae %>% # agrupamos por la variables VARIETY
   group_by(variety) %>%
   summarise(
     media = mean(sepal_length),
     desv_est = sd(sepal_length),
   ) %>%
   arrange(desc(media))
descrip.Sepal.Length
## # A tibble: 3 × 3
##   variety    media desv_est
##   <chr>      <dbl>    <dbl>
## 1 Virginica   6.59    0.636
## 2 Versicolor  5.94    0.516
## 3 Setosa      5.01    0.352
descrip.Sepal.Width <- iris.aae %>%
   group_by(variety) %>%
   summarise(
     media = mean(sepal_width),
     desv_est = sd(sepal_width),
   ) %>%
   arrange(desc(media))
descrip.Sepal.Width
## # A tibble: 3 × 3
##   variety    media desv_est
##   <chr>      <dbl>    <dbl>
## 1 Setosa      3.43    0.379
## 2 Virginica   2.97    0.322
## 3 Versicolor  2.77    0.314
descrip.Petal.Length <- iris.aae %>% 
   group_by(variety) %>%
   summarise(
     media = mean(petal_length),
     desv_est = sd(petal_length),
    ) %>%
   arrange(desc(media))
descrip.Petal.Length
## # A tibble: 3 × 3
##   variety    media desv_est
##   <chr>      <dbl>    <dbl>
## 1 Virginica   5.55    0.552
## 2 Versicolor  4.26    0.470
## 3 Setosa      1.46    0.174
descrip.Petal.Width <- iris.aae %>% 
   group_by(variety) %>%
   summarise(
     media = mean(petal_width),
     desv_est = sd(petal_width),
    ) %>%
   arrange(desc(media))
descrip.Petal.Width
## # A tibble: 3 × 3
##   variety    media desv_est
##   <chr>      <dbl>    <dbl>
## 1 Virginica  2.03     0.275
## 2 Versicolor 1.33     0.198
## 3 Setosa     0.246    0.105

Visualizaciones con ggplot2, comparación de distribuciones

Diagrama de cajas

Long. del sépalo

ggplot(iris.aae, aes(x = variety, y = sepal_length, fill = variety)) +
  geom_boxplot(alpha = 0.5) +
  labs(title = "Longitud del sépalo",
       subtitle = "Plantas del género Iris",
       y = "Long. sépalo (cm)", x = "Especie")

Comentario: como se vislumbraba en los histogramas arriba expuestos, la longitud del sépalo separa con claridad las distribuciones de cada especie: SETOSA, VERSICOLOR y VIRGINICA, en ese orden ascendente de magnitud.

Anch. del sépalo

ggplot(iris.aae, aes(x = variety, y = sepal_width, fill = variety)) +
  geom_boxplot(alpha = 0.5) +
  labs(title = "Anchura del sépalo",
       subtitle = "Plantas del género Iris",
       y = "An. sépalo (cm)", x = "Especie")

Comentario: esta variable separa claramente por la anchura del sépalo a SETOSA, mientras que sus dos hermanas de género se ubican claramente abajo en esta dimensión.

Long. del pétalo

ggplot(iris.aae, aes(x = variety, y = petal_length, fill = variety)) +
  geom_boxplot(alpha = 0.5) +
  labs(title = "Longitud del pétalo",
       subtitle = "Plantas del género Iris",
       y = "Long. pétalo (cm)", x = "Especie")

Comentario: esta variable separa nuevamente a SETOSA, mientras que sus dos hermanas de género se ubican claramente arriba en esta dimensión. No obstante, VERSICOLOR y VIRGINICA también se diferencian entre sí, aunque no tanto como lo hacen con SETOSA.

Anch. del pétalo

ggplot(iris.aae, aes(x = variety, y = petal_width, fill = variety)) +
  geom_boxplot(alpha = 0.5) +
  labs(title = "Anchura del pétalo",
       subtitle = "Plantas del género Iris",
       y = "An. pétalo (cm)", x = "Especie")

Comentario: una vez más, SETOSA se diferencia notablemente de sus hermanas, con valores bajos en la anchura del pétalo.

Diagrama de dispersión

Longitudes del pétalo y del sépalo

ggplot(iris.aae, aes(x = petal_length, y = sepal_length, colour = variety)) +
  geom_point(alpha = 0.85, size = 3) +
  labs(y = "Long. sépalo (cm)", x = "Long. pétalo (cm)",
       title = "Longitud pétalo/sépalo",
       subtitle = "Diversidad en el género Iris")

Comentario: parece haber una correlación positiva entre las dos longitudes de las flores (pétalo/sépalo), sobre todo en las especies VERSICOLOR y VIRGINICA. Además, SETOSA se diferencia notablemente de sus parientes de género, mientras que las distribuciones bivariadas de las otras dos especies apenas se traslapan en la longitud del pétalo, aunque no en verdad en la del sépalo.

Diagrama de dispersión

Anchuras del pétalo y del sépalo

ggplot(iris.aae, aes(x = petal_width, y = sepal_width, colour = variety)) +
  geom_point(alpha = 0.85, size = 3) +
  labs(y = "An. pétalo (cm)", x = "An. sépalo (cm)",
       title = "Anchura pétalo/sépalo",
       subtitle = "Diversidad en el género Iris")

Comentario: las dos anchuras disponibles separan también claramente a las tres especies, con SATOSA definitivamente fuera del rango de sus hermanas, pero la anchura del sépalo también separa a VERSICOLOR y VIRGINICA, aunque con cierto traslape.

Diagrama de columnas

Composición de la muestra por especie

ggplot(iris.aae, aes(variety, fill = variety)) +
  geom_bar() +
  scale_fill_manual(
    values = c("coral","aquamarine","orchid")) +
  labs(
    title = "Composición de la muestra",
    subtitle = "Género Iris",
    caption = "Fuente: datos publicados por R. A. Fisher (1936)",
    x = "Especie",
    y = "Frecuencia")

Comentario: los recopiladores y analistas de estos datos canónicos de la estadística, tuvieron a bien conceder equilibrio en el tamaño de las muestras de cada especie, para beneficio de los estadísticos del futuro (nosotros ahora). ¡Que viva la memoria del legado de Ronald A. Fisher!

Referencias

citation("dplyr")
## To cite package 'dplyr' in publications use:
## 
##   Wickham H, François R, Henry L, Müller K, Vaughan D (2023). _dplyr: A
##   Grammar of Data Manipulation_. doi:10.32614/CRAN.package.dplyr
##   <https://doi.org/10.32614/CRAN.package.dplyr>, R package version
##   1.1.4, <https://CRAN.R-project.org/package=dplyr>.
## 
## A BibTeX entry for LaTeX users is
## 
##   @Manual{,
##     title = {dplyr: A Grammar of Data Manipulation},
##     author = {Hadley Wickham and Romain François and Lionel Henry and Kirill Müller and Davis Vaughan},
##     year = {2023},
##     note = {R package version 1.1.4},
##     url = {https://CRAN.R-project.org/package=dplyr},
##     doi = {10.32614/CRAN.package.dplyr},
##   }
citation("ggplot2")
## To cite ggplot2 in publications, please use
## 
##   H. Wickham. ggplot2: Elegant Graphics for Data Analysis.
##   Springer-Verlag New York, 2016.
## 
## A BibTeX entry for LaTeX users is
## 
##   @Book{,
##     author = {Hadley Wickham},
##     title = {ggplot2: Elegant Graphics for Data Analysis},
##     publisher = {Springer-Verlag New York},
##     year = {2016},
##     isbn = {978-3-319-24277-4},
##     url = {https://ggplot2.tidyverse.org},
##   }