27 de mayo de 2020

REGRESIÓN LOGISTICA CONDICIONAL

Es una extensión de la regresión logistica que se centra en el análisis y modelamiento de datos emperajados.

  • Requiere al menos dos grupos de estudio.
  • Controlar la confusión y la interacción.
  • Estudios de casos y controles.

Emparejamiento

Es un procedimiento que se realiza cuando se quiere estudiar un desenlace en grupos comparables entre sí, para lo cual se toma un grupo de referencia y se emparejan a los sujetos de ese grupo con los asignados al grupo de interés, tratando de igualar las distribución de las covariables en los diferentes grupos.

Métodos de emparejamiento

  • Por categorias.
  • Por distancias:
    • Exacto.
    • Mahalanobis.
    • Propensity Score.
    • Linear Propensity Score.
  • Vecino más cercano.

Emparejamiento por categorias

Se emparejan a los individuos por un grupo de categorias, las cuales al combinarlas van a generar diferentes estratos, teniendo que para cada persona del grupo de interés se buscará a alguien que tenga los mismos factores.

Emparejamiento por categorias

Ventajas

  • Se gana eficiencia en el análisis.
  • Las estimaciones son más precisas.
  • Ayuda a controlar la confusión.

Desventajas

  • Es costoso
  • Puede que no se satisfaga la condición de emparejamiento.
  • Se pierde información si se pierden casos del grupo de referencia.

Análisis estratificado

Consiste en realizar un análisis teniendo en cuenta los diferentes emparejamientos, para el cual se debe tener presente que para cada emparejamiento existen cuatro posibilidades:

\[Parejas = W + X + Y + Z\]

Ejemplo

Asumiendo que se tiene un estudio con 100 parejas, que corresponde a un total de 200 individuos, en donde: \(W = 30\), \(X = 30\), \(Y = 10\) y \(Z = 30\), se tiene entonces que:

\[ Parejas = 30+30+10+30\]

w <- 30
x <- 30
y <- 10
z <- 30
w+x+y+z
## [1] 100

Calculo del OR y prueba de hipótesis

Mantel-Haenszel OR

\(\widehat{MOR}=\frac{\sum_{g=1}^{G}W_g\hat{OR}_g}{\sum_{g=1}^GW_g}\)

donde,

\(W_g=\frac{b_gc_g}{n_g}\)

Tambien se tiene que:

\(\widehat{MOR}=X/Y\)

McNemar’s Test

La hipótesis nula corresponde a

\(H_0: OR=1\)

Estadistico de prueba

\(\chi^2=\frac{(X-Y)^2}{X+Y},gl=1\)

Ejemplo

Mantel-Haenszel OR

Se realiza el calculo siguiendo la última expresión

\(\widehat{MOR}=30/10\)

mor <- x/y
mor
## [1] 3

McNemar’s Test

\(\chi^2=\frac{(30-10)^2}{30+10}\)

est <- (30-10)^2/(30+10)   
pvalor <- pchisq(est,1,
                 lower.tail = F)
mntest <- data.frame(est,pvalor)
mntest
##   est      pvalor
## 1  10 0.001565402

Elementos del modelo

  1. Se aplica la estimación de máxima verosimilitud condicional.
  2. Los estratos se definen usando variables indicadoras (\(V_{1i}\)), lo que permite obtener \(G - 1\) variables indicadoras.
  3. La variable desenlace(D) y la variable de exposición (E) son dicotomicas (0,1).
  4. Las variables de confusión no son usadas para el emparejamiento (\(V_{2i}\))

Modelo y OR

Modelo

\[logitP(X)=\alpha+\beta E+\sum\gamma_{1i}V_{1i}+\sum\gamma_{2i}V_{2i}+E\sum\delta_iW_i\] donde,

\(\gamma = \text{Coeficiente de los estratos}\)

\(\delta = \text{Coeficiente de la interacción}\)

OR

El OR para el efecto de la exposición ajustado por las covariables corresponde a:

