chisq.test(tabla)
Pearson's Chi-squared test with Yates' continuity correction
data: tabla
X-squared = 3.1029, df = 1, p-value = 0.07815
miércoles octubre 21, 2026 at 12:00 AM
Un estudiante quería saber si existe una asociación estadísticamente significativa en la población entre sexo y situación laboral. Para ello, construyó la siguiente tabla de contingencia. Cada celda muestra la frecuencia observada, la frecuencia esperada (entre paréntesis) y el porcentaje por fila.
| Sexo | No ocupado | Ocupado | Total |
|---|---|---|---|
| Hombre | 70 (79,2) 38,9 % |
110 (100,8) 61,1 % |
180 100,0 % |
| Mujer | 106 (96,8) 48,2 % |
114 (123,2) 51,8 % |
220 100,0 % |
| Total | 176 44,0 % |
224 56,0 % |
400 100,0 % |
Luego, realizó la prueba de \(\chi^2\) con chisq.test
Pearson's Chi-squared test with Yates' continuity correction
data: tabla
X-squared = 3.1029, df = 1, p-value = 0.07815
A partir de estos resultados, redactó el siguiente reporte:
Para evaluar si el sexo se asocia con la situación laboral se aplicó una prueba de χ² a una muestra de 400 personas. El 61,1 % de los hombres está ocupado, frente al 51,8 % de las mujeres. El estadístico obtenido fue χ² = 3,10, con 2 grados de libertad. Como el valor crítico para α = 0,05 es 1,96 y el χ² obtenido es mayor, se rechaza la hipótesis nula de independencia.
¿Qué errores encuentras en el reporte? ¿Cómo los corregirías?
Pasa el cursor sobre las partes marcadas en rojo, o haz clic en ellas, para ver cuál es el error.
Para evaluar si el sexo se asocia con la situación laboral se aplicó una prueba de χ² a una muestra de 400 personas. El 61,1 % de los hombres está ocupado, frente al 51,8 % de las mujeres. El estadístico obtenido fue χ² = 3,10, con 2 grados de libertadEn una tabla 2 × 2 los grados de libertad son (2 − 1) × (2 − 1) = 1, como indica también el output (df = 1).. Como el valor crítico para α = 0,05 es 1,961,96 es el valor crítico de la distribución z, no de χ². Para χ² con 1 grado de libertad y α = 0,05, el valor crítico es 3,84. y el χ² obtenido es mayor, se rechaza la hipótesis nulaCon el valor crítico correcto, la conclusión se invierte: χ² = 3,10 es menor que 3,84, por lo que no se rechaza H₀. Además, p = 0,078 es mayor que 0,05: ambos criterios siempre deben llevar a la misma decisión. de independencia.
Una redacción correcta podría ser:
Se aplicó una prueba de χ² para evaluar la asociación entre sexo y situación laboral en una muestra de 400 personas. El 61,1 % de los hombres está ocupado, frente al 51,8 % de las mujeres. El estadístico obtenido (χ² = 3,10, gl = 1, p = 0,078) no supera el valor crítico de 3,84, por lo que no se rechaza la hipótesis nula de independencia. Es decir, no hay evidencia suficiente para afirmar que el sexo y la situación laboral estén asociados en la población, con un 95 % de confianza.
Aunque la diferencia no es significativa, a nivel descriptivo se observa que los hombres tienen 9,3 puntos porcentuales más de ocupación que las mujeres. Tomando esto en consideración:
1. ¿Qué pasaría si la muestra fuera más grande?
Probablemente la asociación resultaría significativa. Para comprobarlo, podemos multiplicar todas las frecuencias de la tabla por 2. Así se duplica la muestra, pero los porcentajes por fila no cambian:
ocupado
sexo No ocupado Ocupado
Hombre 140 220
Mujer 212 228
ocupado
sexo No ocupado Ocupado
Hombre 38.9 61.1
Mujer 48.2 51.8
Pearson's Chi-squared test with Yates' continuity correction
data: tabla_doble
X-squared = 6.5675, df = 1, p-value = 0.01039
Con n = 800 se obtiene χ² = 6,57 y p = 0,010. Ahora sí se rechazaría H₀, aunque la diferencia de 9,3 puntos porcentuales entre hombres y mujeres es la misma.
Es decir, la significación estadística depende del tamaño de la muestra. Con una muestra muy grande, incluso una asociación débil resulta significativa; con una muestra pequeña, una asociación algo más fuerte puede no serlo.
2. ¿Existe alguna forma de medir la fuerza de la asociación?
Sí. Como el χ² y el valor p dependen del tamaño de la muestra, no sirven para describir qué tan fuerte es la asociación. Para eso se usan medidas de tamaño de efecto que no dependen de n, como el coeficiente φ (para tablas 2 × 2) y la V de Cramer (para tablas de cualquier tamaño). Ambas van de 0 (sin asociación) a 1 (asociación perfecta). En este caso, \(\varphi\) = 0,1, por lo que se considera una asociación débil.
Otro estudiante se hizo la misma pregunta y entregó un script con el siguiente código:
# 1. Cargar paquetes
pacman::p_load(sjplot, gmodels, dplyr)
# 2. Tabla de contingencia con porcentajes por fila
Encuesta %>%
sjtab(sexo ocupado, show.col.prc = TRUE)
# 3. Frecuencias esperadas
gmodels::CrossTable(encuesta$sexo, encuesta$ocupado,
expected = true)
# 4. Prueba de chi cuadrado
chisq.test(encuesta$ocupado)Sin embargo, este código contiene varios errores.
¿Puedes encontrar los errores?
Su objetivo es lograr que el código funcione en R y reproduzca exactamente los resultados del reporte.
Instrucciones:
# 0. Creamos un dataset con datos ficticios para fines del ejercicio
# sexo: Hombre / Mujer
# ocupado: 0 = No ocupado, 1 = Ocupado, -88 = No sabe / No responde
encuesta <- data.frame(
sexo = factor(rep(c("Hombre", "Mujer"),
times = c(70 + 110 + 6, 106 + 114 + 9)),
levels = c("Hombre", "Mujer")),
ocupado = c(rep(c(0, 1, -88), times = c(70, 110, 6)),
rep(c(0, 1, -88), times = c(106, 114, 9)))
)Luego copie el código del estudiante e intente ejecutarlo. Corrija el código hasta que corra hasta el final sin errores.
Verifique los resultados
Sabrá que logró reproducir el código cuando obtenga los siguientes resultados:
Si alguno de estos resultados no coincide, todavía queda algún error por corregir.
| Error | Tipo | Corrección |
|---|---|---|
sjplot |
Detiene el código: R distingue entre mayúsculas y minúsculas, por lo que no encuentra el paquete y luego no reconoce la función sjtab(). |
sjPlot |
Encuesta |
Detiene el código: «objeto no encontrado». | encuesta |
| Falta una coma entre las variables | Detiene el código: «unexpected symbol». | sjtab(sexo, ocupado, show.row.prc = TRUE) |
show.col.prc=TRUE |
No detiene el código en R, sino que calcula los porcentajes de las columnas en lugar de las filas | sjtab(sexo, ocupado, show.row.prc = TRUE) |
expected = true |
Detiene el código: R busca un objeto llamado true. |
expected = TRUE, en mayúsculas |
chisq.test() con una sola variable |
Detiene el código: «all entries of ‘x’ must be nonnegative and finite». La prueba necesita una tabla de contingencia con las dos variables, no una sola variable. | chisq.test(table(encuesta$sexo, encuesta$ocupado)) |
| El código −88 («no sabe / no responde») se trata como una categoría válida | No detiene el código en R, pero genera una tabla de 2 × 3, y el χ² se calcula con una categoría que no es válida. | Recodificar −88 como NA antes del análisis. |
Código corregido:
# 1. Cargar paquetes
pacman::p_load(sjPlot, gmodels, dplyr)
# 2. Recodificar "No sabe / No responde" como valor perdido
encuesta$ocupado[encuesta$ocupado == -88] <- NA
# 3. Tabla de contingencia con porcentajes por fila
encuesta %>%
sjtab(sexo, ocupado, show.row.prc= TRUE)
# 4. Frecuencias esperadas
gmodels::CrossTable(encuesta$sexo, encuesta$ocupado,
expected = TRUE)
# 5. Prueba de chi cuadrado
chisq.test(table(encuesta$sexo, encuesta$ocupado))
# O bien,
# Crear el objeto previamente
tabla <- table(encuesta$sexo, encuesta$ocupado)
# Luego aplicar el test sobre el objeto
chisq.test(tabla)