El lenguaje de programación R es una de las herramientas más robustas y utilizadas a nivel mundial para el análisis estadístico, la minería de datos y la investigación científica. Gracias a su naturaleza de código abierto, cuenta con una comunidad activa que desarrolla constantemente paquetes para optimizar el flujo de trabajo de los científicos de datos, permitiendo desde la manipulación de grandes volúmenes de información hasta la creación de gráficos de alta calidad.
En este reporte, utilizaré R y el ecosistema Quarto para realizar un análisis exploratorio inicial. El objetivo principal de este ejercicio es demostrar el poder de los reportes reproducibles, un enfoque en el que el código que genera los datos, las ecuaciones matemáticas y las interpretaciones textuales conviven en un mismo documento dinámico.
Puedes hacer clic en los botones “Code” que aparecen al inicio de cada sección para desplegar u ocultar el código fuente en R que generó los resultados.
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.2 ✔ readr 2.1.4
## ✔ forcats 1.0.0 ✔ stringr 1.5.0
## ✔ ggplot2 3.4.2 ✔ tibble 3.2.1
## ✔ lubridate 1.9.2 ✔ tidyr 1.3.0
## ✔ purrr 1.0.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
glimpse(iris)
## Rows: 150
## Columns: 5
## $ 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.…
## $ Species <fct> setosa, setosa, setosa, setosa, setosa, setosa, setosa, s…
summary(iris)
## 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
## Species
## setosa :50
## versicolor:50
## virginica :50
##
##
##
El conjunto de datos iris detalla las mediciones morfológicas de varias flores de tres especies emparentadas. En total, el dataset cuenta con r nrow(iris) filas (observaciones) y evalúa r length(unique(iris$Species)) especies distintas: setosa, versicolor y virginica. Las variables registradas incluyen la longitud y el ancho tanto de los sépalos como de los pétalos.
iris %>%
group_by(Species) %>%
summarise(
Sepal.Length_Prom = mean(Sepal.Length),
Sepal.Width_Prom = mean(Sepal.Width),
Petal.Length_Prom = mean(Petal.Length),
Petal.Width_Prom = mean(Petal.Width)
) %>%
knitr::kable(
caption = "Promedio de variables morfológicas por especie de Iris",
col.names = c("Especie", "Prom. Largo Sépalo", "Prom. Ancho Sépalo", "Prom. Largo Pétalo", "Prom. Ancho Pétalo"),
digits = 2
)
| Especie | Prom. Largo Sépalo | Prom. Ancho Sépalo | Prom. Largo Pétalo | Prom. Ancho Pétalo |
|---|---|---|---|---|
| setosa | 5.01 | 3.43 | 1.46 | 0.25 |
| versicolor | 5.94 | 2.77 | 4.26 | 1.33 |
| virginica | 6.59 | 2.97 | 5.55 | 2.03 |
Para comprender la dispersión y tendencia de la variable
Sepal.Length (Largo del Sépalo), utilizaremos los
siguientes tres estimadores estadísticos fundamentales:
Media aritmética (\(\bar{x}\)): \[\bar{x} = \frac{\sum_{i=1}^{n} x_i}{n}\]
Desviación estándar (\(s\)): \[s = \sqrt{\frac{\sum_{i=1}^{n} (x_i - \bar{x})^2}{n - 1}}\]
Coeficiente de variación (\(CV\)): \[CV = \left( \frac{s}{\bar{x}} \right) \times 100\%\]