Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Luis Cayuela
Junio de 2010
58
Modelos lineales generalizados (GLM) (versión 1.0)
59
Índice
1. ¿Qué son los GLM? 61
1.1. La estructura de los errores . . . . . . . . . . . . . . . . . . . 63
1.2. La función de vı́nculo . . . . . . . . . . . . . . . . . . . . . . . 65
4. La función glm() 73
5. Modelos binomiales 74
5.1. Respuestas binarias (regresión logı́stica) . . . . . . . . . . . . 74
5.1.1. Un ejemplo: Prediciendo la distribución de especies . . 75
5.2. Proporciones . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.2.1. Análisis de proporciones para factores con uno y dos
niveles . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
5.2.2. Un ejemplo: ¿Son eficientes los pesticidas en el control
de plagas? . . . . . . . . . . . . . . . . . . . . . . . . . 81
6. Modelos Poisson 86
7. Más ejemplos 87
60
Luis Cayuela Modelos lineales generalizados
En muchas ocasiones, sin embargo, nos encontramos con que uno o varios
de estos supuestos no se cumplen. Por ejemplo, es muy común en ecologı́a
que a medida que aumenta la media de la muestra, aumente también su
varianza. Estos problemas se pueden llegar a solucionar mediante la
transformación de la variable respuesta (por ejemplo tomando logaritmos).
Sin embargo estas transformaciones no siempre consiguen corregir la falta
de normalidad, la heterocedasticidad (varianza no constante) o la no
linealidad de nuestros datos. Además resulta muchas veces difı́cil
interpretar los resultados obtenidos. Si decimos que la abundancia de pino
silvestre es función de la elevación tenemos una idea más o menos clara de
lo que esto puede significar. Si la relación es positiva, un aumento de la
elevación aumentarı́a la abundancia de esta especie. Pero ¿qué quiere decir
que el logaritmo de la abundancia de pino silvestre es función de la
elevación? Esto ya no es tan intuitivo. La cosa se complica aún más cuando
utilizamos otro tipo de transformaciones, como las exponenciales, las
potencias, etc. Una alternativa a la transformación de la variable respuesta
y a la falta de normalidad es el uso de los modelos lineales generalizados.
Los modelos lineales generalizados (GLM de las siglas en inglés de
Generalized Linear Models) son una extensión de los modelos lineales que
permiten utilizar distribuciones no normales de los errores (binomiales,
Poisson, gamma, etc) y varianzas no constantes.
Ciertos tipos de variables respuesta sufren invariablemente la violación de
estos dos supuestos de los modelos normales y los GLM ofrecen una buena
alternativa para tratarlos. Especı́ficamente, podemos considerar utilizar
GLM cuando la variable respuesta es:
61
Luis Cayuela Modelos lineales generalizados
a) b)
10
4
8
3
Varianza
Varianza
6
2
4
1
2
0
0 2 4 6 8 10 0 2 4 6 8 10
Media Media
c) d)
10
20 40 60 80
5
Varianza
Varianza
0
−5
−15
0 2 4 6 8 10 0 2 4 6 8 10
Media Media
62
Luis Cayuela Modelos lineales generalizados
2. La función de vı́nculo.
Poisson, muy útiles para conteos (p.e. número de muertos por accidentes
de tráfico; número de dı́as con heladas en el mes de enero; número de
colonias de bacterias en una placa de agar; número de especies de
plantas leñosas en un cuadrado de muestreo de 10 m2 ).
Además, los modelos lineales, con los que estamos más familiarizados,
asumen que tanto la variable respuesta como los errores del modelo siguen
una distribución normal. Una distribución normal es, por definición,
63
Luis Cayuela Modelos lineales generalizados
15
10
5
0
1 2 3 4 5 6 7
Número de hijos
64
Luis Cayuela Modelos lineales generalizados
Log(yi ) = β0 + β1 · xi
En dónde:
y = número de ovejas muertas,
x = número de parásitos,
β0 y β1 = coeficientes del modelo.
65
Luis Cayuela Modelos lineales generalizados
●
● ●●
● ●●
●
● ●
● ●
9
●
●
● ●
●
●● ●
8
●
● ● ●
●
Índice de salud
●
●
7
●
●
●
6
● ●
●
●
5
● ●
●
4
●
3
30 40 50 60 70
Edad
Ahora bien, los valores estimados por este modelo no son los valores de y,
sino los del Log(y). Para obtener los valores estimados de y, lo que se debe
de hacer es aplicar la función inversa a la función de vı́nculo utilizada, en
este caso, la función exponencial. Por tanto:
exp(Log(yi )) = exp(β0 + β1 · xi )
yi = exp(β0 + β1 · xi )
66
Luis Cayuela Modelos lineales generalizados
● ●
4.5
100
●
●
●
● ●●
●
● ●●
●
3.5
●●
●● ●
60
● ● ● ●
●
●● ● ●● ●
●
● ● ● ●
●
2.5
●● ● ●
●● ● ●
● ● ●
0 20
●
● ●● ● ● ●
●●
1.5
●● ● ●
●● ●
67
Luis Cayuela Modelos lineales generalizados
●
100
●
80
●
●
Abundancia de pino silvestre
60
●
● ●
●
●
40
●
●
●● ●
● ● ●
20
●
● ● ● ● ●
● ●
●
● ●
●
●●
0
Cuadro 1: Las funciones de vı́nculo más comunes utilizadas por los GLM
68
Luis Cayuela Modelos lineales generalizados
69
Luis Cayuela Modelos lineales generalizados
70
Luis Cayuela Modelos lineales generalizados
Devianza.modelo.nulo−Devianza.residual
D2 = Devianza.modelo,nulo
· 100
Análisis de los residuos. Los residuos son las diferencias entre los valores
estimados por el modelo y los valores observados. Sin embargo,
muchas veces se utilizan los residuos estandarizados, que tienen que
seguir una distribución normal. Conviene analizar los siguientes
gráficos:
71
Luis Cayuela Modelos lineales generalizados
72
Luis Cayuela Modelos lineales generalizados
4. La función glm()
La función glm() viene especificada por los siguientes argumentos
> args(glm)
∗ binomial(link = ”logit”)
∗ gaussian(link = ”identity”)
∗ Gamma(link = ”inverse”)
∗ inverse.gaussian(link = ”1/muˆ2”)
73
Luis Cayuela Modelos lineales generalizados
∗ poisson(link = ”log”)
∗ quasi(link = ”identity”, variance = ”constant”)
∗ quasibinomial(link = ”logit”)
∗ quasipoisson(link = ”log”)
5. Modelos binomiales
5.1. Respuestas binarias (regresión logı́stica)
Muchas variables respuesta son del tipo:
∗ vivo o muerto,
∗ hombre o mujer,
∗ infectado o saludable,
∗ ocupado o vacı́o.
P (y) = py · (1 − p)(1−y)
74
Luis Cayuela Modelos lineales generalizados
> str(peces)
> edit(peces)
75
Luis Cayuela Modelos lineales generalizados
0.8
0.6
Density
Density
0.002
0.4
0.2
0.000
0.0
Precipitacion Orden
Ajuste del modelo a los datos. Para ajustar el modelo a los datos,
usaremos la función glm(). Es conveniente asignar el resultado del
ajuste del modelo a un nuevo objeto (p.e. glm1 o modelo1). Este
objeto será del tipo glm y contendrá información sobre los coeficientes
del modelo, los residuos, etc. Para acceder a los resultados podemos
utilizar las funciones anova() y summary().
76
Luis Cayuela Modelos lineales generalizados
Response: Presencia
> summary(glm1)
Call:
glm(formula = Presencia ~ Precipitacion + Orden, family = binomial,
data = peces)
Deviance Residuals:
Min 1Q Median 3Q Max
-2.0596 -0.8621 -0.2077 0.8227 1.9165
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -5.214e+00 1.663e+00 -3.135 0.001717 **
Precipitacion 6.674e-03 2.448e-03 2.727 0.006393 **
Orden2 1.870e+00 4.795e-01 3.900 9.6e-05 ***
Orden3 3.950e+00 1.067e+00 3.700 0.000215 ***
Orden4 1.699e+01 1.455e+03 0.012 0.990687
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
77
Luis Cayuela Modelos lineales generalizados
AIC: 167.01
Como podemos ver, tanto la variable Precipitacion como el factor Orden son
significativos (P(>|Chi|) < 0.05). Ahora bien, no todos los coeficientes del
factor Orden son significativos. En principio, el Intercept, que resume el
efecto del nivel de Orden1 sobre la presencia de peces, es significativo y
negativo. Esto indicarı́a que en niveles de Orden1 la probabilidad de
presencia de peces es menor que en el resto de niveles. Los niveles Orden2 y
Orden3 también son significativos pero positivos, lo que indicarı́a que estos
niveles incrementan la presencia de peces en los tramos fluviales. Por
último, el nivel de Orden4 no es significativo, lo que indicarı́a que el valor
positivo del coeficiente no es significativamente distinto de cero y, por tanto,
tiene un efecto nulo sobre la variable respuesta.
Por último, es interesante saber qué proporción de la varianza explica el
modelo (es decir, la devianza). La función summary() nos da la Null
deviance y la Residual deviance. Como vimos anteriormente, la devianza o
varianza explicada por el modelo serı́a:
Devianza.modelo.nulo−Devianza.residual
D2 = Devianza.modelo,nulo
· 100
207,97−157,01
D2 = 207,97
· 100 = 24,49 %
78
Luis Cayuela Modelos lineales generalizados
1.5
27 ●
86 57 ●
2
1.0
●
● ●
●●
●
Residuals
●
●
●● ● ●●
●
●
●●
●
●● ●
● ●
●
●●
●●● ●
●● ●
●
●●● ●● ●
●
● ●
● ●
●●
0
●
●●
● ● ●●
●●
●
●
0.5
●●
●
●● ●
●
●
● ●
−2 −1
●●
●
● ●●
●
●
●
●●
●
57 ●
27 ●
0.0
0 5 10 15 0 5 10 15
86
●●● ● ●
Std. deviance resid.
●●● ●●
2
●
●●
●
●
●
●
●
●
●
●
● ●
●●●
●
●
●●
●
● ●
●
●
●● ●
●●●●●
● ●● ●
1
●●
● ●●
●
●
●
●
●
● ●●
● ●●● ● ●
● ●
●
●
●
●●
●●
●
●
●
● ●●●●
●● ●●● ● ●● ● ●
● ● ●
●
● ●
0
●
●
●●
●●●●
●●●
●
●
●
●●●
−1
● ●●●
●
●
●●
●
●●
● ● ●●● ●
●
●●
●●
●
●●
●
●● ●
● ●
−1
●
●
●●
●
●●
●
●●
●●
●●
●●
●
●●
●●
●●
● ● 139
●●● ● 57
● Cook's distance
●●
−3
−2
57 27 ●
● 27
79
Luis Cayuela Modelos lineales generalizados
5.2. Proporciones
En otras ocasiones la variable respuesta va a ser una proporción como:
∗ porcentaje de mortalidad,
80
Luis Cayuela Modelos lineales generalizados
2. La varianza no es constante,
> library(faraway)
> data(beetle)
> str(beetle)
81
Luis Cayuela Modelos lineales generalizados
●
●
Proporción de escarabajos afectados
0.8
●
●
0.6
●
0.4
●
0.2
0.0
12 14 16 18 20 22 24
Concentracion de insecticida
82
Luis Cayuela Modelos lineales generalizados
> summary(glm.beetle1)
Call:
glm(formula = y ~ conc, family = binomial)
Deviance Residuals:
Min 1Q Median 3Q Max
-3.0670 -1.7117 0.1495 1.7340 2.4150
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -6.01047 0.77937 -7.712 1.24e-14 ***
conc 0.34127 0.04153 8.217 < 2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
83
Luis Cayuela Modelos lineales generalizados
●6
1●
4
Std. deviance resid.
●8 ● ●8 ●
● ●
● ●
3
Residuals
●
●
● ●
2
●
●
−1
1
●
1●
−3
●6
0
−2 −1 0 1 2 −2 −1 0 1 2
8● 8●
Std. deviance resid.
●
Std. Pearson resid.
1
2
● ● ●
● ● 0.5
●
5
●
0
● ●
● ●
−5
● 0.5
−2
1
●
−15
●6
Cook's distance
●1 1●
−4
●6
Ahora sı́ que los gráficos de los residuos son más explicativos de la
normalidad (o falta de normalidad) de los mismos. Vemos que el gráfico de
los residuos estandarizados frente a los valores predichos representa más o
menos una nube de puntos, lo cual demuestra normalidad. También vemos
que no hay desvı́os muy grandes con respecto a la diagonal en el q-q plot, lo
cual parece confirmar la linealidad de los datos. Por último, no hay datos
atı́picos ni sobre-influyentes. Por tanto el modelo parece bastante adecuado.
Vamos a ver ahora la representación gráfica de los valores predichos por el
modelo, para demostrar que este modelo permite acotar los valores entre 0
y 1.
84
Luis Cayuela Modelos lineales generalizados
●
●
0.8
●
●
0.6
●
yprop
0.4
●
0.2
0.0
5 10 15 20 25 30 35 40
conc
85
Luis Cayuela Modelos lineales generalizados
●
●
0.8
●
●
0.6
●
yprop
0.4
●
0.2
0.0
5 10 15 20 25 30 35 40
conc
6. Modelos Poisson
Los modelos Poisson se utilizan generalmente para representar datos de
conteos, es decir, datos enteros positivos, como por ejemplo el número de
individuos que mueren (pero ¡ojo! no la proporción de individuos que
mueren), el número de empresas que van a bancarrota, el número de dı́as
que hiela o la abundancia de una determinada especie. Con datos de
conteos, el 0 aparece como un valor más de la variable respuesta, pero
valores negativos no tienen lugar. En los conteos por tanto vamos a estar
86
Luis Cayuela Modelos lineales generalizados
7. Más ejemplos
Se pueden encontrar más ejemplos resueltos en
http://curso-r-ceama2009.wikispaces.com/GLM.
87