Modelos Lineales Generalizados (GLM)

Ajuste de un modelo lineal generalizado, estimación y contraste de hipótesis de las funciones base, y parámetros de un modelo lineal generalizado

Chullo Puclla, Oscar
Yabar Arone, Rony Luis

Modelos Lineales Generalizados (GLM)

Supuestos de los GLM

  • Las observaciones son observaciones independientes.
  • La variable dependiente NO necesita estar distribuida normalmente → (binomial, Poisson, multinomial, normal, etc.)
  • GLM NO asume una relación lineal entre dependiente e independientes, pero asume una relación lineal entre la respuesta transformada
  • La homogeneidad de la varianza NO necesita ser satisfecha (depende de distriibución).
  • Los errores (residuales) deben ser independientes pero NO distribuidos normalmente.

¿Cuál es la diferencia entre GLM y LM?

En un GLM especificamos un modelo para la media de la respuesta (y); por lo tanto, los parámetros se pueden interpretar en términos de efectos promedio de la respuesta.

En un Modelos Linear, usando datos sin transformar, modelamos la media de los datos en crudo.

En un Modelos Linear, usando datos transformados, modelamos la media de los datos transformados, que es algo completamente diferente y, en ocasiones, sin sentido respecto a la variable original.

Lo importante en los GLM es identificar el tipo de dato que tengo en mi variable de respuesta y a que distribución está relacionada.

Los modelos lineales como la navaja suiza de los modelos

Cualitativos (se refieren a calidad)

  • Nominales o Categóricas
  • Binomial o Booleano
  • Ordinales

Cuantitativos (se refieren a cantidad)

  • Discretos o merísticas (se pueden contar y no hay intermedios)
  • Continuos (se pueden medir y hay escalas intermedias, ie. Fracciones)
  • Escalas de razón
  • Escalas reales
  • Escalas circulares (caso especial)
  • Etc

Modelos lineares: Traje a la medida (distribución)

Distribución binomial

  • Datos binomiales no siguen una distribución normal: observamos un pico en 0 y un pico en 1, pero nada enmedio (imagen de la derecha).

  • Al modelar esta variable con lm() y graficar los valores esperados con el modelo contra los observados no siguen una línea.

Ajuste de un Modelo Lineal Generalizado (GLM)

Los pasos para ajustar un GLM incluyen:

  1. Especificación del modelo. Definición del componente aleatorio, predictor lineal y función de enlace.

  2. Estimación de los parámetros. Para los GLM, la estimación se hace por máxima verosimilitud.

  3. Evaluación del modelo. Verificar si el modelo estimado se ajusta bien a los datos.

  4. Inferencia. Cálculo de intervalos de confianza, pruebas de hipótesis e interpretación de los resultados según los objetivos del estudio.

Especificación del modelo

El GLM asume que:

\[f(y_i;\theta_i,\phi)=exp\{\frac{y_i\theta_i-b(\theta_i)}{a(\phi)}+c(y_i,\phi)\}\]

