# cargamos los paquetes necesarios ...
::p_load(expss
pacman ,rstatix)
Introducción
Para la lectura de este documento, asumimos que se maneja el concepto y la estructura de una tabla de contingencia cuyo objetivo “es estudiar la relación entre dos o más variables de tipo nominal u ordinal”(Carrión 1989). Usaremos el barómetro sanitario del CIS de 2017 de donde obtendremos todas las tablas. Del mismo modo, usaremos el software R (R Core Team 2023) para realizar las pruebas pertinentes que serán documentadas.
Análisis de la dependencia entre categorías
La prueba Chi2 de Pearson o también llamado test de independencia se utiliza para analizar la tabla de frecuencias (es decir, tabla de contingencia) formada por dos variables con nivel de media nominal o también llamado categórico. La prueba de Chi2 evalúa si existe asociación significativa entre las categorías de las dos variables, si su relación en la tabla puede no considerarse aleatoria y por extensión que exista cierta relación (dependencia) entre las categorías que lleve a la ordenación de las distribución de frecuencias que se observan.
¿Qué significa dependencia en este contexto? pues imaginemos que tenemos una tabla de contigencia de este tipo …
#P31 SEXO - P33 ESTADO - P38 CONSUMO TABACO - P37 SALUD PROBLEMA CRONICO - P36 ESTADO SALUD GENERAL
<- suppressMessages(
data read_spss("https://drive.google.com/uc?export=download&id=11q4pg2iWwWdV9mk5P44ejoAcj5CJEfJM")
)table(Sexo=data$P33, Estado=data$P31)
Esta tabla, muestra que dos categorías de la variable género del entrevistado (hombre / mujer) y hasta cinco posibles estados civiles de la persona entrevistada. A simple vista, podemos observar una distribución natural de los datos, pero si usamos el análisis estadístico de los datos veremos más cosas.
El fundamento de la prueba implica que establezcamos un hipótesis nula (Ho) en la que indicamos que no existe dependencia entre las diferentes categorías de la variable en cabecera (columnas) y la de las filas. Si así fuera debería existir aproximadamente la misma proporción de casos en ambas columnas (según distribución marginal) y los hombres no deberían ser diferentes de las mujeres en esta relación.
Sin embargo, si lanzamos el test Chi2 de Pearson y recordando que en una inferencia buscamos que el valor de p sea menor que un valor crítico determinado (nuestro 5% o 0,05), obtenemos el siguiente resultado:
chisq.test(table(Sexo=data$P33, Estado=data$P31))
Podemos observar que la probabilidad es baja (p-value) casi cercana a 0. La implicación de este valor tan bajo (por debajo de 0,05) del p-value, nos obliga a rechazar la Ho y por tanto estimar una relación de dependencia entre las categorías. Muy bien, pero ¿dónde se materializa esa relación? analicemos los porcentajes de columna…
round(prop.table(table(Sexo=data$P33, Estado=data$P31),2)*100,1)
Visualmente, vemos porcentajes muy parejos, pero hay dos categorías que ofrecen una relación diferente de varios puntos (solteros y viudos). A nadie se le escapa que esto es transversal a todas las sociedades, las mujeres mueren después que los hombres y el estado de soltería ha sido tradicionalmente más habitual en los hombres que en las mujeres. por tanto, eso implica una fuerte relación entre categorías.
¿Pero hay algún dato más que nos acerque a esta conclusión? Chi2 se basa en la relación entre las frecuencias observadas, las que vemos en la Table 1. Sin embargo hay otro dato, denominado frecuencia esperada que se puede calcular también rápidamente que nos indica la frecuencia que cabría esperara a cada perfil 8columna) si no se produjeran esas relaciones de dependencia entre las categorías. La frecuencia esperada de cada celda se obtiene de la siguiente forma:
\[ f = \frac{total.columna * total.fila}{total.tabla} \]
<- chisq.test(table(data$P33, data$P31))
chisq $expected chisq
Comparar por diferencia la Table 1 y la Table 4, nos llevaría al concepto de residuo. Un residuo, no es más que la diferencia de lo observado menos lo esperado. Si calculamos el residuo directo (observada - esperada)
$observed-chisq$expected chisq
Pero mejor, para trabajar con ellos los podemos estandarizar.
\[ res = \frac{(freq.ob - freq.ex)} {\sqrt{freq.ex}} \]
$residuals chisq
Y si además de estandarizarlos, los ajustamos y corregimos …
$stdres chisq
Cuando vemos esta tabla, cualquier celda que tenga en valor absoluto un valor mayor que 1.96, se considera una celda que está aportando significativamente esa relación de dependencia. Fíjate que coinciden con las dos categorías que visualmente indicábamos que eran las más llamativas.
Pues bien, Chi2 se basa en este cálculo para todas y cada una de las celdas de la tabla y el valor resultante de la suma de todas las celdas, es el valor de Chi2de Pearson. Este es un método de saber qué resultados son los verdaderamente significativos en una tabla de contingencia y que debemos en el informe reseñar.
Este mismo ejercicio realizado con el paquete expss
nos arroja la siguiente salida.
%>%
data tab_cols('|'=unvr(P31)) %>%
tab_cells('|'=unvr(P33)) %>%
tab_stat_cases() %>%
tab_last_sig_cases() %>%
tab_pivot()
expss
)
Hombre | Mujer | |
---|---|---|
Casado/a | 677.0 | 711.0 |
Soltero/a | 455.0 | 362.0 |
Viudo/a | 41.0 | 149.0 |
Separado/a | 24.0 | 33.0 |
Divorciado/a | 55.0 | 42.0 |
N.C. | 4.0 | 4.0 |
#Chi-squared p-value | <0.05 (warn.) | |
#Total cases | 1256.0 | 1301.0 |
En esta tabla, la aparición de | #Chi-squared p-value | <0.05 | nos indica que se está realizando el contraste al 0.05 y que aparezca detrás el texto (warn.) nos indica que la prueba ha resultado significativa.
Bondad de ajuste Chi2 en una distribución de frecuencias
Una segunda prueba inferencial bastante característica es la prueba de bondad de ajuste de Chi2 se utiliza para comparar la distribución observada con una distribución esperada, en una situación en la que tenemos dos o más categorías en datos discretos. En otras palabras, compara múltiples proporciones observadas con las probabilidades esperadas. Es diferente de la anterior prueba porque no se busca observar una relación entre categorías de una tabla, sino que se busca comparar la distribución completa de frecuencias.
En este caso, nuestra Ho sería que no hay diferencia significativa entre la distribución observada y la teórica.
table(data$P38, data$P31)
Si ahora calculamos la misma tabla, pero en proporciones verticales (respecto a la variable de columnas)
prop.table(table(data$P38, data$P31),2)
Nuestra idea sería comparar la columna 1 (hombres) y la columna 2 (mujeres) con una distribución teórica, que podría sr por ejemplo la igualdad de proporciones. Por ejemplo, el 25% en cada aseveración acerca del tabaco.
Tanto en el primer test (hombres) como en el segundo test (mujeres) vemos que debemos rechazar la Ho los p-value
son respectivamente 0 para los hombres y 0 para las mujeres, por tanto, ambos menores que 0.05.
Test de proporciones en muestras independientes
Por otro lado, podemos tener también el interés en comparar si dos perfiles, presentan diferencias en sus porcentajes contra una misma pregunta. En nuestro caso, sería ver si en cada actitud ante el tabaco, existe una diferencia porcentual entre los hombres y las mujeres, es decir si la proporción de hombres y la de mujeres ante una misma situación fuera estadísticamente significativa en la población de la cual se ha extraído la muestra.
Dicho esto, podemos aplicar la función prop.test
de R base o alguna de las muchas variantes disponibles (por ejemplo prop_test()
del paquete rstatix
.
Con rstatix
haríamos:
<- table(data$P38, data$P31)
xtab row_wise_prop_test(xtab, p.adjust.method = "bonferroni", conf.level=0.95)
Nos está indicando que existen diferencias significativas en las filas 1, 3 y 4 de la tabla. No obstante, en nuestro caso, como el paquete que habitualmente utilizamos es el expss
, vamos a seguir con él, implementando directamente el análisis sobre la tabla de contingencia.
Como en nuestro caso, el paquete que habitualmente utilizamos es el expss vamos a seguir con él. Nótese como, al solicitar la prueba de significación, surgen unas letras en el perfil de columna; esas letras sirven para ilustrar el resultado de la prueba. La tabla sería ésta…
%>%
data tab_cols('|'=unvr(P31)) %>%
tab_cells('|'=unvr(P38)) %>%
tab_stat_cpct() %>%
tab_last_sig_cpct() %>%
tab_pivot
expss
)
Hombre | Mujer | ||
---|---|---|---|
A | B | ||
Sí, fuma a diario | 28.9 B | 19.2 | |
Sí fuma, pero no a diario | 4.1 | 3.5 | |
No fuma actualmente pero ha fumado antes | 32.2 B | 22.1 | |
No fuma ni ha fumado antes de manera habitual | 34.5 | 55.2 A | |
N.C. | 0.4 | 0.1 | |
#Total cases | 1256 | 1301 |
Al igual que con el paquete rstatix
, expss
también muestra que hay hasta 3 diferencias significativas:
- Los hombres que sí fuman a diario, presentan una proporción significativamente diferente que en las mujeres, y además esa proporción es más alta en los hombres, y por eso pone una B en la celda correspondiente de la columna A.
- Los hombres que no fuman actualmente, presentan una proporción significativamente diferente que en las mujeres, y además esa proporción es más alta en los hombres, y por eso pone una B en la celda correspondiente de la columna A.
- Las mujeres que no fuman ni han fumado antes de manera habitual, presentan una proporción significativamente diferente que en los hombres, y además esa proporción es más alta en las mujeres, y por eso pone una A en la celda correspondiente de la columna B.
Parece evidente una extensión y se deduce que si A es significativamente diferente de B, B también lo es de A pero en sentido inverso; por eso en cada par de comparaciones la letra siempre aparece en aquella celda de la columna donde esa celda es mayor. De esta forma la tabla se presenta más limpia y más entendible.
Test de medias en muestras independientes
Al igual que en el apartado anterior el objetivo es determinar si existen o no diferencias entre los grupos que se están testando, teniendo como hipótesis nula (Ho) que las medias de los grupos son iguales. En nuestro ejemplo, hemos tomado el campo que indica el sexo del entrevistado y dos variables diferentes, el Estado de salud en general (P36) y también Tenencia de algún problema de salud crónico (P37). Sobre esta relación se calculan las medias y se le indica que requerimos el test. Se asume que los grupos son independientes, que existe normalidad y que las varianzas de los grupos son iguales.
Si este ejercicio lo realizamos con el paquete rstatix
el resultado es…
%>% t_test(P36 ~ P31) data
%>% t_test(P37 ~ P31) data
Para hacerlo con expss
creamos la tabla y en ella solicitamos la realización del test t de medias.
%>%
data tab_cols('|'=unvr(P31)) %>%
tab_cells('|'=unvr(P36)) %>%
tab_stat_mean_sd_n(label=var_lab(data$P36)) %>%
tab_last_sig_means(keep='means') %>%
tab_cells('|'=unvr(P37)) %>%
tab_stat_mean_sd_n(label=var_lab(data$P37)) %>%
tab_last_sig_means(keep='means') %>%
tab_pivot
expss
)
Hombre | Mujer | ||
---|---|---|---|
A | B | ||
Mean | |||
Estado de salud en general | 2.1 | 2.2 A | |
Tenencia de algún problema de salud crónico | 1.7 | 1.7 |
Se puede observar que la salida es igual a la de la prueba Z en cuanto a estructura y composición, lo que hace muy sencilla su lectura e interpretación. Se rotulan las columnas con las letras A, B … y las que sean necesarias, y posteriormente se muestra (por defecto) la letra de la columna con la que la media de la columna en la que se ubica la media presenta diferencias positivas (es mayor). Podemos por tanto observar, que en la población de la que se ha extraído la muestra, se puede afirmar que la percepción acerca del Estado de salud en general es mejor en las mujeres que en los hombres. Del mismo modo, esta diferencia no se hace evidente cuando analizamos la Tenencia de algún problema de salud crónico.
Conclusión
Cerramos aquí este documento, básico, muy básico, donde se explican los fundamentos de la inferencia básica paramétrica realizada en las tablas de contingencia que se obtienen de la explotación de datos provenientes de encuesta. Son pruebas inferenciales, sencillas y muy explicativas de la relación que se expresa por la distribución de resultados en las tablas de contingencia.
Y hasta aquí este documento, que espero sea de utilidad para aquellos que os enfrentéis a la tarea de explotación de datos de encuesta.