Estadística Descriptiva Bivariante
Estadística Descriptiva Bivariante
La estadística descriptiva bivariante analiza la relación entre dos variables donde se busca resumir y describir la información conjunta de ambos conjuntos de datos, revelando patrones y tendencias que permiten visualizar relaciones complejas. Es fundamental para identificar patrones, tendencias y tomar decisiones basadas en datos.
Nos permite analizar la relación entre los siguientes tipos de variables
- Cuantitativa vs Cuantitativa
- Cuantitativa vs Cualitativa
- Cualitativa vs Cualitativa
Datos
Datos de Clientes
El siguiente dataset contiene datos sobre la compra de cintas de correr por parte de 180 clientes de los cuales se obtuvo la siguiente información:
Product: Modelo de la cinta de correr
Age: Número de años del cliente
Gender: Género del cliente
Education: Educación en nº de años del cliente
MaritalStatus: Estado civil del cliente
Usage: Promedio de veces que el cliente desea utilizar la cinta cada semana
Fitness: Percepción de condición física del cliente (5 - muy en forma, 1 - muy poco en forma)
Ingresos: Ingresos del cliente
Miles: Millas previstos de trote
Cuantitativa vs Cuantitativa
Gráfico de Dispersión
El Proveedor podría estar interesado en analizar las millas que el cliente espera correr respecto a el ingreso, pues este cree que existe una relación entre tener un mayor ingreso y correr más millas. Un gráfico que permite observar la relación entre dos variables cuantitativas es el Gráfico de dispersión
library(ggExtra)
library(ggplot2)
graficoDisp <- ggplot(data = datos, aes(x = log(Income), y = Miles)) + #Se usa la transformación Log() para reescalar los ingresos
geom_point(col = "darkgreen", alpha = .6) + # Grafíca los puntos
labs(x = "Ingresos", y = "Millas", title = "Ingresos vs Millas") + # Nombres de los ejes y títulos
theme_light() # Tema del gráfico
graficoDispSe puede notar que existe una tendencia general en la que a medida que los ingresos de los clientes aumentan, también lo hacen las millas que esperan hacer en la cinta. Esto podría indicar que los clientes con mayores ingresos tienen expectativas más altas de uso de la cinta de correr, adicionalmente la mayoría de los puntos se agrupan en el rango inferior de ingresos y millas. Esto indica que muchos clientes con ingresos moderados esperan hacer una cantidad moderada de millas en la cinta de correr.
Cuantitativa vs Cualitativa
El realizar análisis descriptivos entre estos tipos de variables puede ayudar a segmentar o agrupar los datos de acuerdo con las categorías de la variable cualitativa, lo que puede ser útil para entender mejor los subgrupos dentro de los datos.
Box-Plot por Grupos
Este tipo de gráfico permite comparar fácilmente la distribución de una variable cuantitativa entre diferentes grupos o categorías de una variable cualitativa, además de identificar rápidamente las diferencias y similitudes en los rangos, medianas, cuartiles y posibles valores atípicos entre los grupos.
Si el proveedor de cintas esta interesado en conocer como son los ingresos de los clientes para diferentes tipos de cintas que ofrecen, este gráfico es de gran ayuda.
ggplot(data = datos, aes(x = log(Income), y = Product, fill = Product)) +
geom_boxplot() + labs(x = "Ingresos", y = "Producto", title = "Ingreso de clientes por tipo de producto" ) +
stat_boxplot(geom = "errorbar", width = 0.25) +
theme_light()El gráfico de cajas muestra que los clientes que compraron el producto TM798 tienden a tener ingresos más altos, y con alta variabilidad en comparación con los que compraron los productos TM195 y TM498. Se úede intuir que el producto TM195 y TM498 estan relativamente captados por personas con un rango de ingresos de hasta 66000$, mientras que el producto TM798 se enfoca en un grupo con mayor poder adquisitivo.
Histogramas por Grupos
Los histogramas son una herramienta esencial en el análisis descriptivo de datos, es de utilidad visualizar los histogramas para cada categoría de la variable cualitativa y de esta manera poder comparar las distribuciones entre categorías. Esto puede revelar diferencias, tendencias y patrones de los datos.
Si al proveedor esta interesado en como se distribuyen las millas que sus clientes esperan recorrer dependiendo de su género, podemos optar por hacer histogramas por grupos
ggplot(data = datos, aes(x = log(Miles), fill = Gender)) +
geom_histogram(alpha = .2, position = "identity", color = "black", bins = 8) + labs(x = "Millas", y = "Frecuencia Absoluta", title = "Millas en la cinta de correr por género del cliente" ) +
theme_light()Utilizando la función facet_wrap(), podemos generar histogramas separados para cada grupo, lo que nos permite visualizar y comparar las distribuciones de cada categoría de manera independiente. Esta técnica de visualización mejora nuestra capacidad para identificar patrones y diferencias específicas de cada grupo. En lugar de superponer múltiples histogramas en un solo gráfico, que puede resultar confuso y difícil de interpretar.
ggplot(data = datos, aes(x = log(Miles), fill = Gender)) +
geom_histogram(alpha = .2, position = "identity", color = "black", bins = 8) + labs(x = "Millas", y = "Frecuencia Absoluta", title = "Millas en la cinta de correr por género del cliente" ) +
facet_wrap(~ Gender) +
guides(fill = FALSE) +
theme_light()Gráficos de Barras con Error Estándar
En este tipo de gráficos, cada barra representa la media (o alguna otra medida de tendencia central) de un conjunto de datos, y la línea vertical que se extiende desde la parte superior de cada barra representa el error estándar de esa media. Por lo tanto, las barras de error en el gráfico proporcionan una indicación visual de cuánta variabilidad hay en las medias de las muestras.
Si el proveedor esta interesado en conocer como son los igresos Promedio de sus clientes respecto a su estado civil, este gráfico es adecuado. Para la construcción de este gráfico debemos obtener la media de los datos cuantitativos y su error Estándar para cada categoria de la variable cualitativa.
incMean <- aggregate(datos, Income ~ MaritalStatus, FUN = "mean") # Calcula el ingreso medio muestral por estado civil
incMean$sd <- aggregate(datos, Income ~ MaritalStatus, FUN = "sd")[ ,2]# Calcula la desviación estandar muestral por estado civil
colnames(incMean) <- c("Estado", "Media", "Desviación")Luego el nuevo Dataframe incMean tiene los siguientes estadísticos
El gráfico se realiza de la siguiente forma
ggplot(incMean, aes(x = Estado, y = Media, fill = Estado)) +
geom_bar(stat = "identity") +
geom_errorbar(aes(ymin = Media - Desviación, ymax = Media + Desviación), width=.2) +
labs(y = "Ingreso Medio", title = "Ingreso Medio del cliente según su Estado Civil") +
guides(fill = FALSE) +
theme_light()Se puede visualizar que el ingreso promedio entre aquellos que estan casados(Partnered) es mayor respecto a quienes estan solteros(Single), sin embargo el ingreso se desvia considerablemente respecto a su media, conociendo que la media es sensible a valores atípicos, dar por sentado que los ingresos son diferentes según el estado civil no es adecuado.
Cualitativas vs Cualitativas
A diferencia de las variables cuantitativas, las variables cualitativas capturan una amplia gama de información que no puede ser fácilmente cuantificada, como las preferencias, opiniones, comportamientos y características es decir la esencia de lo que se está estudiando de una manera que las variables cuantitativas no pueden.
Tablas de contingencia
Las tablas de contingencia o también conocidas como tablas cruzadas, permiten analizar la relación entre dos o más variables categóricas que facilitan la comparación de diferentes grupos o categorías dentro de las variables. Determinar la tabla de contingencia es un paso importante para el proceso de visualización de datos.
Construir Tablas de Contingencia en Rstudio
La función table() nos ayuda a crear tablas de contingencia. Esta función toma una o más variables cualitativas\(\backslash\)categóricas como entrada y devuelve una tabla que muestra la frecuencia de cada combinación de categorías.
Por ejemplo, si estamos interesados en estudiar el tipo de producto usado en contraste con el estado civil del cliente
(freqab <- table(datos$Product, datos$MaritalStatus))
Partnered Single
TM195 48 32
TM498 36 24
TM798 23 17
Para añadir los conteos marginales, usamos la función addmargins()
(freqabTot <- addmargins(freqab))
Partnered Single Sum
TM195 48 32 80
TM498 36 24 60
TM798 23 17 40
Sum 107 73 180
Si buscamos obtener las frecuencias relativas podemos hacer uso de la función prop.table() y en su argumento especificamos la tabla de la cual queremos obtener sus frecuencias, en este caso de prodEst.
(freqrel <- prop.table(freqab))
Partnered Single
TM195 0.26666667 0.17777778
TM498 0.20000000 0.13333333
TM798 0.12777778 0.09444444
De la misma forma, para añadir las proporciones marginales, usamos la función addmargins()
(freqrelTot <- addmargins(freqrel))
Partnered Single Sum
TM195 0.26666667 0.17777778 0.44444444
TM498 0.20000000 0.13333333 0.33333333
TM798 0.12777778 0.09444444 0.22222222
Sum 0.59444444 0.40555556 1.00000000
Gráfico de Barras Agrupado
En este tipo de gráficos cada barra representa una categoría de la variable de agrupación y la altura de la barra representa la frecuencia o proporción de la variable de interés dentro de esa categoría. Es útil para comparar grupos y entender la distribución de una variable cualitativa dentro de las categorías de otra.
Por ejemplo para visualizar los datos sobre el tipo de producto usado en contraste con el estado civil del cliente
barplot(freqab,
col = c(2:4),
beside = TRUE,
ylim = c(0, 60), ylab = "Número de Clientes", main = "Tipo de Producto usado respecto al estado civil del cliente");legend(x = "topright",legend = unique(datos$Product), fill = c(2:4))Si en lugar de las frecuencias absolutas deseamos trabajar con las frecuencias Relativas, usamos la tabla freqrel.
barplot(freqrel,
col = c(2:4),
beside = TRUE,
ylim = c(0, .35), ylab = "Proporción de Clientes", main = "Tipo de Producto usado respecto al estado civil del cliente");legend(x = "topright",legend = unique(datos$Product), fill = c(2:4))En el gráfico podemos ver que el producto TM195 es el más popular entre los clientes, tanto solteros como en pareja seguido del producto TM498 el cual también es popular, aunque la diferencia con los clientes solteros es menos marcada que en el producto TM195.