donde \(\phi>0\). Además, \(E(y_i)=b'(\theta_i) y V(y_i)=b''(\theta_i)a(\phi)\).

El predictor lineal \(\eta_i=x'_i\beta\) se relaciona con \(\mu_i\) a través la función de enlace, \(\eta_i=g(\mu_i)\)

La función de enlace \(g(.)\) que transforma \(\mu_i\) en el parámetro natural \(\theta_i\) es llamada función de enlace canónica.

Por ejemplo para la distribución normal, \(\eta_i=\mu_i\) (identidad), por lo tanto \(\mu_i=\eta_i\).

Para la distribución Poisson, \(\eta_i=log \mu_i\), por lo tanto \(\mu_i=exp(\eta_i)\).

Para la distribución binomial, \(\eta_i=log(\frac{\pi_i}{1-\pi_i})\), por lo tanto \(\pi_i=\frac{exp(\eta_i)}{1+exp(\eta_i)}\)

Estimación

Estimador por máxima verosimilitud para \(\beta\)

Dado que asumimos que la distribución de probabilidad asociada a la variable respuesta pertenece a la familia exponencial, la función de log-verosimilitud está definida como:

\[ \ell(\beta) = \sum_{i=1}^{n} \ell_i(\beta) = \sum_{i=1}^{n} \log f(y_i; \theta_i, \phi) = \sum_{i=1}^{n} \left[ \frac{y_i \theta_i - b(\theta_i)}{a(\phi)} + c(y_i, \phi) \right]. \]

Las funciones score están definidas como:

\[ u(\beta_j) = \sum_{i=1}^{n} \frac{(y_i - \mu_i) x_{ij}}{V(y_i)} \frac{\partial \mu_i}{\partial \eta_i} = 0, \quad \text{para} \quad j = 0, \dots, p - 1, \]

donde \(\eta_i = x_i^t \beta = g(\mu_i)\). Dado que las funciones score son no-lineales, es necesario estimar \(\beta\) iterativamente usando el algoritmo de Newton-Raphson.

En forma matricial, tenemos que la función score es:

\[ b(\beta) = X^t D V^{-1} (y - \mu), \]

y la función hessiana es:

\[ H(\beta) = I(\beta) = X^t W X, \]

donde V es una matriz diagonal con valores \(v_{ii} = V(y_i)\) en la diagonal, D es una matriz diagonal con valores \(d_{ii} = \frac{\partial \mu_i}{\partial \eta_i}\), y W es una matriz diagonal con \(w_{ii} = \frac{\left(\frac{\partial \mu_i}{\partial \eta_i}\right)^2}{V(y_i)}\).

A través del algoritmo de Newton-Raphson (o Fisher’s scoring) podemos encontrar la estimación de \(\beta\) de forma iterativa:

\[ \beta^{(t+1)} = \beta^{(t)} + \left[I(\beta^{(t)})\right]^{-1}u(\beta^{(t)}). \]

Equivalente, podemos utilizar el método de mínimos cuadrados iterativamente reponderados:

\[ \beta^{(t+1)} = \left(X^TW^{(t)}X\right)^{-1}X^TW^{(t)}z^{(t)}, \]

donde, los elementos de \(z^{(t)}\) son:

\[ z_i^{(t)} = x_i^T\beta^{(t)} + (y_i - \mu_i^{(t)}) \frac{\partial \eta_i^{(t)}}{\partial \mu_i^{(t)}}. \]

La distribución asintótica del MLE (Maximum Likelihood Estimator) de \(\beta\) es:

\[ \hat{\beta} \sim N \left(\beta, \left(X^TWX\right)^{-1}\right). \]

Modelo logístico para la mortalidad de escarabajos

En un estudio de toxicología, se está interesado en la tasa de mortalidad de escarabajos expuestos a disulfuro de carbono gaseoso. La Tabla muestra el número de escarabajos muertos después de cinco horas de exposición de este tóxico a diferentes concentraciones del químico. Podemos ver que a medida que aumenta la dosis, la mortalidad de escarabajos va aumentando.

log.dosis expuestos muertos
1.6907 59 6
1.7242 60 13
1.7552 62 18
1.7842 56 28
1.8113 63 52
1.8369 59 53
1.8610 62 61
1.8839 60 60

Una alternativa es utilizar una transformación que describa la relación de forma adecuada y que garantice que la respuesta se encuentre dentro del espacio del parámetro. Es decir, que la estimación de la proporción de escarabajos muertos esté entre 0 y 1.

Sea: \(y_{ij}=1\) si el escarabajo \(j\) expuesto a las dosis \(i\), muere; \(0\) si lo contrario.

Por lo que para la i-ésima dosis, el número de escarabajos que muere es igual a \(y^*_i=\sum^{n_1}_{j=1}y_{ij}\). Además asumiendo independencia, podemos decir que:

\[y^*\sim binomial(n_i,\pi_i), i=1,...,n_i\]

donde \(0<\pi_1<1\) depende de la dosis. Definiendo \(y_i=y^*_i/n_i\) (la proporción de escarabajos muertos para la dosis \(i\)), tenemos que:

\(E(y_i|dosis_i)=\pi_i\) y \(V(y_i|dosis_i)=\pi_i(1-\pi_i)/n_i\)

Dado que \(0\leq \pi_i \leq 1\), se podría proponer que:

\[\pi=g^{-1}(dosis,\beta)=\frac{exp(\beta_0+log(dosis_i)\beta_1)}{1+exp(\beta_0+log(dosis_i)\beta_1)}=\frac{exp(\eta_i)}{1+exp(\eta_i)}\]

Por lo que \(g(\pi_i)=log(\frac{\pi_i}{1-\pi_i})=\eta_i\). Esta función recibe el nombre de función “logit” y su forma la podemos ver gráficamente en la Figura. Como vemos, está función está acotada entre 0 y 1, garantizando que las probabilidades estimadas siempre estén en este rango, y tiene forma de ‘S’ o sigmoidal.

Modelo Poisson para el número de ataque epilépticos

Los datos data(epilepsy) de la librería HSAUR2 corresponden a un ensayo clínico para evaluar el efecto del fármaco Progabida sobre los ataques epilépticos. Al inicio del estudio, los 59 pacientes epilépticos fueron observados durante 8 semanas, y se registró el número de convulsiones. Luego, fueron aleatorizados al tratamiento con el fármaco Progabide (31 pacientes) o al grupo de placebo (28 pacientes). A los pacientes de ambos grupos se les observo durante cuatro períodos de dos semanas y se registró el número de convulsiones.

Estos datos son de naturaleza longitudinal (cada paciente cuenta con 4 observaciones tomadas en el tiempo), lo que requiere metodologías que tengan en cuenta la correlación que hay en los datos. En es caso, no consideraremos las observaciones intermedias de cada paciente, sino solamente las mediciones tomadas luego de las cuatro semanas de observación.

Las variables que se tendrán en cuenta son las siguientes:

  1. age: edad del paciente,
  2. base: número de ataques epilépticos en las 8 semanas antes de iniciar los tratamientos,
  3. treatment: tratamiento (placebo, Progabida),
  4. seizure.rate(variable respuesta): número de ataques epilépticos en las últimas dos semanas al final de estudio (luego cuatro semanas de tratamiento).
    treatment base age seizure.rate period subject
1     placebo   11  31            5      1       1
110   placebo   11  31            3      2       1
112   placebo   11  31            3      3       1
114   placebo   11  31            3      4       1
2     placebo   11  30            3      1       2
210   placebo   11  30            5      2       2

Definiendo \(y_i\) como el numero de ataques epilépticos (\(\times\) dos semanas) del paciente \(i\) luego de 8 semanas de tratamiento, podemos suponer que: \(y_i\sim Poisson(\lambda_i), i=1,...,n\) donde \(\lambda_i=g(\eta_i)\), donde \(\eta_i=\beta_0+\beta_1treat_i+\beta_2base_i+\beta_3base_itreat_i\). Entonces \(E(y_i|x_i)=V(y_i|x_1)=\lambda_1\). Dado que \(\lambda_1>0\), se puede asumir que:

\[\lambda_i=g^{-1}(\eta_i)=exp(\eta_i)\]

Por lo que, \(g(\lambda_i)=log(\lambda_i)\)

Este modelo puede ser una opción para estimar el número medio de ataques epiléticos de los pacientes del ensayo clínico en epilepsia.

Ajuste e interpretación de parámetros del modelo logístico

Para los datos de mortalidad de escarabajos, tenemos el siguiente modelo:

\(y^*_i\sim binomial(\eta_i,\pi_i)\), donde \(\pi_i=\frac{exp(\beta_0+\beta_1*log(dosis_i))}{1+exp(\beta_0+\beta_1*log(dosis_i))}\)

La estimación de los parámetros del GLM por MLE se puede hacer utilizando la función glm(). En esta función debemos determinar la distribución de probabilidad asociada a los datos y la función de enlace con el argumento family. Para el modelo logístico, usamos family=binomial (por defecto la función de enlace es logit):


Call:
glm(formula = cbind(dead, n - dead) ~ logdose, family = binomial)

Coefficients:
            Estimate Std. Error z value Pr(>|z|)    
(Intercept)  -60.717      5.181  -11.72   <2e-16 ***
logdose       34.270      2.912   11.77   <2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 284.202  on 7  degrees of freedom
Residual deviance:  11.232  on 6  degrees of freedom
AIC: 41.43

Number of Fisher Scoring iterations: 4

Aquí vemos que el efecto del logarítmo de la dosis es positivo y significativo. Es decir que, un incremento en la dosis significa un aumento en la probabidad de que el escarabajo muera. La relación la podemos ver de forma gráfica en la figura.

Datos de mortalidad de escarabajos. Estimación de la probabilidad de que el escarabajo muera en función del logarítmo de la dosis de disulfuro de carbono gaseoso.

La interpretación de los coeficientes del modelo logístico se hacen a través de los odds ratio. Primero, un odd está definido como: \[odd=\frac{P(Y=1)}{P(Y=0)}\]

Es decir, es una razón entre la probabilidad de éxito sobre la probabilidad de fracaso. Por ejemplo, si el odd es igual a dos, estaríamos diciendo que la probabilidad de éxito es el doble de la probabilidad de fracaso. Para el caso del modelo logístico simple, tenemos que:

\[odd(x)=\frac{P(Y=1|x)}{P(Y=0|x)}=\frac{\frac{exp(\beta_0+x*\beta_1)}{1+exp(\beta_0+x*\beta_1)}}{1-\frac{exp(\beta_0+x*\beta_1)}{1+exp(\beta_0+x*\beta_1)}}=exp(\beta_0+x*\beta_1)\]

Ahora, los odds ratio están definido como \(OR=\frac{odd(x=a+1)}{odd(x=a)}\). Para el caso del modelo logístico simple tenemos que el OR es:

\[OR(x)=\frac{odd(x=a+1)}{odd(x=a)}=\frac{exp[\beta_0+(a+1)*\beta_1]}{exp(\beta_0+a*\beta_1)}=exp(\beta_1)\]

Por lo tanto, por cada cambio unitario en \(x\), los odds de morir incrementan por un factor de \(exp(\beta_1)\). Por un cambio en \(x\) de \(a\) a \(a+\delta\), tenemos que \(OR=exp(\delta*\beta_1)\) Para los datos de los escarabajos un cambio unitario en el log(dosis) es muy grande, por lo que podríamos interpretar \(\beta_1\) usando un aumento en la log dosis mas pequeño, por ejemplo de \(\delta=0.02\)

\[exp(0.01\times34.270)=1.984\]

Es decir, si el log de la concentración de aumenta en
0.02, entonces la probabilidad de que el escarabajo muera aumenta casi el doble.

Ajuste e interpretación de parámetros del modelo Poisson

Para el ensayo clínico en epilepsia, el modelo propuesto es:

\(y_i \sim Poisson(\lambda_i)\), donde \(\lambda_i=exp(\beta_0+\beta_1treat_i+\beta_2base_i+\beta_2base_itreat_i)\)

Para el ajuste del modelo usamos la función glm() con el argumento family=poisson.


Call:
glm(formula = seizure.rate ~ treatment + base + base:treatment, 
    family = poisson, data = epilepsy4)

Coefficients:
                          Estimate Std. Error z value Pr(>|z|)    
(Intercept)              1.2958397  0.0569022  22.773  < 2e-16 ***
treatmentProgabide      -0.2492267  0.0767807  -3.246  0.00117 ** 
base                     0.0214484  0.0009171  23.387  < 2e-16 ***
treatmentProgabide:base  0.0004227  0.0010777   0.392  0.69489    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(Dispersion parameter for poisson family taken to be 1)

    Null deviance: 2521.75  on 235  degrees of freedom
Residual deviance:  989.84  on 232  degrees of freedom
AIC: 1763.8

Number of Fisher Scoring iterations: 5

Los resultados del ajuste muestran que el número de ataques pre-tratamiento tiene un efecto positivo sobre la media del número de ataques epilépticos. Es decir, esta aumenta entre más ataques previos tenga el paciente. Mientras que, el tratamiento parece tener un efecto negativo. Es decir, el prograbide reduce la media del número de ataques epilépticos con respecto al placebo. Finalmente, el efecto interacción es muy pequeño sugiriendo que el efecto del tratamiento no se ve afectado por la frecuencia de los ataques epilépticos que tiene el paciente. La estimación de la media se puede observa de forma gráfica en la Figura.

Datos de epilepsia. Estimación de la media de ataques epilépticos (por dos semanas) luego de cuatro semanas de tratamiento. La línea negra representa la media de ataques para el grupo placebo, mientras que, la linea roja la media de ataques para el tratamiento con Progabide

En el modelo Poisson simple, tenemos que \(E(Y|x)=exp(\beta_0+x\beta_1)\). Si aumentamos a \(x\) en \(\delta\) unidades, tenemos que \(E(Y|x+\delta)=exp(\beta_0+(x+\delta)\beta_1)\). Ahora si calculamos el logaritmo de la razón de los valores esperados obtenemos que:

\[log[\frac{E(Y|x=a+\delta)}{E(Y|x=a)}]=\delta\beta_1\]

Por lo tanto, \(exp(\delta\beta_1)=\frac{E(Y|x=a+\delta)}{E(Y|x=a)}\). Es decir que, \(exp(\delta\beta_1)\) es una tasa de crecimiento del valor esperado de Y por un aumento de \(x\) en \(\delta\) unidades.

Por ejemplo, si el número de ataques epilépticos pre-tratamiento aumenta 20 casos, entonces el valor esperado de ataques epilépticos post-tramiento aumenta un 52% \((exp(20\times0.021)=1.522)\). Además, el tramiento con Progabida reduce en un poco más del 40% el número de episodios de epilepsia \((exp(-0.3635857)=0.695)\). Finalmente, el efecto de los casos pre-tramiento es el mismo para los pacientes en el grupo tratamiento y el control \((exp(0.0009)\approx1)\)

Estimación y contraste de hipótesis de las funciones base

Al igual que en los modelos lineales, uno puede estar interesado en realizar pruebas hipótesis sobre los coeficientes del modelo. Por ejemplo, en el estudio sobre epilépsia estamos interesados en evaluar si hay un efecto significativo del tratamiento sobre los ataques epilépticos. Esto es: \[H_0:\beta_1=\beta_3=0\]

Si rechazamos \(H_0\) podemos concluir que el tratamiento con Progabida tiene un efecto sobre el número de ataques epilépticos. Particularmente, si \(\beta_1<0\), este fármaco reduce los episodios. Suponga que tenemos un modelo con el siguiente predictor lineal:

\[\eta=x'_1\beta_1+x'_2\beta_2\]

donde \(x_1=(1,x_{11},...,x_{1,q-1})'\) y \(x_2=(1,x_{21},...,x_{2,p-q})'\) son vectores de covariables;\(\beta_1\) y \(\beta_2\) son vectores de coeficientes de dimensiones \(q\) y \(p-q\), respetivamente. Ahora, planteamos el siguiente sistema de hipótesis:

\[H_0:\beta_2=0\] \[H_1:B_2\neq0\] Para estimadores basados en verosimilitud, podemos utilizar tres métodos diferentes: la prueba de razón de verosimilitud, la prueba del score o la prueba de Wald.

Método de razón de verosimilitud

La idea de este método es comparar la verosimilitud bajo dos condiciones: \((L_0)\) la máxima alcanzada bajo \(H_0\) (es decir, asumiendo que \(\beta_2=0\)) y \((L_1)\) la evaluada en la estimación máximo verosímil, es decir \(L(\hat \beta)\). El estadístico de prueba usado es:

\[LR=2log(\frac{L(\hat \beta)}{L(\hat \beta_0)})=2(l_i-l_0)\]

Asumiendo que \(H_0\) es cierta, asintóticamente tenemos que \(LR\sim \chi^2_{p-q}\). Por lo que, rechazamos \(H_0\) con un nivel de significancia de \(\alpha\), si \(LR>\chi^2_{1-\alpha,p-q}\)

Método de Wald

Asintóticamente, tenemos que \(\hat\beta \sim N[\beta,I(\beta)^{-1}]\), por lo tanto se tiene que:

\[(\hat \beta-\beta)'I(\beta)(\hat \beta-\beta)\sim \chi^2_p\]

Entonces, para probar \(H_0:\beta_2=\beta^0_2\), se puede utilizar el siguiente estadístico de prueba:

\[W=(\hat \beta_2-\beta^0_2)'[V(\hat \beta_2)]^{-1}(\hat \beta_2-\beta^0_2)\]

Si \(H_0\) es cierta, entonces \(W\sim \chi^2_{p-q}\). Por lo que, rechazamos \(H_0\) con un nivel de significancia de \(\alpha\), si \(W> \chi^2_{1-\alpha,p-q}\)

Intervalos de confianza

A partir de los estadísticos de prueba anteriores se pueden encontrar intervalos de confianza para \(\beta\). Por ejemplo usando el estadístico de Wald:

\(\hat\beta_j\pm z_{\alpha/2}\sqrt{V(\hat\beta_j)}\)

Otra alternativa es a partir de los perfiles de log-verosimilitud, el intervalo del \((1-\alpha)\%\) de confianza para \(\beta_j\) esta definido a partir de los valores de \(\beta^0_j\) que satisfacen:

\[-2[l(\hat\beta)-l(\hat\beta^0)]<\chi^2_{1-\alpha,1}\]

donde \(l(\hat\beta^0)\) es la log-verosimilitud donde \(\beta_j\) está restringido a los valores de \(\beta^0_j\).

Intervalo de confianza para la media

Dado que \(\hat\eta_0=x'_0\hat\beta\), por lo tanto (asintóticamente):

\[\hat\eta_0 \sim N[x'_0\beta,x'_0I(\beta)^{-1}x_0]\]

Entonces un intervalo de confianza para \(\eta_0\) es:

\[\hat\eta_0 \pm z_{\alpha/2}\sqrt{x'_0I(\hat\beta)^{-1}x_0}\]

Para encontrar el intervalo de confianza para \(\mu_i\), se hace la transformación \(g^{-1}\) a los límites de confianza.

Mortalidad de escarabajos

La estimación de la probabilidad de que el escarabajo muera se puede observar en la Figura

Intervalo del 95% de confianza para la probabilidad de que el escarabajo muera.

Ataques epilépticos

Los intervalos del 95% de confianza para los parámetros del modelo son:

                               2.5 %       97.5 %
(Intercept)              1.183047945  1.406133317
treatmentProgabide      -0.399589524 -0.098552017
base                     0.019641227  0.023237082
treatmentProgabide:base -0.001684872  0.002540194

Aquí vemos que el efecto del tratamiento está entre -0.4 y -0.09. Es decir, que la reducción del número de ataques epilépticos está entre el 10% y el 49%. Mientras que, como ya se mencionó antes, el efecto interacción no tiene un aporte significativo.

La media del número de ataques epiléptico por dos semanas se puede observar en la Figura . Se puede observar que las estimaciones de la media para el grupo tratamiento es inferior que para el grupo control.

Estimación de la media de ataques epilépticos por dos semanas en el grupo placebo (línea negra) y el grupo tratamiento (línea roja).