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 |
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
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.
Cualitativos (se refieren a calidad)
Cuantitativos (se refieren a cantidad)
Los procesos naturales que generan conteos que muy frecuentemente llevan a incrementos en la varianza en situaciones en las que tenemos más conteos. Los conteos cercanos a cero tendrán naturalmente una variabilidad baja, porque están limitados por cero, mientras que los conteos más altos tendrán naturalmente una mayor variabilidad.
Escoger un modelo adecuado para nuestra varianza..
Los modelos de varianza adecuados son cruciales para obtener los errores estándar y, por lo tanto, para detectar efectos reales en comparación de los espurios.
Familia | Función link por default |
---|---|
gaussiano log-gaussiano binomial | (link = “identity”) (link = “log”) (link = “logit”) |
gaussian | (link = “identity”) |
Gamma | (link = “inverse”) |
inverse.gaussian | (link = “1/mu^2”) |
poisson | (link = “log”) |
quasi | (link = “identity”, variance = “constant”) |
quasibinomial | (link = “logit”) |
quasipoisson | (link = “log”) |
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.
Los pasos para ajustar un GLM incluyen:
Especificación del modelo. Definición del componente aleatorio, predictor lineal y función de enlace.
Estimación de los parámetros. Para los GLM, la estimación se hace por máxima verosimilitud.
Evaluación del modelo. Verificar si el modelo estimado se ajusta bien a los datos.
Inferencia. Cálculo de intervalos de confianza, pruebas de hipótesis e interpretación de los resultados según los objetivos del estudio.
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)}\)
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). \]
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.
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:
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.
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.
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)\)
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.
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}\)
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}\)
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\).
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.
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.
Los intervalos del 95% de confianza para los parámetros del modelo son:
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).