8.2 Modelo log-lineal para tablas de contingencia

Cuando se quieren analizar las relaciones de las variables que generan totales estimados en en una tabla de contingencia (arreglo rectangular que organiza los datos en función de dos o más variables categóricas, mostrando la frecuencia o proporción de casos que caen en cada combinación de categorías) es posible usar un modelo log-lineal. Este tipo de modelos se utiliza para estudiar la asociación entre variables categóricas, controlando o teniendo en cuenta posibles efectos de otras covariables. Además, permite ajustar las asociaciones observadas en la tabla de contingencia y evaluar si estas asociaciones son estadísticamente significativas.

Los modelos loglineales en tablas de contingencia se pueden usar para determinar si hay una asociación significativa entre las variables categóricas; ajustar la asociación entre variables de interés por otras variables que podrían influir en la relación; evaluar cómo cambia la probabilidad de una categoría en una variable categórica dado un cambio en otra variable categórica; estimar la probabilidad de que un caso caiga en una categoría específica de una variable categórica dada la información de otras variables.

El término log-lineal básicamente describe el papel de la función de enlace que se utiliza en los modelos lineales generalizados. En el caso más simple, con dos variables categóricas, que inducen datos provenientes de estimaciones de conteos o proporciones en tablas de contingencia, es posible plantear el siguiente modelo estadístico:

\[ \ln(\pi_{ijk}) = \mu + \lambda_i^X + \lambda_j^Y + \lambda_{ij}^{XY} , \]

En donde \(\pi_{ijk}\) es la probabilidad condicional de ocurrencia de la combinación de categorías i, j en las variables categóricas \(X\) e \(Y\), respectivamente; \(\mu\) es el intercepto que representa el logaritmo de la probabilidad de referencia; \(\lambda_i^X\) y \(\lambda_j^Y\) son los efectos principales asociados con las categorías i y j en las variables \(X\) e \(Y\), respectivamente; finalmente, \(\lambda_{ij}^{XY}\) es el efecto de interacción entre las categorías i y j en las variables categóricas. La función logaritmo natural se utiliza comúnmente en estos modelos para transformar las probabilidades condicionales y permitir la interpretación en términos de log-odds. En resumen, el modelo describe cómo las probabilidades condicionales de eventos categóricos están relacionadas entre sí y cómo estas relaciones pueden ser influenciadas por efectos principales y de interacción en las variables categóricas \(X\) e \(Y\).

Como se ha definido en secciones y capítulos anteriores, con variables dicotómicas se pueden generar tablas de frecuencias teniendo en cuenta los factores de expansión del diseño. En R se hace usando la función svyby de la siguiente manera. Primero, se define la variable a la que se le requiere hacer la tabla (formula), luego se le indica cuál es la variable clasificadora (by). En este caso se quiere hacer una tabla de pobreza claificada por sexo. En tercer lugar se define la función que se quiere aplicar (FUN), en este caso, se quieren calcular totales por celda, por último, se define el diseño de muestreo (design).

N_pobreza_sexo <- svyby(
  formula = ~ factor(Pobreza),
  by = ~ Sex,
  FUN = svytotal,
  design = diseno,
  se = F,
  na.rm = T,
  ci = T,
  keep.var = TRUE
)

N_pobreza_sexo
Sex factor(Pobreza)0 factor(Pobreza)1 se.factor(Pobreza)0 se.factor(Pobreza)1
Female Female 650.8 356.1 33.63 36.39
Male Male 576.9 284.0 39.90 34.72

Al hacer uso de la función svyby pero usando en el argumento FUN= svymean es posible estimar proporciones como se muestra a continuación:

p_pobreza_sexo <- svyby(
  formula = ~ factor(Pobreza),
  by = ~ Sex,
  FUN = svymean,
  design = diseno,
  se = F,
  na.rm = T,
  ci = T,
  keep.var = TRUE
)

p_pobreza_sexo
Sex factor(Pobreza)0 factor(Pobreza)1 se.factor(Pobreza)0 se.factor(Pobreza)1
Female Female 0.6463 0.3537 0.0311 0.0311
Male Male 0.6701 0.3299 0.0377 0.0377

El modelo log-lineal en R se ajusta utilizando la función svyloglin para ajustar un modelo loglineal a datos de encuestas complejas utilizando el diseño de muestreo especificado en diseno. Esta función pertenece al paquete survey en R y sus argumentos son formula en donde se especifica la expresión del modelo. En este caso, el modelo incluye la variable Pobreza, la variable Sex, y la interacción entre ambas (Pobreza:Sex). La interacción indica que el efecto de Pobreza puede depender de la variable Sex y viceversa. La función svyloglin tiene en cuenta el diseño de muestreo complejo para proporcionar estimaciones más precisas y adecuadas a la estructura de la encuesta.

mod1 <- svyloglin(formula = ~ Pobreza + Sex + Pobreza:Sex,
                  design = diseno)
summary(mod1)
## Loglinear model: svyloglin(formula = ~Pobreza + Sex + Pobreza:Sex, design = diseno)
##                   coef      se         p
## Pobreza1       0.32790 0.07207 5.372e-06
## Sex1           0.08664 0.02065 2.729e-05
## Pobreza1:Sex1 -0.02640 0.02753 3.375e-01

