Si \(X\) e \(Y\) son ambas variables respuesta interesa su distribución conjunta que además determina la marginal y condicional. Si \(X\) es explicativa e \(Y\) es respuesta interesa sobretodo la distribución condicional de \(Y|X\).
La tabla de contingencia \(IxJ\) es la tabla de frecuencias observadas en cada combinación de las categorías de las variables \(X\) e \(Y\).
Sea \(\pi_{ij}\) la probabilidad de que \((X,Y)\) ocurra en la celda \(ij\) al distribución de probabilidades \(\left \{ \pi_{ij} \right \}\) en la distribuciónn de probabilidades conjunta de X e Y.
Se refiere a la distribución de los totales por fila (\(\left \{ \pi_{i+} \right \}\)) o columna (\(\left \{ \pi_{+j} \right \}\)).
Las probabilidades \(\left \{ \pi_{1|i},...,\pi_{J|i} \right \}\) forman la distribución condicional de \(Y\) dada la categoría \(i\) de \(X\).
\[\pi_{j|i}=\frac{\pi_{ij}}{\pi_{i+}}\]
Dos variables categóricas respuestas son independientes cuando todas las probabilidades conjuntas son iguales a la multiplicación de las respectivas probabilidades marginales
\[\pi_{ij}=\pi_{i+}\pi_{+j}\]
Esto implica que cada distribución condicional de Y es igual a la distribución marginal de Y. Para todo \(i\),
\[\pi_{j|i}=\frac{\pi_{ij}}{\pi_{i+}}=\frac{\pi_{i+}\pi_{+j}}{\pi_{i+}}=\pi_{+j}\]
Variando i, X e Y son independientes cuando para todo j, \[\pi_{j|1}=...=\pi_{j|I}=\pi_{+j}\]
Lo que se conoce como homogeneidad de las distribuciones condicionales
Para n grande,
Para n pequeño, métodos exactos no paramétricos
Todas las celdas independientes sin ninguna restricción
\[P(Y_{ij}=n_{ij})=\prod_i\prod_j exp(-\mu_{ij})\mu_{ij}^{n_{ij}}/n_{ij}!\]
\[P(Y_{ij}=n_{ij})=\frac{n!}{n_{11}!...n_{11}!}\prod_i\prod_j\pi_{ij}^{n_{ij}}\]
\[P(Y_{ij}=n_{ij})=\prod_i \left [ \frac{n_i!}{\prod_j n_{ij}!} \prod_j \pi_{j|i}^{n_{ij}} \right ]\]
Esta distribución también se usa cuando X es una variable explicativa y no se cumplen las dos primeras distribuciones.
Cuando ambos margenes son fijos.
Prospectivos: Ensayos clíncios y estudios de cohorte. Se condiciona en los totales \(n_i\) de X. Cada fila de J conteos es Indepentent multi sobre Y.
Retrospectivos: Los totales \(\{n_{+j}\}\) son fijos para Y cada columna de I conteos tiene distribución multinomial sobre X.
Cross-sectional: El total \(n\) es fijo. Multinomial sampling.
Cuando el tamaño de la muestra \(n\) o el número de observaciones en cada celda es pequeño las distribciones de \(X²\) y \(G²\) no se aproximan bien a la distribución Chi-cuadrado y los p-valores no son confiables. En estas situaciones es posible hacer inferencias basandonos en las distribuciones exactas (o aproximaciones) de las celdas luego de escoger un esquema muestral. Como desventaja tenemos que los p-valores excatos pueden ser conservativos (no rechazar).
Podemos usar pruebas exactas cuando,
Fomalmente, la indeferencia es incondicional, i.e. cuando el diseño del estudio tiene un esquema muestral hipergeométrico (ambos margenes naturalemente fijos).
\(n\) es pequeño.
Más del 20% de las celdas tienen un valor esperado de menos de 5 y ningún valor esperado es cero.
Nota: Incluso si la distribución no es hipergeométrica se puede condicionar sobre los margenes y realizar el análisis como si fueran fijos (inferencia condicional) cuando \(n\) es pequeño y las aproximaciones probablemente no funcionen bien. Al condicionar resulta una distribución hipergeométrica (\(s\) especiales en \(m\) lanzamientos sin remplazo de una población finita de tamaño \(P\) que ya continen \(S\) especiales y cuyo soporte es \(s \in \{max[0,m-(P-S)],...,min[m,S]\}\)). Esto es toda una discusión desarrollada en Agresti. Esta aproximación condicional consiste en eliminar los parámetros de ruido de una binomial independiente condicionando en los estadísticos suficientes de dichos parámetros. Brian Caffo habla un poco acerca de ello y otros temas relacionados en este video
En el caso 2x2, note que todas las tablas que tienen el mismo margen (fijo o condicionado) están unívocamente determinadas por el valor de una de sus celdas (\(n_{11}\) por ejemplo). Ya sea que los margenes sean fijos o se condicione, en general, dicha casilla tendría una distribución que depende del OR. Bajo la hipótesis nula de independencia (OR=1) la distribución es hipergeométrica.
Si \(s=n_{11}\) es un valor muy poco probable significa que los \(m\) conteos no ocurrieron de manera aleatoria y existe una asociación. La independencia es evaluada en término del OR. Por ejemplo, para probar OR>1, El p-valor es calculado como \(P(n_{11} \ge t_0)\), donde \(t_0\) es el valor observado en la casilla.
Ejemplo dama del té y su implementación en R
La aproximación más usada (Irwin 1935) es usar p-valor=\(P[p(n_{11}\leq p(t_0))]\). Esta es la opción implementada en R. Varias otras opciones existen y en R están implementadas en la librería exact2x2
Debido a que los datos son discretos pocos, también son relativamente pocos los p-valores posibles. Por lo tanto, las pruebas exactas son conservativas. Agresti propone para esto el uso del p-valor-medio definido como \(1/2*P(n_{11} = t_0) + P(n_{11} = \text{el valor más extremo})\).
Cuando el OR=1 la distribución es hipergeométrica y se usa la prueba de excata de Fisher. En general, la distribución depende del OR y de los margenes. Desarrollada por Fisher, la distribución (condicional) de la primera casilla de la tabla de contingencia tiene distribución hipergeométrica no-central con parámetro de no-centralidad igual al OR.
Se usa cuando el número de tablas más extremas que la observada es muy grande
exact2x2Considere las probabilidades de éxito por filas \(\pi_{1|i}\) simplificada en notación a \(\pi_i\).
Es la razón de la probabilidades de éxitos (enfermedad).
\[RR=\frac{\pi_1}{\pi_2}\] ## OR
La razón de odds en ambas categorías
\[OR=\frac{\frac{\pi_1}{1-\pi_1}}{\frac{\pi_2}{1-\pi_2}}\]
curve(expr = x/(1-x), from = 0, to = 1)
curve(expr = log(x/(1-x)), from = 0, to = 1)
estimación de Woolf (1955) de la varianza (revisar),
\[V_f=var(log(OR))=1/n_{11} + 1/n_{12} +1/n_{21} +1/n_{22}\]
Intervalo de confianza
\[exp(log(or) \pm z_{\alpha/2}\sqrt{V_f})\]
\[OR=RR\frac{1-\pi_2}{1-\pi_1}\] Son similiares cuando las probablidades de éxito \(\pi_i\) son cercanas a cero en ambos grupos
Importante para tamaño de muestra
\[RR = OR * \frac{1+(n_{21}/n_{22})}{1+(n_{11}/n_{12})}=OR/[(1-p_2)+(p_2*OR)]\]
comparar \(p_1\) vs \(p_2\)
La idea es analizar la asociación entre \(X\) e \(Y\) controlando por otra posible variable de confusión \(Z\).
Tablas parciales: Tablas de contingencia de dos vias par \(X\) e \(Y\) en la categoría \(k\) de \(Z\). Las asociaciones en estas tablas son llamdas asociaciones condicionales (en \(k\))
Tabla marginal: Tabla de de contingencia entre \(X\) e \(Y\) ignorando \(Z\).
Se refiere a los OR crudos y en cada estrato.
Se \(X\) e \(Y\) son independientes en la tabla parcial \(k\), entonces se dice que \(X\) e \(Y\) son condicionalmente independientes en el nivel \(k\) de \(Z\) (Independencia en el estrato). Cuando \(X\) e \(Y\) son condicionalmente independientes en todos las categorías \(k\), se dice que \(X\) e \(Y\) son condicionalmente independientes dada \(Z\) (Independencia en todos los estratos).En una tabla \(2*2*K\) esto es uquivalente a que los OR condicionales sean 1.
Independencia condicional no implica indepencia marginal (Yule 1903, mención en agresti). Esto es, independecia en todos los estratos de \(Z\) no implica independencia cruda (ignorando \(Z\)).
Para probarla se usa Cochran-Mantel-Haenszel Test
Una tabla \(2*2*K\) tiene una asociación XY homogénea si los OR condicionales son iguales
\[\Theta_{XY(1)}=\Theta_{XY(2)}=...=\Theta_{XY(K)}\] La homogeneidad es una propiedad simétrica. Aplica para cualquier par de variables vistas a través de las categorías de una tercera. Cuando ocurre se dice que no hay interacción entre las dos variables en su efecto sobre la tercera. Que haya interacción entre dos variables sobre una tercera significa que los OR condicionales de cualquier par de variables cambian por las categorías de la tercera. Arriba por ejemplo, si no se cumple la igualdad hay una interacción entre X y Z sobre Y. Z es un efecto modificador.
Independencia condicional (dada \(Z\)) es un caso particular cuando \(\Theta_{XY(k)}=1\). De igual manera homogeneidad no implica el Or marginal sea igual al Or común. Esto sucede cuando el Or es colapsable (ver Agresti)
Multinomial con respuesta cruzada
placepo <- c(16,48)
experimental <- c(40,20)
tabla <- rbind(placepo,experimental)
colnames(tabla) <- c("Sí", "No")
library(epitools)
round(epitab(tabla, method = "riskratio")$tab, 3)
Sí p0 No p1 riskratio lower upper p.value
placepo 16 0.250 48 0.750 1.000 NA NA NA
experimental 40 0.667 20 0.333 0.444 0.302 0.653 0
round(epitab(tabla, method = "oddsratio")$tab, 3)
Sí p0 No p1 oddsratio lower upper p.value
placepo 16 0.286 48 0.706 1.000 NA NA NA
experimental 40 0.714 20 0.294 0.167 0.076 0.364 0
Caer en cada \(n_{ij}\) casilla sigue una distribución hipergeométrica (N=124)
Al analizar por fila la hipótesis nula es que los tratamientos son iguales respecto a los efectos de mejoría.
Al analizar por columna probamos la hipótesis nula de que la aleatorización estuvo bien.
\[P(n_{ij}) = \frac{n_{1+}!n_{2+}!n_{+1}!n_{+2}!}{n!n_{11}!n_{12}!n_{21}!n_{22}!}\]
\[E(n_{ij}|H_o)= \frac{n_{i+}n_{+j}}{n}=m_{ij}\]
\[V(n_{ij}|H_o)=\frac{n_{1+}n_{2+}n_{+1}n_{+2}}{n^2(n-1)}=V_{ij}\]
\[n_{ij} \approx N(m_{ij}, V_{ij})\] ## Chi² de M-H para aleatorización
\[Q_{11}=\frac{(n_{11}-m_{11})^2}{V_{11}} \approx \chi_1\]
\(Q_{ij}\) → \(Q_p\)
\[Q_p=\sum_{i=1}^2 \sum_{j=1}^2 \frac{(n_{ij}-m_{ij})^2}{m_{ij}}=n/(n-1)Q\]
Encontrar intervalo de confianza para \(p_1-p_2\) Calcular Q de pearson y aleatorización.
n <- sum(tabla)
M_ij <- rowSums(tabla)%*%t(colSums(tabla))/n
V_ij <- prod(rowSums(tabla))*prod(colSums(tabla))/(n^2*(n-1))
(Q_ij <- (tabla - M_ij)^2/V_ij )
Sí No
placepo 21.53361 21.53361
experimental 21.53361 21.53361
(Q_p <- (tabla - M_ij)^2/M_ij)
Sí No
placepo 5.760369 4.743833
experimental 6.144393 5.060089
sum(Q_p)
[1] 21.70868
\[d=p_1-p_2\] \[E(p1-p2)=\pi_1-\pi_2\] \[V(p1-p2)=\frac{\pi_1(1-\pi_1)}{n_{1+}}+\frac{\pi_2(1-\pi_2)}{n_{2+}}\]
\[V_d=\frac{p_1(1-p_1)}{n_{1+}-1}+\frac{p_2(1-p_2)}{n_{2+}-1}\]
IC \(100(1-\alpha)%\)
\[d \pm \left \{ Z_{\alpha /2 } \sqrt{V_d} + \frac{1}{2} (\frac{1}{n_{1+}}+\frac{1}{n_2+}) \right \}\]
chisq.test(tabla, correct = F)
Pearson's Chi-squared test
data: tabla
X-squared = 21.709, df = 1, p-value = 3.174e-06
library(DescTools)
MHChisqTest(tabla)
Mantel-Haenszel Chi-Square
data: tabla
X-squared = 21.534, df = 1, p-value = 3.477e-06
H1_mh: diferencias en debido a los tratamientos
library(epiR)
res <- epi.2by2(tabla)
print(res)
Outcome + Outcome - Total Inc risk *
Exposed + 16 48 64 25.0
Exposed - 40 20 60 66.7
Total 56 68 124 45.2
Odds
Exposed + 0.333
Exposed - 2.000
Total 0.824
Point estimates and 95 % CIs:
-------------------------------------------------------------------
Inc risk ratio 0.38 (0.24, 0.59)
Odds ratio 0.17 (0.08, 0.36)
Attrib risk * -41.67 (-57.63, -25.70)
Attrib risk in population * -21.51 (-36.30, -6.71)
Attrib fraction in exposed (%) -166.67 (-322.64, -68.25)
Attrib fraction in population (%) -47.62 (-72.30, -26.47)
-------------------------------------------------------------------
X2 test statistic: 21.709 p-value: < 0.001
Wald confidence limits
* Outcomes per 100 population units
Solo para muestras probabilisticas o aleatorización
prop.test(tabla)
2-sample test for equality of proportions with continuity
correction
data: tabla
X-squared = 20.059, df = 1, p-value = 7.509e-06
alternative hypothesis: two.sided
95 percent confidence interval:
-0.5924430 -0.2408903
sample estimates:
prop 1 prop 2
0.2500000 0.6666667
library(PropCIs)
# Score
diffscoreci(x1 = tabla[2,1], n1 = rowSums(tabla)[2],
x2 = tabla[1,1], n2 = rowSums(tabla)[1], .95)
data:
95 percent confidence interval:
0.2460145 0.5626554
# Wald
wald2ci(x1 = tabla[2,1], n1 = rowSums(tabla)[2],
x2 = tabla[1,1], n2 = rowSums(tabla)[1], .95, adjust = 'Wald') # ejemplo agresti
data:
95 percent confidence interval:
0.2570362 0.5762972
sample estimates:
experimental
0.4166667
libros de experimentos clínicos
En general una tabla \(n_{hij}\), \(n_{h+j}\), \(n_{hi+}\) y total \(n_h\) Para el estrato se usa \(h=1,...,q\).
Mejoría espiratoria en dos centros(Importa el centro -> Sesgo de…),
Distribución hipergeométrica en cada centro, globalmente es el producto de dos hipergeométricas.
placepo <- c(14,31)
experimental <- c(29,16)
centro1 <- rbind(placepo,experimental)
colnames(centro1) <- c("Sí", "No")
placepo <- c(24,21)
experimental <- c(37,8)
centro2 <- rbind(placepo,experimental)
colnames(centro2) <- c("Sí", "No")
library(epiR)
res <- epi.2by2(tabla)
print(res)
Outcome + Outcome - Total Inc risk *
Exposed + 16 48 64 25.0
Exposed - 40 20 60 66.7
Total 56 68 124 45.2
Odds
Exposed + 0.333
Exposed - 2.000
Total 0.824
Point estimates and 95 % CIs:
-------------------------------------------------------------------
Inc risk ratio 0.38 (0.24, 0.59)
Odds ratio 0.17 (0.08, 0.36)
Attrib risk * -41.67 (-57.63, -25.70)
Attrib risk in population * -21.51 (-36.30, -6.71)
Attrib fraction in exposed (%) -166.67 (-322.64, -68.25)
Attrib fraction in population (%) -47.62 (-72.30, -26.47)
-------------------------------------------------------------------
X2 test statistic: 21.709 p-value: < 0.001
Wald confidence limits
* Outcomes per 100 population units
library(epitools)
round(epitab(tabla, method = "riskratio")$tab, 3)
Sí p0 No p1 riskratio lower upper p.value
placepo 16 0.250 48 0.750 1.000 NA NA NA
experimental 40 0.667 20 0.333 0.444 0.302 0.653 0
round(epitab(tabla, method = "oddsratio")$tab, 3)
Sí p0 No p1 oddsratio lower upper p.value
placepo 16 0.286 48 0.706 1.000 NA NA NA
experimental 40 0.714 20 0.294 0.167 0.076 0.364 0
\(H_0:\) No hay diferencia en los tratamientos
\[E[n_{hij}|h_0]=\frac{n_{hi+}n_{h+j}}{n_h}=m_{hij}\]
\[Var[n_{hij}|h_0]=\frac{n_{hi+}n_{h+j}n_{h+i}n_{hj+}}{n_h²(n_h-1)}=V_{hij}\]
\[Q_{mh}=\frac{(\sum_{h=1}^q n_{h11} - \sum_{h=1}^q m_{h11})^2}{\sum_{h=1}^q V_{h11}}\]
equivalentemente
\[Q_{mh}=\frac{\sum_{h=1}^q (n_{h1+}n_{h2+}/n_h)(p_{h11}-p_{h21})^2}{\sum_{h=1}^q V_{h11}}\]
donde \(p_{hi1}=n_{hi1}/n_{hi+}\).
Cuando los tamaño por filas colapsados (tabla global colapsada) son grandes (>30)
Tarea: Calcular Q
respiracion <-
as.table(array(c(29,14,
16,31,
37,24,
8,21),
dim = c(2,2, 2),
dimnames =
list(Grupo =
c("Experimento", "Placebo"),
"Mejora" =
c("Sí", "No"),
Centro = c("Centro1", "Centro2"))))
ftable(. ~ Centro + Grupo, respiracion)
Mejora Sí No
Centro Grupo
Centro1 Experimento 29 16
Placebo 14 31
Centro2 Experimento 37 8
Placebo 24 21
mantelhaen.test(respiracion)
Mantel-Haenszel chi-squared test with continuity correction
data: respiracion
Mantel-Haenszel X-squared = 17.119, df = 1, p-value = 3.511e-05
alternative hypothesis: true common odds ratio is not equal to 1
95 percent confidence interval:
2.105716 7.708353
sample estimates:
common odds ratio
4.028846
respiracion
, , Centro = Centro1
Mejora
Grupo Sí No
Experimento 29 16
Placebo 14 31
, , Centro = Centro2
Mejora
Grupo Sí No
Experimento 37 8
Placebo 24 21
library(epiR)
res <- epi.2by2(respiracion)
res
Outcome + Outcome - Total Inc risk *
Exposed + 66 24 90 73.3
Exposed - 38 52 90 42.2
Total 104 76 180 57.8
Odds
Exposed + 2.750
Exposed - 0.731
Total 1.368
Point estimates and 95 % CIs:
-------------------------------------------------------------------
Inc risk ratio (crude) 1.74 (1.32, 2.28)
Inc risk ratio (M-H) 1.74 (1.33, 2.27)
Inc risk ratio (crude:M-H) 1.00
Odds ratio (crude) 3.76 (2.01, 7.05)
Odds ratio (M-H) 4.03 (2.11, 7.71)
Odds ratio (crude:M-H) 0.93
Attrib risk (crude) * 31.11 (17.41, 44.81)
Attrib risk (M-H) * 31.11 (16.09, 46.13)
Attrib risk (crude:M-H) 1.00
-------------------------------------------------------------------
Test of homogeneity of IRR: X2 test statistic: 6.582 p-value: 0.01
Test of homogeneity of OR: X2 test statistic: 0 p-value: 0.99
Wald confidence limits
M-H: Mantel-Haenszel
* Outcomes per 100 population units
res$res$OR.strata.score
est lower upper
1 4.013393 1.678189 9.59804
2 4.046875 1.565276 10.42107
res$res$OR.homog # Breslow-Day test: Hay homogeneidad
test.statistic df p.value
1 0.0001562126 1 0.9900279
DescTools::WoolfTest(respiracion)
Woolf Test on Homogeneity of Odds Ratios (no 3-Way assoc.)
data: respiracion
X-squared = 0.00015617, df = 1, p-value = 0.99
res$res$OR.mh.wald # Intervalo para el OR común
est lower upper
1 4.028846 2.105716 7.708353
res$res$chisq.mh # Pero no son independientes
test.statistic df p.value
1 17.119 1 3.510936e-05
res$res$chisq.strata # No hay independencia condicional
test.statistic df p.value
1 10.019792 1 0.001548669
2 8.598078 1 0.003365180
Tarea - estratos homogéneos - Breslow-Day . Intervalos de confianza para OR-ajustado (o para \(\Phi_{mh}\))
tabla <-
as.table(array(c(15,10,
15,20,
25,12,
5,18,
21,16,
9,14),
dim = c(2,2, 3),
dimnames =
list(Grupo =
c("Nuevo", "Estandar"),
"Mejora" =
c("Sí", "No"),
Peso = c("Normal", "Sobrepeso", "Obesidad"))))
ftable(. ~ Peso + Grupo, tabla)
Mejora Sí No
Peso Grupo
Normal Nuevo 15 15
Estandar 10 20
Sobrepeso Nuevo 25 5
Estandar 12 18
Obesidad Nuevo 21 9
Estandar 16 14
tabla
, , Peso = Normal
Mejora
Grupo Sí No
Nuevo 15 15
Estandar 10 20
, , Peso = Sobrepeso
Mejora
Grupo Sí No
Nuevo 25 5
Estandar 12 18
, , Peso = Obesidad
Mejora
Grupo Sí No
Nuevo 21 9
Estandar 16 14
mantelhaen.test(tabla)
Mantel-Haenszel chi-squared test with continuity correction
data: tabla
Mantel-Haenszel X-squared = 11.081, df = 1, p-value = 0.0008721
alternative hypothesis: true common odds ratio is not equal to 1
95 percent confidence interval:
1.588472 5.475389
sample estimates:
common odds ratio
2.949153
library(epiR)
res <- epi.2by2(tabla,)
res
Outcome + Outcome - Total Inc risk *
Exposed + 61 29 90 67.8
Exposed - 38 52 90 42.2
Total 99 81 180 55.0
Odds
Exposed + 2.103
Exposed - 0.731
Total 1.222
Point estimates and 95 % CIs:
-------------------------------------------------------------------
Inc risk ratio (crude) 1.61 (1.21, 2.13)
Inc risk ratio (M-H) 1.61 (1.22, 2.12)
Inc risk ratio (crude:M-H) 1.00
Odds ratio (crude) 2.88 (1.57, 5.29)
Odds ratio (M-H) 2.95 (1.59, 5.48)
Odds ratio (crude:M-H) 0.98
Attrib risk (crude) * 25.56 (11.51, 39.60)
Attrib risk (M-H) * 25.56 (10.44, 40.68)
Attrib risk (crude:M-H) 1.00
-------------------------------------------------------------------
Test of homogeneity of IRR: X2 test statistic: 7.058 p-value: 0.029
Test of homogeneity of OR: X2 test statistic: 3.356 p-value: 0.187
Wald confidence limits
M-H: Mantel-Haenszel
* Outcomes per 100 population units
res$res$RR.strata.score
est lower upper
1 1.500000 0.8214370 2.829757
2 2.083333 1.3634196 3.455927
3 1.312500 0.8766378 2.031651
res$res$OR.homog # Breslow-Day test: Hay homogeneidad
test.statistic df p.value
1 3.355565 2 0.1867877
DescTools::WoolfTest(respiracion)
Woolf Test on Homogeneity of Odds Ratios (no 3-Way assoc.)
data: respiracion
X-squared = 0.00015617, df = 1, p-value = 0.99
res$res$OR.mh.wald # Intervalo para el OR común
est lower upper
1 2.949153 1.588472 5.475389
res$res$chisq.mh # Pero no son independientes
test.statistic df p.value
1 11.0811 1 0.0008721195
res$res$chisq.strata # No hay independencia condicional
test.statistic df p.value
1 1.714286 1 0.1904302638
2 11.915394 1 0.0005567197
3 1.762632 1 0.1842965374