\[ROR=exp(\beta+E\sum\delta_iW_i)\]

Aplicación

En una investigación se quiere estudiar la influencia del aborto (Inducido y espontáneo) en la infertilidad en mujeres, para lo cual se toman 83 mujeres que presentan problemas de infertilidad de acuerdo con su historia clinica, y por cada paciente se toman dos mujeres sanas como control, emparejandolas por edad, “parity” y años de educación. Estos datos se toman de la base de datos infert incluida en el paquete datasets de R.

Aplicación - Variables

  1. Education: Corresponde a los años de estudio que tuvo la persona categorizados de la siguiente manera: 0 = 0-5 años, 1 = 6-11 años y 2 = 12 años o más.
  2. age: Corresponde a la edad en años de las participantes.
  3. parity: Número de embarazos o partos.
  4. induced: Corresponde a la cantidad de abortos indicidos categorizados como: 0 = 0, 1 = 1 y 2 = 2 o más.
  5. case: Variable indicadora que señala si la participante fue caso (1) o fue control (0).
  6. spontaneous: Corresponde a la cantidad de abortos espontáneos categorizados como: 0 = 0, 1 = 1 y 2 = 2 o más.
  7. stratum: Número de estrato al que pertenece el caso o el control de acuerdo con el emparejamiento.

Aplicación - Datos

data("infert")
summary(infert)
##    education        age            parity         induced   
##  0-5yrs : 12   Min.   :21.00   Min.   :1.000   Cero   :143  
##  6-11yrs:120   1st Qu.:28.00   1st Qu.:1.000   Uno    : 68  
##  12+ yrs:116   Median :31.00   Median :2.000   2 o más: 37  
##                Mean   :31.50   Mean   :2.093                
##                3rd Qu.:35.25   3rd Qu.:3.000                
##                Max.   :44.00   Max.   :6.000                
##       case         spontaneous     stratum      pooled.stratum 
##  Min.   :0.0000   Cero   :141   Min.   : 1.00   Min.   : 1.00  
##  1st Qu.:0.0000   Uno    : 71   1st Qu.:21.00   1st Qu.:19.00  
##  Median :0.0000   2 o más: 36   Median :42.00   Median :36.00  
##  Mean   :0.3347                 Mean   :41.87   Mean   :33.58  
##  3rd Qu.:1.0000                 3rd Qu.:62.25   3rd Qu.:48.25  
##  Max.   :1.0000                 Max.   :83.00   Max.   :63.00

Aplicación - Análisis estratificado

Prueba Mantel-Haenszel y MOR (Inducido)

infert$inducido <- ifelse(infert$induced == "Cero",0,1)
tinfert <- table(infert$case,infert$inducido,infert$stratum)
tablas_parciales <- margin.table(tinfert,c(1,2,3))
mantelhaen.test(tablas_parciales)
## 
##  Mantel-Haenszel chi-squared test with continuity correction
## 
## data:  tablas_parciales
## Mantel-Haenszel X-squared = 0.0225, df = 1, p-value = 0.8808
## alternative hypothesis: true common odds ratio is not equal to 1
## 95 percent confidence interval:
##  0.6123322 1.9435246
## sample estimates:
## common odds ratio 
##          1.090909

Modelo 1

m1 <- clogit(case~inducido+strata(stratum),data = infert)
summary(m1)
## Call:
## coxph(formula = Surv(rep(1, 248L), case) ~ inducido + strata(stratum), 
##     data = infert, method = "exact")
## 
##   n= 248, number of events= 83 
## 
##             coef exp(coef) se(coef)   z Pr(>|z|)
## inducido 0.08972   1.09387  0.29913 0.3    0.764
## 
##          exp(coef) exp(-coef) lower .95 upper .95
## inducido     1.094     0.9142    0.6086     1.966
## 
## Concordance= 0.509  (se = 0.04 )
## Likelihood ratio test= 0.09  on 1 df,   p=0.8
## Wald test            = 0.09  on 1 df,   p=0.8
## Score (logrank) test = 0.09  on 1 df,   p=0.8

