Estadística Descriptiva Bivariante

Author

Zúñiga Guamán P.

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

graficoDisp

Se 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.