En la salida anterior se puede observar que el estado de pobreza es independiente del sexo, como se ha mostrado en las secciones anteriores. Ahora bien, puesto que en la salida anterior se pudo observar que la interacción es no significativa, entonces, se ajusta ahora el modelo sin interacción:

mod2 <- svyloglin(formula = ~ Pobreza + Sex,
                  design = diseno)
summary(mod2)
## Loglinear model: svyloglin(formula = ~Pobreza + Sex, design = diseno)
##             coef      se         p
## Pobreza1 0.32562 0.07122 4.834e-06
## Sex1     0.07828 0.01890 3.460e-05

Por último, mediante un análisis de varianza es posible comparar los dos modelos como sigue:

anova(mod2, mod1)
## Analysis of Deviance Table
##  Model 1: y ~ Pobreza + Sex
## Model 2: y ~ Pobreza + Sex + Pobreza:Sex 
## Deviance= 1.171 p= 0.3391 
## Score= 1.169 p= 0.3394

De la anterior salida se puede concluir que la interacción no es significativa en el modelo log-lineal ajustado y que no hay evidencia para preferir un modelo sobre otro. Dado que los valores p son mayores que el nivel de significancia común de 0.05 (p=0.361 y p=0.3613), no hay evidencia suficiente para rechazar la hipótesis nula de que no hay diferencia significativa entre los dos modelos en términos de devianza. Esto sugiere que la inclusión de la interacción Pobreza:Sex en el segundo modelo no mejora significativamente el ajuste en comparación con el primer modelo.

Este estadístico se aplica cuando ya se ha elegido un modelo estadístico ( regresión lineal simple, regresión logística, entre otros).El estadístico de prueba de Wald \(\chi^{2}\) para la hipótesis nula de independencia de filas y columnas en una tabla de doble entrada se define de la siguiente manera:

\[ Q_{wald}=\hat{\boldsymbol{Y}^{t}}\left(\boldsymbol{H}\hat{\boldsymbol{V}}\left(\hat{\boldsymbol{N}}\right)\boldsymbol{H}^{t}\right)^{-1}\hat{\boldsymbol{Y}} \]

donde,

\[ \hat{\boldsymbol{Y}}=\left(\hat{N}-E\right) \]

es un vector de \(R\times C\) de diferencias entre los recuentos de celdas observadas y esperadas, esto es, \(\hat{N}_{rc}-E_{rc}\). La matriz \(\boldsymbol{H}\hat{\boldsymbol{V}}\left(\hat{\boldsymbol{N}}\right)\boldsymbol{H}^{t}\), representa la matriz de varianza y covarianza estimada para el vector de diferencias. En el caso de un diseño de muestra complejo, la matriz de varianza-covarianza de los conteos de frecuencia ponderada, \(\hat{V}\left(\hat{N}\right)\), se estima utilizando métodos de remuestreo o aproximación de Taylor. La matriz \(\boldsymbol{H}\) es la inversa de la matriz \(\boldsymbol{J}\) dada por:

\[ \boldsymbol{J}=-\left[\frac{\delta^{2}\ln PL\left(\boldsymbol{B}\right)}{\delta^{2}\boldsymbol{B}}\right] \mid \boldsymbol{B}=\hat{\boldsymbol{B}} \]

Bajo la hipótesis nula de independencia, el estadístico de wald se distribuye chi cuadrado con \(\left(R-1\right)\times\left(C-1\right)\) grados de libertad, \[ Q_{wald}\sim\chi_{\left(R-1\right)\times\left(C-1\right)}^{2} \]

La transformación F del estadístico de Wald es: \[ F_{wald}=Q_{wald}\times\frac{df-\left(R-1\right)\left(C-1\right)+1}{\left(R-1\right)\left(C-1\right)df}\sim F_{\left(R-1\right)\left(C-1\right),df-\left(R-1\right)\left(C-1\right)+1} \]

En R, para calcular el estadístico de Wald se hace similarmente al cálculo de los estadísticos anteriores usando la función summary como sigue:

summary(mod1, statistic = "Wald")
## Loglinear model: svyloglin(formula = ~Pobreza + Sex + Pobreza:Sex, design = diseno)
##                   coef      se         p
## Pobreza1       0.32790 0.07207 5.372e-06
## Sex1           0.08664 0.02065 2.729e-05
## Pobreza1:Sex1 -0.02640 0.02753 3.375e-01

Se puede concluir que no hay relación entre el estado de pobreza y el sexo. El coeficiente de la interacción es -0.02640, con un error estándar de 0.02753. El valor p asociado es 0.3375, que es mayor que el nivel de significancia común de 0.05. Esto sugiere que no hay evidencia significativa de una interacción entre la pobreza y el sexo. En este mismo sentido, el estadístico de Wald ajustado en R se se calcula similarmente al anterior y los resultados fueron similares:

summary(mod1, statistic = "adjWald")
## Loglinear model: svyloglin(formula = ~Pobreza + Sex + Pobreza:Sex, design = diseno)
##                   coef      se         p
## Pobreza1       0.32790 0.07207 5.372e-06
## Sex1           0.08664 0.02065 2.729e-05
## Pobreza1:Sex1 -0.02640 0.02753 3.375e-01