Saltar al contenido principal

Prueba Chi-Cuadrado en R: Guía completa

Aprende a crear una tabla de contingencia y a realizar pruebas chi-cuadrado en R utilizando la función chisq.test(). Descubre aplicaciones prácticas e interpreta los resultados con confianza.
Actualizado 16 ene 2025  · 8 min de lectura

Comprender cómo analizar e interpretar los datos es una habilidad inestimable para los profesionales de los datos. Hay muchas pruebas estadísticas diferentes que se utilizan por distintos motivos. La prueba chi-cuadrado es una prueba común que se utiliza en un contexto específico: cuando necesitas determinar asociaciones entre variables categóricas. Esto es algo habitual que los investigadores necesitan saber, y por eso la prueba chi cuadrado es una de las pruebas estadísticas más utilizadas.

Este tutorial presenta la prueba chi-cuadrado, sus diferentes tipos y los pasos para realizarla utilizando el lenguaje de programación R. Al final de esta guía, estarás equipado con los conocimientos y habilidades necesarios para aplicar con confianza la prueba de ji-cuadrado a tus propios datos e interpretar los resultados.

Si eres nuevo en el lenguaje de programación R, tal vez quieras echar un vistazo a la carrera de Analista de Datos con R para principiantes, para familiarizarte con el lenguaje a través de ejemplos prácticos de análisis de datos.

Pasos principales: Cómo realizar una prueba Chi-cuadrado en R

Para realizar una prueba chi-cuadrado en R, sigue estos pasos:

  • Paso 1: Prepara tus datos en formato de tabla de contingencia.

  • Paso 2: Utiliza la función chisq.test() para aplicar la prueba chi-cuadrado.

Aquí tienes un ejemplo rápido que lo demuestra utilizando datos de muestra:

# Step 1: Creating a contingency table
data <- matrix(c(10, 20, 30, 40), nrow = 2)

# Step 2: Applying the chi-square test function
result <- chisq.test(data)

# Viewing the result
print(result)

Este fragmento de código crea una tabla de contingencia 2x2 y realiza la prueba chi-cuadrado. El resultado mostrará el estadístico de la prueba, los grados de libertad y el valor p.

¿Qué es una prueba Chi-cuadrado?

Una prueba chi-cuadrado es una prueba estadística utilizada para determinar si existe una asociación significativa entre variables categóricas. Compara las frecuencias observadas de ocurrencias en diferentes categorías con las frecuencias esperadas si no hubiera asociaciones entre las variables.

Tipos de pruebas chi-cuadrado

Hay dos tipos principales de pruebas chi-cuadrado:

  1. Prueba Chi-cuadrado de independencia: Ayuda a determinar si las variables son independientes o si existe una relación entre ellas. Por ejemplo, podrías querer saber si el sexo afecta a la preferencia de voto.
  2. Prueba Chi-cuadrado de bondad de ajuste: Esta prueba comprueba si los datos de la muestra se ajustan a una distribución poblacional. Por ejemplo, puedes querer ver si un dado es justo comparando la frecuencia observada de cada cara con la frecuencia esperada si el dado fuera justo.

Supuestos de la prueba chi-cuadrado

Para garantizar la validez de la prueba chi-cuadrado, deben cumplirse ciertos supuestos:

  • Los datos deben presentarse en forma de frecuencias o recuentos de casos.
  • Las categorías deben ser mutuamente excluyentes.
  • Para la prueba chi-cuadrado de independencia, la frecuencia esperada en cada categoría debe ser al menos 5.
  • La prueba de bondad de ajuste espera una frecuencia de al menos 1, sin que más del 20% de las frecuencias esperadas sean inferiores a 5.

Aplicaciones prácticas de las pruebas chi-cuadrado

Las pruebas de Chi-cuadrado se utilizan mucho en el mundo académico y en la industria, especialmente para probar hipótesis sobre la independencia de variables categóricas. Algunas de estas aplicaciones prácticas son:

  • Estudio de mercado: Algunas aplicaciones incluyen analizar si las preferencias de los clientes por un producto varían en función de los distintos grupos de edad y niveles de ingresos, o determinar si distintas campañas de marketing son igual de eficaces en los distintos segmentos demográficos.
  • Investigación médica: Casos de uso habituales son el estudio de la asociación entre los factores del estilo de vida (p. ej., fumar, hacer ejercicio) y la incidencia de enfermedades (p. ej., cáncer de pulmón, cardiopatías) o la evaluación de si diferentes grupos de tratamiento muestran diferentes tasas de recuperación en los ensayos clínicos.
  • Control de calidad: Se utiliza habitualmente para examinar si los defectos de los productos son independientes del proceso de fabricación o de líneas de producción concretas y para comparar la calidad de los productos de distintos proveedores y determinar si hay una diferencia significativa en las tasas de defectos.
  • Educación: Las pruebas suelen utilizarse para determinar si hay una diferencia significativa en los porcentajes de aprobados entre alumnos de distintos centros o métodos de enseñanza y para evaluar si la introducción de un nuevo plan de estudios mejora el rendimiento de los alumnos en todas las asignaturas.

