6 votos

¿Cómo interpretar una tabla de contingencia bidimensional?

Estoy tratando de entender cómo interpretar los modelos log-lineales para las tablas de contingencia, ajustados por medio de GLMs de Poisson.

Consideremos este ejemplo de CAR (Fox y Weisberg, 2011, p. 252).

require(car)
data(AMSsurvey)
(tab.sex.citizen <- xtabs(count ~ sex + citizen, data=AMSsurvey))

Cediendo:

        citizen
sex      Non-US  US
  Female    260 202
  Male      501 467

A continuación, ajustamos el modelo de independencia (mutua):

AMS2 <- as.data.frame(tab.sex.citizen)
(phd.mod.indep <- glm(Freq ~ sex + citizen, family=poisson, data=AMS2))
pchisq(2.57, df=1, lower.tail=FALSE)

Saliendo:

> (phd.mod.indep <- glm(Freq ~ sex + citizen, family=poisson, data=AMS2))

Call:  glm(formula = Freq ~ sex + citizen, family = poisson, data = AMS2)

Coefficients:
(Intercept)      sexMale    citizenUS  
     5.5048       0.7397      -0.1288  

Degrees of Freedom: 3 Total (i.e. Null);  1 Residual
Null Deviance:      191.5 
Residual Deviance: 2.572    AIC: 39.16
> pchisq(2.57, df=1, lower.tail=FALSE)
[1] 0.1089077

El valor p es cercano a 0,1, lo que indica una evidencia débil para rechazar la independencia. Sin embargo asuma que que tenemos pruebas suficientes para rechazar la NULIDAD (es decir, para nuestros fines, el valor p de 0,10 es indicativo de una asociación entre las dos variables).

Pregunta : ¿Cómo interpretamos entonces este modelo loglineal?

(¿Ajustamos el modelo saturado (es decir update(phd.mod.indep, . ~ . + sex:citizen) )? ¿Interpretamos los coeficientes de regresión estimados? En CAR se detienen en este punto, debido a la débil evidencia para rechazar el NULL, pero estoy interesado en entender la mecánica de la interpretación de este simple modelo log-lineal como si la "interacción" fueran significativas...)

4voto

Sean Hanley Puntos 2428

En general, una tabla de contingencia de 2 vías no tiene mucho que ver, pero usted está tratando de desentrañar esto con tal nivel de detalle que están surgiendo algunas confusiones. Normalmente, con una tabla de contingencia simple como ésta, la gente sólo quiere saber si las variables ( sex y citizen ) son independientes. Para evaluarlo, puede realizar una prueba de chi-cuadrado:

chisq.test(tab.sex.citizen)
#  Pearson's Chi-squared test with Yates' continuity correction
# 
# data:  tab.sex.citizen
# X-squared = 2.389, df = 1, p-value = 0.1222

Puede realizar una versión de ratio de verosimilitud de esta prueba (la prueba de chi-cuadrado anterior es una prueba de puntuación), realizando una prueba de modelo anidado del GLM de Poisson que ejecutó contra el modelo completo (saturado):

phd.mod.indep <- glm(Freq ~ sex + citizen, family=poisson, data=AMS2)
phd.mod.sat   <- glm(Freq ~ sex * citizen, family=poisson, data=AMS2)
anova(phd.mod.indep, phd.mod.sat, test="LRT")
# Analysis of Deviance Table
# 
# Model 1: Freq ~ sex + citizen
# Model 2: Freq ~ sex * citizen
#   Resid. Df Resid. Dev Df Deviance Pr(>Chi)
# 1         1     2.5721                     
# 2         0     0.0000  1   2.5721   0.1088
deviance(phd.mod.indep)                                        # [1] 2.572123
deviance(phd.mod.sat)                                          # [1] 3.308465e-14
1-pchisq(deviance(phd.mod.indep)-deviance(phd.mod.sat), df=1)  # [1] 0.1087617

También puede obtener la prueba de Wald del término de interacción (que es la prueba de independencia):

summary(phd.mod.sat)
# ...
# Coefficients:
#                   Estimate Std. Error z value Pr(>|z|)    
# (Intercept)        5.56068    0.06202  89.663  < 2e-16 ***
# sexMale            0.65592    0.07643   8.582  < 2e-16 ***
# citizenUS         -0.25241    0.09379  -2.691  0.00712 ** 
# sexMale:citizenUS  0.18214    0.11373   1.602  0.10926    
# ...
#     Null deviance: 1.9148e+02  on 3  degrees of freedom
# Residual deviance: 3.3085e-14  on 0  degrees of freedom
# AIC: 38.586
# ...

