El comando ds_group_summary()
es una herramienta valiosa dentro del ecosistema de R, específicamente del paquete descriptr
. Te permite calcular y visualizar estadísticas descriptivas clave para una variable numérica, dividiendo los datos según las categorías de otra variable. Esta guía te mostrará cómo utilizarla eficazmente en RStudio.
descriptr
.La función ds_group_summary()
pertenece al paquete descriptr
, diseñado para facilitar la generación de estadísticas descriptivas en R. Su propósito principal es tomar un conjunto de datos, seleccionar una variable numérica (continua) y una variable categórica (de agrupación), y luego calcular un resumen estadístico de la variable numérica para cada categoría presente en la variable de agrupación.
Imagina que tienes datos de ventas (variable continua) y quieres ver cómo varían según la región (variable categórica). ds_group_summary()
te daría estadísticas como la venta promedio, mediana, mínima, máxima, etc., para cada región por separado.
La forma básica de llamar a la función es:
ds_group_summary(data, group_by, cols)
Donde los parámetros significan:
data
: El objeto de datos que contiene tus variables. Debe ser un data.frame
o un tibble
.group_by
: El nombre (como cadena de texto) de la columna que contiene la variable categórica que define los grupos. Por ejemplo, "Region"
o "Tipo_Cliente"
.cols
: El nombre (como cadena de texto) de la columna que contiene la variable continua para la cual deseas calcular las estadísticas. Por ejemplo, "Ventas"
o "Edad"
.Nota: En algunas documentaciones o versiones anteriores, los parámetros podrían llamarse gvar
(variable de grupo) y cvar
(variable continua), que son equivalentes a group_by
y cols
respectivamente.
La función no solo imprime resultados, sino que devuelve un objeto especial de clase "ds_group_summary"
. Este objeto es una lista que contiene varios componentes útiles:
stats
: Un data.frame
que presenta las estadísticas descriptivas calculadas para cada nivel de la variable de agrupación. Las estadísticas se muestran típicamente como columnas y los grupos como filas (o viceversa, dependiendo del formato).tidy_stats
: Un tibble
(un formato de data frame moderno) que contiene las mismas estadísticas pero en un formato "tidy" o largo, lo cual es conveniente para manipulación posterior con paquetes como dplyr
o para visualizaciones personalizadas con ggplot2
.plotdata
: Datos preparados específicamente para ser utilizados por la función plot()
o boxplot()
asociada, facilitando la creación de gráficos de caja.La función calcula un conjunto completo de estadísticas descriptivas estándar para cada grupo. Aunque la lista exacta puede variar ligeramente, generalmente incluye:
La siguiente tabla resume algunas de las estadísticas clave que ds_group_summary
suele calcular y su significado:
Estadística | Descripción | Uso Común |
---|---|---|
Mean (Media) | Promedio aritmético de los valores. | Indica el valor central típico. Sensible a valores atípicos. |
Median (Mediana) | Valor que divide los datos ordenados en dos mitades iguales. | Indica el valor central. Robusta frente a valores atípicos. |
Standard Deviation (sd) | Medida de la dispersión de los datos alrededor de la media. | Indica cuán variables son los datos dentro del grupo. |
Variance | El cuadrado de la desviación estándar. | Medida de dispersión, útil en cálculos estadísticos. |
Minimum (min) | El valor más bajo observado. | Define el límite inferior del rango de datos. |
Maximum (max) | El valor más alto observado. | Define el límite superior del rango de datos. |
Interquartile Range (IQR) | Diferencia entre el tercer cuartil (Q3) y el primer cuartil (Q1). Rango del 50% central de los datos. | Medida de dispersión robusta. Útil para identificar outliers. |
n | Número de observaciones no faltantes. | Indica el tamaño de cada grupo. |
Skewness | Medida de la asimetría de la distribución. | Indica si la cola de la distribución es más larga a la izquierda (negativa) o derecha (positiva). |
Kurtosis | Medida del "apuntamiento" o pesadez de las colas de la distribución. | Compara la forma de la distribución con una normal. |
Una de las grandes ventajas de ds_group_summary()
es su capacidad integrada para generar gráficos de caja (boxplots). Estos gráficos son excelentes para comparar visualmente la distribución (mediana, dispersión, rango intercuartílico y posibles valores atípicos) de la variable continua entre los diferentes grupos definidos por la variable categórica.
Para generar el gráfico, simplemente aplica la función genérica plot()
o la más específica boxplot()
al objeto resultado de ds_group_summary()
:
# Supongamos que 'resultado' es el objeto devuelto por ds_group_summary()
resultado <- ds_group_summary(data = mi_df, group_by = "Categoria", cols = "Valor")
# Generar y mostrar el boxplot
plot(resultado)
# O alternativamente:
boxplot(resultado, print_plot = TRUE) # print_plot = TRUE es el valor por defecto
RStudio mostrará el gráfico resultante en la pestaña "Plots".
Visualización de estadísticas descriptivas, similar a lo que se puede lograr con boxplots generados por ds_group_summary.
descriptr
Si es la primera vez que usas el paquete, necesitas instalarlo. Abre RStudio y escribe en la consola:
install.packages("descriptr")
Una vez instalado, debes cargarlo en cada sesión de R donde quieras usarlo:
library(descriptr)
Asegúrate de tener tu conjunto de datos cargado en RStudio como un data.frame
o tibble
. Puedes usar datos incorporados en R para practicar (como mtcars
o iris
) o cargar tus propios datos usando funciones como read.csv()
, read_excel()
(del paquete readxl
), etc.
Para este ejemplo, usaremos el dataset mtcars
, que viene con R.
# Cargar el dataset mtcars (si no está ya cargado)
data(mtcars)
# Es buena idea convertir variables categóricas a factores si no lo son
mtcars$cyl <- as.factor(mtcars$cyl)
mtcars$am <- as.factor(mtcars$am)
ds_group_summary()
Ahora, aplica la función especificando tu data frame, la variable de agrupación (group_by
) y la variable continua (cols
). Calcularemos las estadísticas de millas por galón (mpg
) agrupadas por el número de cilindros (cyl
).
# Calcular estadísticas descriptivas de 'mpg' agrupadas por 'cyl'
summary_cyl <- ds_group_summary(data = mtcars, group_by = "cyl", cols = "mpg")
Puedes imprimir el objeto completo o acceder a sus componentes. Para ver la tabla de estadísticas:
# Imprimir el resumen completo (incluye un preview de las stats)
print(summary_cyl)
# Acceder específicamente al data frame de estadísticas
print(summary_cyl$stats)
# Acceder a la versión tidy
print(summary_cyl$tidy_stats)
La consola de RStudio mostrará la tabla con las estadísticas calculadas para cada grupo de cilindros (4, 6 y 8).
Para visualizar las diferencias entre los grupos:
# Generar y mostrar el boxplot
plot(summary_cyl)
El gráfico aparecerá en la ventana "Plots" de RStudio.
La agrupación es fundamental para análisis comparativos como los que facilita ds_group_summary.
Si necesitas agrupar por la combinación de niveles de dos o más variables categóricas, el paquete descriptr
ofrece una función relacionada: ds_group_summary_interact()
.
# Ejemplo: Estadísticas de 'mpg' por combinación de 'cyl' y 'am' (tipo de transmisión)
summary_interact <- ds_group_summary_interact(data = mtcars, cvar = "mpg", group_by1 = "cyl", group_by2 = "am")
print(summary_interact$stats)
plot(summary_interact) # Generará boxplots para cada combinación
El comando ds_group_summary()
es particularmente útil en diversas etapas del análisis de datos. El siguiente gráfico compara su aplicabilidad percibida en diferentes tareas analíticas comunes.
Como muestra el gráfico, ds_group_summary
brilla en la exploración inicial, la generación de informes y la visualización comparativa rápida entre grupos, siendo una herramienta eficiente para entender las características de subconjuntos de datos.
El siguiente mapa mental ilustra el flujo de trabajo y los componentes clave relacionados con la función ds_group_summary()
.
Este mapa resume cómo la función toma los datos y las variables especificadas, realiza los cálculos agrupados y produce tanto tablas de resumen como datos listos para la visualización gráfica.
El concepto de agrupar datos y luego calcular resúmenes es fundamental en el análisis de datos. Mientras que ds_group_summary
ofrece una solución específica dentro del paquete descriptr
, es útil saber que R ofrece otras herramientas potentes para tareas similares, especialmente el paquete dplyr
con sus funciones group_by()
y summarise()
. El siguiente video (en inglés) introduce estas funciones de dplyr
, que proporcionan una flexibilidad aún mayor para manipulaciones de datos más complejas.
Video introductorio a group_by() y summarise() de dplyr, conceptos relacionados con el resumen agrupado.
Entender ds_group_summary()
te da una herramienta rápida y directa para resúmenes descriptivos agrupados y boxplots, mientras que conocer alternativas como dplyr
te abre puertas a análisis más personalizados.