Cabe señalar que éstas son algunas de las muchas aplicaciones en el mundo académico y en la industria, y que pueden ampliarse a otros ámbitos y campos.

Realizar una prueba Chi-cuadrado en R: Un ejemplo

La mejor forma de aprender a realizar pruebas de ji-cuadrado es mediante un ejemplo en el que apliquemos la prueba a un conjunto de datos. Utilizaremos el conjunto de datos Niveles de anemia en Nigeria, que puedes descargar de Kaggle. El conjunto de datos procede de las Encuestas Demográficas y de Salud de Nigeria de 2018. Explora el impacto de la edad de las madres y los factores socioeconómicos en los niveles de anemia entre los niños de 0 a 59 meses en los 36 estados de Nigeria y el Territorio de la Capital Federal. 

Carguemos el conjunto de datos en R y examinemos una muestra para comprender mejor los datos. Para leer archivos CSV en R, necesitarás instalar un paquete llamado readr.

# Load the necessary libraries
install.packages('readr')
library(readr)

# Load the dataset from the CSV file
dataset <- read_csv("children anemia.csv")

# Display the first few rows of the dataset
head(dataset)

# Rename a column
colnames(dataset)[colnames(dataset) == "Anemia level...8"] <- "Anemia level"

# Display the column names
colnames(dataset)

A continuación veremos las columnas del conjunto de datos:

datos en RColumnas de un conjunto de Columnas del conjunto de datos. Imagen del autor.

Entre ellas, elegiremos estas dos columnas para evaluar si existe una relación entre ellas.

  • Nivel educativo más alto: Esta columna clasifica la educación de la madre en "Sin educación", "Primaria", "Secundaria" y "Superior".

  • Nivel de anemia: Esta columna indica el nivel de anemia del niño, como "Moderada", "Grave" o "Sin anemia".

Paso 1: Crear una tabla de contingencia

Una tabla de contingencia, también conocida como tabulación cruzada o tabulación cruzada, muestra cómo se distribuyen los valores de dos o más variables categóricas en sus respectivas categorías. 

Seleccionaremos las dos columnas seleccionadas del conjunto de datos y las convertiremos al formato de tabla de contingencia requerido. Para estas operaciones utilizaremos un paquete de uso común llamado dplyr.

# Install and load the package
install.packages('dplyr')

library(dplyr)

# Select the columns of interest
selected_data <- dataset %>% select(Highest educational level, Anemia level)

# Create a contingency table for Highest educational level and Anemia level
contingency_table <- table(selected_data$Highest educational level, selected_data$Anemia level)

# View the contingency table
print(contingency_table)

La tabla de contingencia resultante tiene este aspecto:

Tabla de contingencia en R

Tabla de contingencias. Imagen del autor.

Paso 2: Aplicando la función de prueba chi-cuadrado

Como tenemos el conjunto de datos en el formato de tabla de contingencia que queremos, podemos aplicar simplemente la función chisq.test(). No es necesario cargar ninguna biblioteca para llamar a esta función, ya que está disponible en el paquete base de R.

# Perform chi-square test
chi_square_test <- chisq.test(contingency_table)

# View the results
print(chi_square_test)

La salida tendrá el siguiente aspecto:

La prueba chi-cuadrado de Pearson da como resultado R

Resultados de la prueba chi-cuadrado de Pearson. Imagen del autor.

Eso es. Hemos realizado la prueba chi-cuadrado en dos sencillos pasos. A continuación, ¿cómo interpretamos los resultados?

Formulación de hipótesis e interpretación de los resultados

Las hipótesis exponen claramente lo que estamos probando y establecen un marco para interpretar los resultados. En términos más sencillos, la hipótesis que formulamos nos da una pregunta clara a la que responder, y la prueba ji-cuadrado nos ayuda a determinar si los datos observados apoyan o refutan la afirmación.

Hipótesis para la prueba chi-cuadrado

