expss (III): El Poder de la Inferencia con Pruebas de Significación en Tablas

Author

Roberto Gil-Saura

Published

May 3, 2025

Introducción: Dando sentido a las diferencias

¡Bienvenido al post final de nuestra serie sobre expss! A lo largo de este viaje, hemos pasado de crear tablas de frecuencias básicas a construir banners complejos y multi-estadístico, replicando la potencia de las herramientas de software especializadas.

Ya sabes cómo describir tus datos de forma elegante y profesional. Pero nos falta el paso más importante del análisis: la inferencia. Cuando observas que el 25% de los Hombres están “Muy satisfechos” y el 29% de las Mujeres también, ¿es esa diferencia “real”? ¿O podría ser simplemente una fluctuación debida al azar del muestreo?

Aquí es donde expss revela su verdadera magia. A diferencia de otros paquetes de R donde tienes que ejecutar pruebas estadísticas por separado, expss te permite integrar las pruebas de significación directamente en tus tablas. Esto no solo ahorra tiempo, sino que presenta los resultados de una manera visual e intuitiva que es el estándar de oro en la investigación de mercados.

En este post, aprenderás a:

  1. Realizar pruebas de proporciones (pruebas Z) para comparar porcentajes entre grupos.
  2. Realizar pruebas de medias (pruebas T) para comparar medias entre grupos.
  3. Construir una tabla resumen avanzada que combina ambos tipos de análisis.

Preparación: Nuestros datos y librerías

Continuaremos con el mismo dataset que hemos estado utilizando, que ya incluye variables categóricas y una continua. Y, como siempre, cargaremos las librerías en el orden correcto.

Code
# Cargar las librerías en el orden recomendado
library(dplyr)
library(expss)

# Crear un conjunto de datos simulado
set.seed(42)
datos_encuesta <- tibble(
  ID_Cliente = 1:500,
  Genero = sample(c("Hombre", "Mujer"), 500, replace = TRUE, prob = c(0.48, 0.52)),
  Plan_Contratado = sample(c("Básico", "Premium", "Familia"), 500, replace = TRUE, prob = c(0.5, 0.3, 0.2)),
  Satisfaccion = sample(c("Muy insatisfecho", "Insatisfecho", "Neutral", "Satisfecho", "Muy satisfecho"), 500, replace = TRUE),
  Gasto_Mensual = rnorm(500, mean = 45, sd = 15)
) %>%
  apply_labels(
    Genero = "Género del cliente",
    Plan_Contratado = "Plan de servicio contratado",
    Satisfaccion = "Satisfacción General con el Servicio",
    Gasto_Mensual = "Gasto Mensual Medio (€)"
  )

1. Pruebas de proporciones en columnas (Prueba Z)

Esta es la prueba más común en el análisis de datos de encuestas. Se utiliza para comparar los porcentajes de una variable categórica a través de diferentes grupos.

Pregunta de Negocio: ¿Existen diferencias significativas en los niveles de Satisfaccion según el Plan_Contratado?

Como aprendimos, la forma correcta de aplicar la prueba en una cadena %>% es usar tab_last_sig_cpct() antes de tab_pivot().

Code
datos_encuesta %>%
  tab_cells(Satisfaccion) %>%
  tab_cols(total(), Plan_Contratado) %>%
  tab_stat_cpct() %>%
  tab_last_sig_cpct(sig_level = 0.05) %>% # Aplicamos el test al último estadístico calculado (% Columna)
  tab_pivot()
 #Total     Plan de servicio contratado 
   Básico     Familia     Premium 
   A     B     C 
 Satisfacción General con el Servicio 
   Insatisfecho  21.8    19.8     25.3     23.1  
   Muy insatisfecho  20.4    25.6 B C   12.6     16.1  
   Muy satisfecho  18.8    17.9     20.0     19.6  
   Neutral  20.8    19.8     29.5 C   16.8  
   Satisfecho  18.2    16.8     12.6     24.5 B
   #Total cases  500    262     95     143  

Interpretando la salida de letras

  1. Columnas identificadas: expss asigna una letra a cada columna: (A) para “Básico”, (B) para “Premium” y (C) para “Familia”.
  2. La regla: En la fila “Muy Insatisfecho”, el plan “Básico” (25.6%) tiene unas letras “B C”. Esto significa que es estadísticamente superior al 12.6% del plan “Familia” (columna A) y el 16.1% del plan “Premium” (columna B).

2. Pruebas de medias en columnas (Prueba T)

La misma lógica se aplica para comparar las medias de una variable continua, pero usando tab_last_sig_means().

Pregunta de Negocio: ¿El Gasto_Mensual medio difiere significativamente entre los distintos Plan_Contratado?

Code
datos_encuesta %>%
  tab_cells(Gasto_Mensual) %>%
  tab_cols(total(), Plan_Contratado) %>%
  tab_stat_mean_sd_n() %>%
  tab_last_sig_means(sig_level = 0.05) %>% # Aplicamos el test de medias
  tab_pivot()
Warning in as.data.frame.numeric(x[[i]], optional = TRUE, nm = "x[[i]]", :
Direct call of 'as.data.frame.numeric()' is deprecated.  Use
'as.data.frame.vector()' or 'as.data.frame()' instead
 #Total     Plan de servicio contratado 
   Básico     Familia     Premium 
   A     B     C 
 Gasto Mensual Medio (€) 
   Mean  46.3    47.6 B   43.0    45.9 
   Std. dev.  15.3    15.0     14.6    16.0 
   Unw. valid N  500.0    262.0     95.0    143.0 

Interpretando la salida de letras para medias

  • La media de gasto del plan “Básico” (47.6€, columna A) es estadísticamente superior a la del plan “Familia” (letra “B”).

Analicemos lo que expss ha hecho:

  1. Apilamiento Inteligente: Ha apilado la variable Satisfaccion y Gasto_Mensual en las filas.
  2. Cálculo Condicional: Ha calculado % Columna solo para Satisfaccion (porque es una variable categórica) y Media solo para Gasto_Mensual (porque es continua).
  3. Pruebas Específicas: Ha aplicado la prueba de proporciones (Prueba Z) únicamente a los resultados de Satisfaccion y la prueba de medias (Prueba T) únicamente al resultado de Gasto_Mensual.

Estas tablas son un ejemplo perfecto de un resultado final de alta calidad, listo para ser incluido en cualquier informe de investigación.

Conclusión: De los datos a la decisión

Hemos completado la guía con expss. Has pasado de ser un espectador a ser un analista capaz de construir tablas que no solo describen, sino que evalúan.

Con las herramientas de este post, ya puedes: * Identificar diferencias reales en proporciones y medias. * Combinar diferentes tipos de análisis en una única vista integrada. * Tomar decisiones de negocio basadas en evidencia sólida.

expss es un paquete profundo, pero con lo aprendido en esta serie, ya tienes el 90% de lo que necesitas para realizar análisis de encuestas de nivel profesional en R.

Referencias

Demin, G. (2024). expss: Tables with Labels, Weights, Multiple Response and Significance Testing. R package version 0.11.6. https://CRAN.R-project.org/package=expss

Wickham, H., et al. (2019). Welcome to the tidyverse. Journal of Open Source Software, 4(43), 1686. https://doi.org/10.21105/joss.01686


Este post es parte de la serie “Tablas Profesionales en R: La Guía Definitiva del Paquete expss para Investigadores de Mercado”.