(Para leer sobre las pruebas de puntuación frente a las de Wald y las de razón de verosimilitud, consulte mi respuesta aquí: ¿Por qué mis valores p difieren entre el resultado de la regresión logística, la prueba de chi-cuadrado y el intervalo de confianza para la OR? )


Tenga en cuenta, sin embargo, que la forma en que realizó su prueba de phd.mod.indep es incorrecto (ver aquí: Prueba del modelo GLM mediante desviaciones nulas y del modelo ). La prueba de ese modelo contra el modelo nulo es la prueba de si todas las células tienen la misma probabilidad en la población. Se llevaría a cabo de la siguiente manera:

1-pchisq(191.5-2.57, df=3-1)  # [1] 0

Dejando a un lado la prueba de si todas las probabilidades de las células son iguales (que dudo que le interese mucho), si creyera que existe una asociación entre sex y citizen , lo harías no interpretar el modelo phd.mod.indep . Eso sería un modelo mal especificado.

0 votos

Así que me estoy fijando demasiado, y se trata sobre todo de detectar la asociación... Gracias por la exhaustiva respuesta. Haré algunas lecturas y comprobaciones, y más tarde volveré a tratar el tema de la prueba incorrecta...

1 votos

"Tenga en cuenta, sin embargo, que la forma en que llevó a cabo su prueba de phd.mod.indep es incorrecto" Sospecho que la diferencia proviene de la comprobación de diferentes hipótesis. El 1 - pchisq(191.5-2.57, df=3-1) se examinará si "el modelo [ajustado] en su conjunto es mejor que el modelo nulo". El 1 - pchisq(2.57, df=1) La prueba está pensada como un falta de ajuste (ver CAR p. 252); a mi entender, compara el modelo ajustado con el modelo saturado (es decir update(phd.mod.indep, . ~ . + sex:citizen) que tiene 0 desviación residual y 0 df).

0 votos

@landroni, es justo. Supongo que puedes hacerlo así.

3voto

Devon_C_Miller Puntos 126

Además de la de @gung responder Descubrí que parcelas de mosaico son muy útiles para evaluar las relaciones relativas con los datos categóricos. Una vez que establezcamos (en realidad asuma que aquí) la salida de la independencia, se puede utilizar el paquete vcd para mostrar gráficamente dichas tablas de contingencia.

Una trama de mosaico:

mosaic(tab.sex.citizen, shade=TRUE, legend=TRUE)

enter image description here

Una parcela de asociación:

assoc(tab.sex.citizen, shade=TRUE, legend=TRUE)

enter image description here

Del segundo gráfico se desprende que la proporción de mujeres es mayor para los no ciudadanos que para los ciudadanos estadounidenses. Del mismo modo, la proporción de no ciudadanos es mayor para las mujeres que para los hombres.


Los gráficos son más claros cuando la salida de la independencia es clara, así que aquí hay un ejemplo sobre los datos del Titanic (ver este tutorial ).

data(Titanic)
sex.survived <- margin.table(Titanic, c(2,4))
ftable(sex.survived)

Cediendo:

> ftable(sex.survived)
       Survived   No  Yes
Sex                      
Male            1364  367
Female           126  344

Luego las parcelas:

mosaic(sex.survived, shade=TRUE, legend=TRUE)
assoc(sex.survived, shade=TRUE, legend=TRUE)

enter image description here

enter image description here

A partir de los residuos de Pearson (una medida de la desviación de las frecuencias observadas con respecto a las frecuencias esperadas, o de las partes de los datos no explicadas por el modelo loglineal), queda claro que en el caso de los varones hay un número desproporcionadamente alto que no ha sobrevivido y un número desproporcionadamente bajo que ha sobrevivido. Igualmente, de los que han sobrevivido, el número de hembras es inesperadamente alto.

3 votos

+1, mirar sus datos siempre es importante. Los gráficos de mosaico y los gráficos de asociación son una buena opción básica; también hay otros, véase aquí . Amistoso Visualización de datos categóricos (el libro) tiene un montón de buenas ideas, este pdf es una bonita y breve introducción. Si sus tablas de contingencia son mayores de 2x2, el análisis de correspondencia puede ser útil (véase aquí ).

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X