Al realizar una prueba chi-cuadrado, solemos establecer dos hipótesis:

  • Hipótesis nula (H0): La hipótesis nula afirma que no existe asociación entre las dos variables categóricas sometidas a prueba. Supone que cualquier diferencia observada en los datos se debe al azar y no a una relación verdadera.
  • Hipótesis alternativa (H1): La hipótesis alternativa afirma que existe una asociación significativa entre las dos variables. Sugiere que las diferencias observadas no se deben al azar y que existe una relación entre las variables.

Aplicando los conceptos de hipótesis nula y alternativa a las variables sobre las que hemos realizado la prueba chi-cuadrado, podemos formular la hipótesis como:

  • Hipótesis nula (H0): La hipótesis nula es que no existe asociación entre el nivel educativo más alto de la madre y el nivel de anemia del niño. Esto significa que suponemos que la probabilidad de que un niño tenga anemia es independiente del nivel educativo de la madre.
  • Hipótesis alternativa (H1): La hipótesis alternativa es que existe una asociación entre el nivel educativo más alto de la madre y el nivel de anemia del niño. Esto implica que el nivel educativo de la madre afecta a la probabilidad de que el niño tenga anemia.

Interpretar el resultado de la prueba chi-cuadrado

Ahora que hemos formulado una hipótesis, podemos interpretar los resultados en el contexto de la hipótesis:

  • Estadística Chi-cuadrado (X-cuadrado): El estadístico de la prueba chi-cuadrado es 142.86. Este valor mide la discrepancia entre las frecuencias observadas en la tabla de contingencia y las frecuencias que esperaríamos si no hubiera asociaciones entre las variables.

  • Grados de libertad (df): El grado de libertad de esta prueba es 9. Se calcula como (número de filas - 1) * (número de columnas - 1).

  • Valor P: El valor p es inferior a 2.2e-16, que es extremadamente pequeño. Este valor p indica la probabilidad de observar un estadístico chi-cuadrado tan extremo o más que 142.86 si la hipótesis nula fuera cierta.

Rechazamos la hipótesis nula porque el valor p es mucho menor que los niveles de significación habituales (por ejemplo, 0,05, 0,01 o incluso 0,001). Esto proporciona pruebas sólidas de una asociación significativa entre el nivel educativo de la madre y el estado de anemia del niño. En otras palabras, los resultados de la prueba chi-cuadrado indican que la probabilidad de que un niño tenga anemia está significativamente asociada al nivel de estudios de la madre.

Análisis adicionales: Acceder a los valores de chisq.test()

Más allá de la comprobación de hipótesis, podemos recuperar determinados valores del objeto devuelto por la función chisq.test():

Recuentos observados

Representan los recuentos reales de niños con distintos niveles de anemia según el nivel educativo de la madre. Los recuentos observados se pueden recuperar con el siguiente código:

# Observed counts
observed_counts <- chi_square_test$observed

print(observed_counts)

El resultado es el siguiente:

Recuentos observados.

Recuentos observados. Imagen del autor.

Recuentos previstos

Estos recuentos se calculan bajo el supuesto de que no existe asociación entre el nivel educativo de la madre y el estado de anemia del niño. Los recuentos esperados se pueden recuperar con el siguiente código:

# Expected counts
expected_counts <- chi_square_test$expected
print(round(expected_counts, 2))

El resultado es el siguiente:

Recuentos previstos.

Recuentos previstos. Imagen del autor.

Residuos de Pearson

Estos residuos ayudan a identificar las mayores discrepancias entre los recuentos observados y los esperados, indicando qué celdas contribuyen más a la estadística ji-cuadrado. Los residuos de Pearson se pueden recuperar con el siguiente código:

# Pearson residuals
pearson_residuals <- chi_square_test$residuals
print(round(pearson_residuals, 2))

El resultado es el siguiente:

Salida de residuos.

Salida de residuos. Imagen del autor.

Intentemos comprender qué significan estas cifras residuales:

  • Residuos positivos: Los residuos positivos indican que el recuento observado es superior al esperado. Por ejemplo, un residuo de 5.96 para "No anémico" en el grupo de educación "Superior" significa que hay significativamente más niños no anémicos de lo esperado entre las madres con educación superior.

  • Residuos negativos: Los residuos negativos indican que el recuento observado es inferior al esperado. Por ejemplo, un residuo de -5.74 para la anemia "Moderada" en el grupo de educación "Superior" sugiere que hay muchos menos niños moderadamente anémicos de lo esperado entre las madres con educación superior.

  • Residuos grandes: Los residuos positivos o negativos grandes sugieren una desviación significativa de lo esperado. Estas células son las que más contribuyen a la estadística chi-cuadrado. Por ejemplo, el gran residuo positivo para "No anémico" en el grupo de educación "Superior" y el gran residuo negativo para anemia "Moderada" en el mismo grupo indican fuertes desviaciones en los niveles de anemia de los niños según el nivel educativo de la madre.

  • Residuos pequeños: Los residuos pequeños (próximos a 0) sugieren que los recuentos observados se aproximan a los recuentos esperados, lo que indica una desviación más débil. Por ejemplo, los residuos de la educación "Primaria" en todos los niveles de anemia son relativamente menores, lo que indica que los recuentos observados y esperados están más próximos para este grupo.