Prueba Mantel-Haenszel y MOR (Induced)

tinfert2 <- table(infert$case,infert$induced,infert$stratum)
tablas_parciales2 <- margin.table(tinfert2,c(1,2,3))
mantelhaen.test(tablas_parciales2)
## 
##  Cochran-Mantel-Haenszel test
## 
## data:  tablas_parciales2
## Cochran-Mantel-Haenszel M^2 = 0.12415, df = 2, p-value = 0.9398

Modelo 2 (Induced)

m2 <- clogit(case~induced+strata(stratum),data = infert)
summary(m2)
## Call:
## coxph(formula = Surv(rep(1, 248L), case) ~ induced + strata(stratum), 
##     data = infert, method = "exact")
## 
##   n= 248, number of events= 83 
## 
##                   coef exp(coef) se(coef)     z Pr(>|z|)
## inducedUno     0.06942   1.07189  0.31939 0.217    0.828
## induced2 o más 0.15007   1.16192  0.44353 0.338    0.735
## 
##                exp(coef) exp(-coef) lower .95 upper .95
## inducedUno         1.072     0.9329    0.5732     2.005
## induced2 o más     1.162     0.8606    0.4871     2.771
## 
## Concordance= 0.497  (se = 0.047 )
## Likelihood ratio test= 0.12  on 2 df,   p=0.9
## Wald test            = 0.12  on 2 df,   p=0.9
## Score (logrank) test = 0.12  on 2 df,   p=0.9

Modelo 3

m3 <- clogit(case~inducido+education+strata(stratum),data = infert)
summary(m3)
## Call:
## coxph(formula = Surv(rep(1, 248L), case) ~ inducido + education + 
##     strata(stratum), data = infert, method = "exact")
## 
##   n= 248, number of events= 83 
## 
##                     coef exp(coef) se(coef)   z Pr(>|z|)
## inducido         0.08972   1.09387  0.29913 0.3    0.764
## education6-11yrs      NA        NA  0.00000  NA       NA
## education12+ yrs      NA        NA  0.00000  NA       NA
## 
##                  exp(coef) exp(-coef) lower .95 upper .95
## inducido             1.094     0.9142    0.6086     1.966
## education6-11yrs        NA         NA        NA        NA
## education12+ yrs        NA         NA        NA        NA
## 
## Concordance= 0.509  (se = 0.04 )
## Likelihood ratio test= 0.09  on 1 df,   p=0.8
## Wald test            = 0.09  on 1 df,   p=0.8
## Score (logrank) test = 0.09  on 1 df,   p=0.8

Modelo 4

m4 <- clogit(case~induced+spontaneous+strata(stratum),data = infert)
summary(m4)
## Call:
## coxph(formula = Surv(rep(1, 248L), case) ~ induced + spontaneous + 
##     strata(stratum), data = infert, method = "exact")
## 
##   n= 248, number of events= 83 
## 
##                       coef exp(coef) se(coef)     z Pr(>|z|)    
## inducedUno          1.3865    4.0007   0.4634 2.992 0.002770 ** 
## induced2 o más      2.8193   16.7654   0.7353 3.834 0.000126 ***
## spontaneousUno      2.0438    7.7195   0.4529 4.512 6.41e-06 ***
## spontaneous2 o más  3.9350   51.1631   0.7246 5.430 5.63e-08 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##                    exp(coef) exp(-coef) lower .95 upper .95
## inducedUno             4.001    0.24996     1.613     9.921
## induced2 o más        16.765    0.05965     3.968    70.838
## spontaneousUno         7.720    0.12954     3.177    18.755
## spontaneous2 o más    51.163    0.01955    12.363   211.727
## 
## Concordance= 0.776  (se = 0.044 )
## Likelihood ratio test= 53.21  on 4 df,   p=8e-11
## Wald test            = 31.97  on 4 df,   p=2e-06
## Score (logrank) test = 48.47  on 4 df,   p=8e-10

Gracias