Diagrama de contribución

A partir de los valores extraídos anteriormente, la contribución de cada celda al estadístico chi-cuadrado puede calcularse mediante el código siguiente y convertirse en un porcentaje:

# Calculate contribution to chi-square statistic
contributions <- (observed_counts - expected_counts)^2 / expected_counts

# Calculate percentage contributions
total_chi_square <- chi_square_test$statistic
percentage_contributions <- 100 * contributions / total_chi_square

# Print percentage contributions
print("Percentage Contributions:")
print(round(percentage_contributions, 2))

El resultado que veremos es el siguiente:

.Contribuciones porcentualesContribuciones porcentuales. Imagen del autor.

 

La contribución calculada puede visualizarse como un mapa de calor. Para ello utilizaremos un paquete llamado pheatmap, después de instalarlo y cargarlo.

# Install and load heatmap package
install.packages("pheatmap")
library(heatmap)

# Create heatmap for percentage contributions
pheatmap(percentage_contributions,
        display_numbers = TRUE,
        cluster_rows = FALSE,
        cluster_cols = FALSE,
        main = "Percentage Contribution to Chi-Square Statistic")

El resultado es el siguiente

en RContribución porcentual al mapa de calor del estadístico chi-cuadrado Contribución porcentual al mapa de calor del estadístico chi-cuadrado. Imagen del autor.

Un mapa de calor como el anterior con las contribuciones puede ser útil si decides realizar un análisis posterior para comprender qué tipo de asociaciones existen después de averiguar que existen asociaciones basándonos en los resultados de la prueba ji-cuadrado.

Conclusión

Este tutorial te ha presentado la prueba chi-cuadrado, sus distintos tipos y los supuestos subyacentes. Además, aprendimos a realizar la prueba y a interpretar los resultados en R con visualización añadida mediante un ejemplo. 

Las pruebas chi-cuadrado se utilizan habitualmente en la comprobación de hipótesis y, en general, en estadística. Considera la posibilidad de realizar uno de estos cursos para consolidar tus conocimientos de análisis de datos y estadística con R:

Domina la IA para empresas

Aprende a extraer valor empresarial de la IA y los LLM.

Avanzar en mi carrera

Arunn Thevapalan's photo
Author
Arunn Thevapalan
LinkedIn
Twitter

Como científico de datos senior, diseño, desarrollo e implanto soluciones de aprendizaje automático a gran escala para ayudar a las empresas a tomar mejores decisiones basadas en datos. Como escritora de ciencia de datos, comparto aprendizajes, consejos profesionales y tutoriales prácticos en profundidad.

Preguntas frecuentes

¿Cuál es la finalidad de una prueba chi-cuadrado?

La prueba chi-cuadrado se utiliza para determinar si existe una asociación significativa entre dos variables categóricas.

¿Se puede utilizar la prueba chi-cuadrado con muestras de pequeño tamaño?

Generalmente no se recomienda porque la prueba requiere una frecuencia esperada de al menos 5 en cada célula para producir resultados fiables.

¿Qué indican los residuos de Pearson en una prueba chi-cuadrado?

Los residuos de Pearson muestran en qué medida contribuye cada celda de la tabla de contingencia al estadístico general ji-cuadrado. Los valores positivos indican recuentos observados superiores a los esperados, y los negativos, inferiores.

¿Cómo puedo crear una tabla de contingencia en R para la prueba ji-cuadrado?

Utiliza las funciones table() o xtabs() para crear una tabla de contingencia a partir de tus variables categóricas.

¿Qué ocurre si mis datos no cumplen los supuestos de una prueba ji-cuadrado?

Considera la posibilidad de utilizar la Prueba Exacta de Fisher, que es más apropiada para muestras de pequeño tamaño o cuando las frecuencias esperadas son bajas.

Temas

Aprende con DataCamp

Certificación disponible

curso

Pruebas de hipótesis en R

4 hr
24.5K
Aprende cómo y cuándo utilizar las pruebas de hipótesis en R, incluidas las pruebas t, las pruebas de proporción y las pruebas chi-cuadrado.
Ver detallesRight Arrow
Comienza el curso
Ver másRight Arrow