Documentos de Académico
Documentos de Profesional
Documentos de Cultura
https://sites.google.com/a/upr.edu/pedro-torres/
ESMA 6835
Curso: Modelos Estadísticos Avanzados
Dr. Pedro A. Torres-Saavedra • Spring 2017 • University of Puerto Rico, Mayaguez
1
Spring 2017 Curso: Modelos Estadísticos Avanzados ÍNDICE GENERAL
Índice general
1. Ejemplos Introductorios 6
1.1. Age-Related Macular Degeneration (ARMD) Trial [1] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2. Respuestas Favorables en Clínicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.3. Circunferencia del tronco en árboles de naranja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.4. Nutrición . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2
Spring 2017 Curso: Modelos Estadísticos Avanzados ÍNDICE GENERAL
3
Spring 2017 Curso: Modelos Estadísticos Avanzados ÍNDICE GENERAL
Instrucciones Generales
Antes de comenzar a cubrir el material del curso es necesario que instalen en sus computadoras personales
los siguientes programas que serán usados para ajustar modelos estadísticos durante el semestre. Tanto
R como SAS serán usados continuamente durante el curso. Al final, se espera que el estudiante pueda
ajustar los modelos estadísticos discutidos en clase usando ambos programas al igual que hacer análisis
exploratorios.
1. Instalar la última versión de R (www.rproject.com) y RStudio (www.rstudio.com). Por ahora asegú-
rese de instalar las siguientes librerías de R :
# Librerías de R
# ggplot2 y lattice: gráficas en paneles
# knitr: reportes el LaTeX y R
# dplyr: manipulacion de datos (estadisticos por grupos, ordenamiento, etc)
# haven: importa bases de datos de SAS, SPSS y Stata directamente a R
# readxl: Importa bases de datos de Excel a R
pckgs = c("ggplot2", "knitr", "lattice", "dplyr", "haven", "readxl", "nlme")
install.packages(pckgs, repos="http://cran.us.r-project.org")
# ipak function: install and load multiple R packages.
# check to see if packages are installed. Install them if they are not, then load them i
# Source: https://gist.github.com/stevenworthington/3178163
ipak <- function(pkg){
new.pkg <- pkg[!(pkg %in% installed.packages()[, "Package"])]
if (length(new.pkg))
install.packages(new.pkg, dependencies = TRUE, repos="http://cran.us.r-project.org
sapply(pkg, require, character.only = TRUE)
}
4
Spring 2017 Curso: Modelos Estadísticos Avanzados ÍNDICE GENERAL
3. Registrarse como usuario en el curso diseñado por el profesor en la plataforma SAS for Academics.
Usted deberá recibir un correo electrónico con las instrucciones para registrarse. Este registro le
permitirá usar SAS Studio en un explorador de internet y accesar las bases de datos y programas de
SAS usados en el curso.
5
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 1. EJEMPLOS INTRODUCTORIOS
Capítulo 1
Ejemplos Introductorios
Este conjunto de datos corresponde a un ensayo clínico en varios centros comparando una droga experimental
con un placebo en pacientes diaganosticados con ARMD. Los pacientes que padecen de ARMD generalmente
pierden visión progresivamente. En este ensayo se midió la agudeza visual de 240 pacientes al comienzo
del estudio y en cuatro ocasiones después de la aleatorización a los dos grupos (4, 12, 24 y 52 semanas).
La agudeza visual se mide de acuerdo a la habilidad de los pacientes para leer las líneas en imágenes
estandarizadas. La variable de interés en el estudio corresponde al número de letras leídas correctamente.
A continuación se muestran las primeras líneas de la base de datos. La variable respuesta es visual. La
variable miss.pat contiene el patrón de datos faltantes donde la X indica que hay un dato faltante. Por
ejemplo, el código –XX significa que el paciente tiene únicamente la primera y segunda medición (las últimas
dos son faltantes). La variable tp indica el número consecutivo de la medición donde 0 es la medición al
comienzo del estudio (baseline).
subject treat.f visual0 miss.pat time.f time visual tp
1 1 Active 59 --XX Baseline 0 59 0
2 1 Active 59 --XX 4wks 4 55 1
3 1 Active 59 --XX 12wks 12 45 2
4 2 Active 65 ---- Baseline 0 65 0
5 2 Active 65 ---- 4wks 4 70 1
6 2 Active 65 ---- 12wks 12 65 2
La figura 1.1.1 muestra los perfiles individuales de los pacientes a través del tiempo. Se puede observar
que en ambos grupos la agudeza visual tiende a disminuir pero es más notable en el grupo experimental
(Active). También se puede ver que algunos pacientes se retiraron del estudio (datos faltantes). L figura
1.1.2 muestra el perfil promedio de la agudeza visual por grupo. Esta gráfica confirma la percepción inicial
de los perfiles individuales.
# Figura 1.1.1
ggplot(armd0, aes(x = time, y = visual, group = subject, color = treat.f)) +
geom_line()
6
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 1. EJEMPLOS INTRODUCTORIOS
80
60
treat.f
visual
Placebo
40 Active
20
0
0 10 20 30 40 50
time
# Fugura 1.1.2
means_vis <- armd0 %>% group_by(treat.f, time) %>% summarize(meanVisual = mean(visual))
ggplot(means_vis, aes(x = time, y = meanVisual, group = treat.f, color = factor(treat.f))) +
geom_line() + geom_point() + ylim(0, 90)
Vamos a calcular algunos estadísticos descriptivos por cada ocasión y tratamiento. Note que la agudeza
media disminuye a través del tiempo al igual que el número de pacientes en el estudio.
Descriptive statistics
Placebo Active
Baseline 119 121
4wks 117 114
12wks 117 110
24wks 112 102
52wks 105 90
[1] "Placebo" "Active" "Placebo" "Active" "Placebo" "Active"
P:n A:n P:Mean A:Mean P:Mdn A:Mdn
Baseline 119 121 55.33613 54.57851 56.0 57.0
4wks 117 114 53.96581 50.91228 54.0 52.0
12wks 117 110 52.87179 48.67273 53.0 49.5
24wks 112 102 49.33036 45.46078 50.5 45.0
52wks 105 90 44.43810 39.10000 44.0 37.0
Note que en el diagrama de cajas por tiempo y tratamiento (fig. 1.1.3) la tendencia promedio de la agudeza
7
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 1. EJEMPLOS INTRODUCTORIOS
75
meanVisual
factor(treat.f)
50
Placebo
Active
25
0 10 20 30 40 50
time
visual a través del tiempo en ambos grupos podría ser explicada usando un modelo lineal. Además, la
variabilidad parece ser constante a través del tiempo.
Un aspecto importante en el modelaje estadístico, y en general en el análisis de datos, consiste en analizar
los patrones de datos faltantes en los datos. Ignorar los datos faltantes puede resultar en conclusiones
incorrectas. Existen métodos de imputación tales como imputación múltiple que se pueden implementar
antes del análisis de datos. Note que tanto en el grupo placebo como en el experimental hay datos faltantes.
El caso más frecuente consiste en pacientes que se retiraron antes de la última medición.
---- ---X --XX -XXX XXXX
Placebo 102 9 3 1 1
Active 86 15 5 5 5
Finalmente, vamos a estudiar la correlación que existe entre las mediciones repetidas (figura 1.1.4).
Claramente la correlación entre las mediciones adjacentes de agudeza visual están altamente correlacionadas
(r ≈ 0,85). Las mediciones distanciadas a un intervalo de tiempo están ubicadas en la segunda diagonal
de la matrix de dispersión, y así sucesivamente (note que en este caso las mediciones no son igualmente
espaciadas y hablar de un retardo de orden 1 entre la medición 1 y 2 no implica la misma distancia en
el tiempo que entre la medición 2 y 3). Sin embargo, es claro que la correlación disminuye cuando las
mediciones están más distanciadas. El análisis de datos correlacionados para modelos lineales lo estaremos
abordando en el Capítulo ??.
En conclusión este conjunto de datos presenta una tendencia en la agudeza media que quizás se pueda
modelar con un modelo lineal y las observaciones para el mismo individuo están altamente correlacionadas.
Por lo tanto, los supuestos básicos de un modelo lineal clásico no se cumplen en este problema. Además,
8
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 1. EJEMPLOS INTRODUCTORIOS
80
60
factor(treat.f)
visual
Placebo
Active
40
20
0
0 4 12 24 52
factor(time)
9
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 1. EJEMPLOS INTRODUCTORIOS
80 40 60 80
60
0.55 0.61 0.71 0.84 40 vis52 40
20
0 20 40
0
80 40 60 80
60
0.71 0.77 0.83 40 vis24 40
20
0 20 40
0
80 40 60 80
60
0.78 0.85 40 vis12 40
20
0 20 40
0
80 40 60 80
60
0.89 40 vis4 40
20
0 20 40
0
80 40 60 80
60
40 vis0 40
20
0 20 40
0
10
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 1. EJEMPLOS INTRODUCTORIOS
este conjunto de datos tiene datos faltantes que deberían ser considerados al momento de ajustar un modelo
estadístico.
Este conjunto de datos corresponde a un experimento en 12 clínicas sobre número de pacientes que
respondieron favorablemente a dos tratamientos. Cada clínica reclutó 14 pacientes a los cuáles se les dió
un tratamiento. En cada clínica se registró el número de pacientes que respondieron favorablemente al
respectivo tratamiento en cada medición.
# A tibble: 6 × 6
trt id time Fav N unique.id
<dbl> <dbl> <dbl> <dbl> <dbl> <chr>
1 1 1 1 5 14 1 1
2 1 1 2 0 14 1 1
3 1 1 3 1 14 1 1
4 1 1 4 3 14 1 1
5 1 1 5 0 14 1 1
6 1 1 6 1 14 1 1
La figura 1.2.1 muestra que el promedio del número de pacientes que respondieron favorablemente tiende a
aumentar en ambos grupos, pero en el grupo 2 se nota un aumento mayor. Sin embargo, en el tratamiento
1 el promedio disminuyó considerablemente al final del estudio (figura 1.2.2).
Una particularidad de estos datos es que la variable respuesta son conteos sobre un número dado de pacientes
por clínica. Por lo tanto, un modelo que asuma normalidad en la respuesta quizás no sea adecuado por
varias razones: la naturaleza de la variable es discreta y la media de la variable es siempre positiva, una
restricción que no está presente en el modelo normal. En este caso, debemos pensar en modelar la respuesta
usando una distribución tal como la Poisson o binomial negativa. Esto nos lleva al tema de modelos lineales
generalizados que será disctido en el Capítulo ??. Además, para este problema los conteos a través del
tiempo podrían estar correlacionados y el número promedio de pacientes que respondieron favorablemente
podría ser modelado con una componente lineal. El análisis de datos correlacionados para modelos lineales
generalizados lo estaremos abordando en el Capítulo ??.
favor %>% group_by(trt, time) %>% summarize(meanFav = mean(Fav), n = n())
Source: local data frame [12 x 4]
Groups: trt [?]
11
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 1. EJEMPLOS INTRODUCTORIOS
10
factor(trt)
Fav
1
2
5
2 4 6
time
8 2 2 5.333333 6
9 2 3 8.000000 6
10 2 4 9.833333 6
11 2 5 10.333333 6
12 2 6 11.666667 6
# Figura 1.1.5
ggplot(favor, aes(x = time, y = Fav, group = as.factor(unique.id), color = factor(trt))) +
geom_line() + geom_point()
# Figura 1.1.6
means <- favor %>% group_by(trt, time) %>% summarize(meanFav = mean(Fav), n = n())
ggplot(means, aes(x = time, y = meanFav, group = as.factor(trt), color = factor(trt))) +
geom_line() + geom_point()
Este conjunto de datos corresponde a un experimento para medir el crecimiento de árboles de naranja
de acuerdo a la circunferencia del tronco. Con base en la figura 1.3.1, el crecimiento promedio quizás no
sea adecuado explicarlo con un modelo lineal. Para este tipo de datos generalmente se usan modelos no
lineales para describir el crecimiento a través del tiempo t. Uno de esos modelos es el logístico en el cuál el
12
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 1. EJEMPLOS INTRODUCTORIOS
12
10
factor(trt)
meanFav
1
8
2
2 4 6
time
13
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 1. EJEMPLOS INTRODUCTORIOS
200
as.factor(Tree)
150
1
circum
2
3
100 4
5
50
1.4. Nutrición
Este último conjunto de datos se desea estimar la relación entre el consumo diario de calorías y fibra en 315
pacientes. Para este conjunto de datos un modelo lineal parece adecuado pero la varianza constante en los
residuales (homocedasticidad) quizás no sea conveniente. Note que la dispersión de las calorías tiende a
aumentar a medida que la fibra aumenta, lo cual podría ser señal de heterocedasticidad en los errores. Una
de las consecuencias de ajustar un modelo con varianza constante es que los errores estńdar se podrían
sobreestimar, y por lo tanto, la probabilidad de tener falsos negativos aumenta.
# A tibble: 6 × 14
AGE SEX SMOKSTAT QUETELET VITUSE CALORIES FAT FIBER ALCOHOL
<dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 64 2 2 21.48380 1 1298.8 57.0 6.3 0
2 76 2 1 23.87631 1 1032.5 50.1 15.8 0
3 38 2 2 20.01080 2 2372.3 83.6 19.1 14
4 40 2 2 25.14062 3 2449.5 97.5 26.5 1
5 72 2 1 20.98504 1 1952.1 82.6 16.2 0
6 40 2 2 27.52136 3 1366.9 56.0 9.6 1
# ... with 5 more variables: CHOLESTEROL <dbl>, BETADIET <dbl>,
# RETDIET <dbl>, BETAPLASMA <dbl>, RETPLASMA <dbl>
# Figura 1.0.8
ggplot(retinol, aes(x=FIBER, y=CALORIES, color=factor(SEX))) + geom_point()
14
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 1. EJEMPLOS INTRODUCTORIOS
6000
CALORIES
4000 factor(SEX)
1
2
2000
10 20 30
FIBER
Si ajustamos un modelo lineal asumiendo varianza constante para los errores entonces los residuales
estudentizados nos sugieren que la varianza tiende a aumentar ligeramente a medida que aumenta la
predicción del colesterol (fig. 1.4.1). También se puede observar que la observación 62 se debería analizar
para determinar si es un dato atípico. Vale la pena mencionar que una práctica común consiste en transformar
la variable respuesta usando, por ejemplo, el logaritmo natural, para luego ajustar la regresión en la escala
transformada. A pesar de que esta es una práctica aceptada por la mayoría de estadísticos la interpretación
del modelo en la escala original no es inmediata. Más adelante discutiremos como ajustar un modelo lineal
con varianza no constante (errores heterocedásticos).
m = lm(CALORIES ~ FIBER, data=retinol)
plot(retinol$CHOLESTEROL[retinol$CALORIES<5000], rstudent(m)[retinol$CALORIES<5000])
15
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 1. EJEMPLOS INTRODUCTORIOS
3
2
1
0
−1
−2
16
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 2. FUNDAMENTOS DE MODELOS LINEALES
Capítulo 2
Suponga que tiene n observaciones independientes. Para cada individuo i se observa una variable respuesta
Yi y p covariables xi = (x1i , . . . , xpi )t . Note que xi es un vector columna de dimensión p < n. En el modelo
lineal clásico se asume que
Yi = xti β + εi , (2.1.1)
i.i.d.
donde β es un vector columna con p parámetros y εi satisface que εi ∼ N (0, σ 2 ) (i.i.d. significa independiente
e identicamente distribuidos). Los supuestos del modelo anterior implican que:
1. E(Yi |xi ) = xti β.
2. V ar(Yi |xi ) = σ 2 .
indep.
3. Yi |xi ∼ N (xti β, σ 2 ).
Note que para dos individuos i y j, i 6= j, se tiene que Cov(Yi , Yj ) = 0 ya que asumimos errores independientes
(es más, Yi y Yj son independientes). Esto nos indica que los errores son los que definen la distribución de
la respuesta dado el modelo lineal aditivo.
Ahora vamos a plantear el modelo anterior usando matrices. Defina la siguiente matriz del modelo de
dimensión n × p
x1,1 x1,2 · · · x1,p
x2,1 x2,2 · · · x2,p
X n×p = ..
.. .. .. .
. . . .
xn,1 xn,2 · · · xn,p
Cada fila en X representa el vector de covariables de cada uno de los n individuos. Es decir,
t
x1
t
x2
X= . .
.
.
xtn
17
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 2. FUNDAMENTOS DE MODELOS LINEALES
Supongamos que tenemos dos covariables x1 = Edad (en años) y x2 = Sexo donde 1 = M asculino y
0 = F emenino y la variable respuesta Y = P eso (en lbs). Definamos los siguientes modelos lineales con los
supuestos de la sección anterior:
1. Modelo 1: Yi = β0 + β1 sexoi + εi .
2. Modelo 2: Yi = β0 + β1 edadi + εi .
3. Modelo 3: Yi = β0 + β1 edadi + β2 sexoi + εi .
4. Modelo 4: Yi = β0 + β1 edadi + β2 sexoi + β3 edadi ∗ sexoi + εi .
Ejercicio 1. Para cada uno de los modelos anteriores interprete los coeficientes del modelo e indique cómo
difieren los modelos en términos de los resultados que se obtienen de cada modelo.
Después de usar cálculo vectorial para derivar la expresión anterior se obtienen las ecuaciones normales
(X t X)β = X t Y . (2.3.1)
La matriz del modelo X se asume de rango completo. Por lo tanto, (X t X) es no singular y la solución
mínimos cuadrados (least squares) para los coeficientes del modelo esta dada por
β̂ LS = (X t X)−1 X t Y . (2.3.2)
18
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 2. FUNDAMENTOS DE MODELOS LINEALES
Ejercicio 2. Use el siguiente resultado para encontrar una expresión para E(β̂|X) y V ar(β̂|X).
Resultado: Para una matriz constante A y un vector aleatorio Y se tiene que E(AY ) = AE(Y ) y
V ar(AY ) = AV ar(Y )At .
Teorema 1 (Gauss-Markov). Suponga que E(Y ) = Xβ, donde X es una matriz de rango completo, y
V ar(Y ) = σ 2 I. El estimador de mínimos cuadrados β̂ LS = (X t X)−1 X t Y es el mejor estimador lineal
insesgado de β (en inglés se dice que β̂ LS es el BLUE - Best Linear Unbiased Estimator).
T SS = SSR + SSE,
donde TSS es la Corrected Total Sum of Squares, SSE es la Sum of Squared Errors y SSR es la Sum of
Squares due to the Regression. En términos de sumatorias
(yi − ȳ)2 = (µ̂i − ȳ)2 + (yi − µ̂i )2 .
X X X
i i i
Una medida del poder predictivo del modelo es el coeficiente de determinación definido como
SSR SSE
R2 = =1− .
T SS T SS
Valores de R2 cercanos a 1 indican que el poder predictivo del modelo es muy bueno. En otras palabras,√que
se esperan errores pequeños al usar el modelo para llevar a cabo predicciones. Note que Corr(Y, µ̂) = + R2 ,
el cual se conoce como el coeficiente de correlación múltiple. Para el modelo 2.1.2 el estimador de mínimos
cuadrados maximiza esta correlación sobre todos los estimadores lineales.
2.5. Residuales
Usando el modelo 2.1.1 se pueden definir tres tipos de residuales. El residual crudo êi , estandarizado r̂i y
estudentizado (internamente) r̂iS definidos de la siguiente manera (el nombre de los residuales podría variar
dependiendo de la referencia)
êi = Yi − µ̂i ,
Yi − µ̂i
r̂i = ,
s
Yi − µ̂i
r̂iS = √ ,
s 1 − hii
19
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 2. FUNDAMENTOS DE MODELOS LINEALES
donde hii es el elemento i de la diagonal de la matrix de proyección H = X(X t X)−1 X t (se conoce como
la matriz hat). Una variante de r̂iS es llamado el residual externamente estudentizado.
r̂iS
también se conoce en algunos libros como el residual estandarizado. Este residual sustituye la estimación de
la varianza de los errores por una expresión que no incluye la observación a la que se le calcula el residual.
Los residuales y sus respectivos gráficos son importantes para detectar bondad de ajuste y violación a los
supuestos del modelo. En particular, varianza constante y normalidad. Si la normalidad es razonable los
residuales estandarizados se esperan que esten entre -3 y 3. Un gráfico Q-Q puede ayudar a diagnosticar
informalmente el supuesto de normalidad. La especificación incorrecta de la media y la varianza también se
puede detectar con gráficas de residuales. En general, se recomienda usar los residuales estudentizados para
detectar varianza no constante en los residuales.
donde ε ∼ N (0, σ 2 V ), para una matriz V conocida y definida positiva. Los supuestos para el modelo (2.6.1)
implican que:
1. E(Y |X) = Xβ.
2. V ar(Y |X) = σ 2 V .
3. Y |X ∼ N (Xβ, σ 2 V ).
En este caso el estimador se conoce como el estimador de mínimos cuadrados generalizados dado por
β̂ GLS = (X t V −1 X)−1 X t V −1 Y .
En estudios con diseños muestrales donde V ar(Yi ) = σ 2 /wi para pesos positivos wi , el estimador β̂ GLS se
conoce como estimador de mínimos cuadrados ponderado. Al igual que el estimador de mínimos cuadrados
ordinario la media y la varianza del estimador β̂ GLS estan dadas por
E(β̂ GLS ) = β̂
y
V ar(β̂ GLS ) = σ 2 (X t V −1 X)−1
El estimador β̂ GLS satisface las condiciones de optimalidad del Teorema de Gauss-Markov cuando V es
conocida. En general, la matriz V es desconocida y se debe estimar con los datos disponibles. En este caso
el estimador β̂ GLS no es insesgado y su varianza no tiene una fórmula exacta. Además, la estimación de
los parámetros en el modelo demanda métodos iterativos que oscilan entre la estimación de β y V hasta
lograr convergencia. Finalmente, es importante notar que el estimador de mínimos cuadrados ordinarios
β̂ LS se puede usar para estimar β en el modelo 2.6.1 (es insesgado y consistente), pero este estimador
es menos eficiente que el estimador β̂ GLS . Las implicaciones de este resultado es que en la práctica los
20
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 2. FUNDAMENTOS DE MODELOS LINEALES
errores estándar del estimador LS ordinario podrían ser mayores que los del estimador GLS. Note que los
estimadores coindicen cuando V = I.
De acuerdo con el modelo clásico 2.1.1 las observaciones Yi son independientes y normalmente distribuidas.
Por lo tanto, se puede definir la función de verosimilitud
n
(yi − xti β)2
" #
2 2 −n/2
Y
L(β, σ ; y) = (2πσ ) exp − .
i=1 2σ 2
Los estimadores de máxima verosimilitud de los parámetros del modelo estan dados por
β̂ M L = (X t X)−1 X t Y , (2.7.1)
y
− µ̂i )2
P
2 i (yi
σ̂M L = . (2.7.2)
n
Note que el estimador ML de β es igual que el estimador LS pero el estimador ML de σ 2 tiene un sesgo
negativo (anteriomente vimos que s2 es un estimador insesgado para σ 2 ). Este sesgo se debe a que la
2
estimación de β no tiene en cuenta al calcular σ̂M L (no ajusta el denominador o los grados de libertad).
El problema con el método de ML se puede corregir si se usan los datos transformados que no dependan de
los coeficientes del modelo. Esto es, si definimos ri = yi − xti β̂ entonces se puede definir el logaritmo de la
función de verosimilitud basada en ri la cual se conoce como función de verosimilitud restringuida (REML).
n
2 n−p 2 1 X
lREM L (σ ; y) = log(σ ) − 2 ri2 .
2 2σ i=1
La matrix de covarianza del estimador de los coeficientes en el modelo clásico esta dada por
V ar(β̂) = σ 2 (X t X)−1 .
21
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 2. FUNDAMENTOS DE MODELOS LINEALES
La mayoría de libros tradicionales de regresión hacen referencia a las técnicas de selección de variables tales
Forward, Backward y Stepwise, entre otras. A pesar de sus críticas, estas técnicas estan implementadas en
la mayoría de programas estadísticos tanto comerciales como gratuitos.
Algunas técnicas más modernas de selección de modelos usan métodos de penalización para estimar los
parámetros en el modelo pero para aquellas variables que no son significativas las estimaciones de los
coeficientes para estas variables son iguales a cero. Por ejemplo, el famoso método o estimador LASSO
(Least Absolute Selection and Shrinkage Operator) estima los coeficientes y al mismo tiempo selecciona
variables al arrojar coeficientes iguales a 0 para las variables no relevantes en el modelo. Para el modelo
clásico el LASSO básicamente resuelve el siguiente problema que involucra la norma L1 o valor absoluto en
la penalidad de los coeficientes !
1 X
mı́n SSE + λ |βk | , (2.10.1)
β 2 k
donde λ es una constante de regularización tambien llamado un tuning parameter. Cuando λ = 0 entonces
el problema 2.10.1 se reduce al método de mínimos cuadrados tradicional.
Otros ejemplos de estos métodos de regularización usan otras funciones de penalización tales como SCAD,
LASSO adaptivo, entre otros. Estos métodos estan especialmente diseñados para problemas con dimensiones
grandes en los cuales n << p. Este tipo de problemas se ven frecuentemente en genética. El método LASSO
y algunos de sus semejantes se encuentran implementados en algunas librerías de R y procedimientos de
SAS.
Modelos Anidados
De otro lado, cuando se quieren comparar dos modelos anidados se puede usar la teoría de verosimilitud.
Supongamos que queremos comparar dos modelos M0 y M1 donde M0 ⊂ M1 , es decir, los parámetros en el
modelo M0 se obtienen imponiendo restricciones a los parámetros de M1 . En otras palabras, el modelo M0
es un caso especial del modelo M1 . Por ejemplo, supongamos que tenemos los modelos lineales
Yi = β0 + β1 X1 + β2 X2 + εi (M1 )
22
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 2. FUNDAMENTOS DE MODELOS LINEALES
y
Yi = β0 + β1 X1 + εi , (M0 ).
Note que podemos obtener el modelo M0 del modelo M1 al agregar la restricción β2 = 0. En otras palabras,
podemos probar cuál de los dos modelos es preferido usando los datos simplemente probando la hipótesis
nula que H0 : β2 = 0 versus H1 : β2 6= 0. Este tipo de hipótesis se pueden probar usando la razón de
verosimilitud. Suponga que l0 y l1 es el logaritmo de la verosimilitud bajo H0 y H1 , respectivamente.
Entonces bajo ciertas condiciones de regularidad
asint.
ΛLRT = −2[l0 (θ̂ 0 ; datos) − l1 (θ̂ 1 ; datos)] ∼ χ2p1 −p0 ,
donde p1 y p0 es el número de parámetros en θ 1 y θ 0 , respectivamente. Note que la distribución de ΛLRT es
aproximada o asintótica (es decir, cuando n → ∞). En el caso de los modelos lineales vistos anteriormente,
θ incluiría tanto β como σ 2 . Es decir, si rechazamos H0 (modelo reducido) entonces la evidencia sugiere
que el modelo completo en H1 es preferido. De lo contrario, la evidencia sugiere que el modelo reducido es
preferido.
El uso del LRT debe ser cuidadoso especialmente cuando se ajustan modelos más complejos tales como
modelos mixtos. Más adelante veremos algunos casos en los cuales la distribución asintótica del estadístico
de prueba no se cumple (boundary space problem).
Modelos No Anidados
Finalmente, cuando queremos comparar dos modelos no anidados entonces recurrimos a los criterios de
información. En el caso general estos criterios se definen como
IC = −2l(θ̂; datos) + penalidad.
Dependiendo de la penalidad que se use el criterio toma diferentes nombres. Asumamos que n es el número
de individuos en la muestra y p es el número de parámetros en el modelo. Estos son los criterios comúnmente
usados:
AIC = −2l(θ̂; datos) + p (Akaike’s Information Criterion).
BIC = −2l(θ̂; datos) + p ln(n) (Bayesian or Schwartz’s Information Criterion).
La idea es seleccionar el modelo con el valor más pequeño de BIC o AIC. Es importante resaltar que las
definiciones anteriores pueden variar dependiendo de la referencia pero en esencia van a diferir por una
constante. Por eso es importante que tenga claro la fórmula que esta usando en cada problema o programa
estadístico (la definición o nombre de un criterio podría ser diferente entre R y SAS ).
23
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 3. MODELOS LINEALES EN R Y SAS
Capítulo 3
Recuerde que un modelo lineal de la forma Yi = xti β + εi tiene una estructura de la media E(Yi |xi ) = xti β.
Es decir, debemos especificar que variables y términos (por ejemplo, interacciones) serán incluidos en la
media del modelo. De otro lado, debemos especificar una estructura de varianza para los residuales ya
iid
que asumimos un modelo lineal clásico (independencia entre los errores): εi ∼ N (0, σ 2 ). Más adelante nos
referiremos a la estructura de correlación de los errores en modelos más complejos. Estas dos componentes
estructura de media + estructura de los errores más los supuestos distribución definen el modelo.
En esta sección vamos a utilizar una muestra aleatoria de 1,000 nacimientos en Puerto Rico en el 2011.
Vamos a determinar las variables relevantes para explicar el peso de un recién nacido. La base de datos
Newborn.csv esta disponible en la página del curso. Una descripción de las variables esta disponible en la
misma página (agradecimientos a la estudiante Hilda Calderón por trabajar en el diccionario y la base de
datos).
Vamos a ver la estructura de la base de datos. La salida de R nos indica que tenemos tanto variables
cuantitativas como cualitativas. La variable respuesta en este problema es el peso (gramos) del recién nacido
(DBWT).
# Estructura de la base de datos
str(newborn.sample)
'data.frame': 1000 obs. of 16 variables:
$ MAGER : int 34 29 22 26 27 34 22 22 20 22 ...
$ MRACEREC: int 1 1 1 1 1 1 1 1 1 2 ...
$ MAR : int 1 1 2 2 1 2 2 2 2 2 ...
$ MEDUC : int 6 6 3 6 5 5 2 3 5 5 ...
$ PRECARE : int 3 3 3 99 3 1 3 3 3 2 ...
$ WTGAIN : int 24 29 16 20 6 40 33 50 31 10 ...
$ CIG_REC : Factor w/ 2 levels "N","Y": 1 1 1 1 1 1 1 1 1 1 ...
$ PGWT : int 125 120 171 120 216 153 115 123 123 150 ...
$ DWGT : int 149 149 187 140 222 193 148 173 154 160 ...
24
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 3. MODELOS LINEALES EN R Y SAS
Un análisis preliminar indica que la base de datos tiene algunos valores que corresponden a códigos de
datos faltantes o no tienen mucho sentido en el contexto del problema. Por lo tanto, procedemos a filtrar la
base de datos original. La base de datos contiene ahora 982 observaciones.
# Filtros para eliminar algunas observaciones faltantes
newborn.sample = subset( newborn.sample, PGWT<900 & DBWT<7000 & PRECARE!=99)
dim(newborn.sample)
[1] 982 16
El primer paso par ajustar un modelo es tener un data.frame. En nuestro ejemplo usamos newborn.sample.
Antes de ajustar el modelo es necesario especificar la estructura de la media usando las fórmulas en R .
Para esto es necesario entender la sintáxis de las fórmulas en R y el manejo de factores y sus respectivas
codificaciones.
# Sintaxis de formulas en R
y ~ x1 # Regresion simple
y ~ 0 + x1 # No intercepto
y ~ -1 + x1 # No intercepto
y ~ f1 + x1 # Factor + Continua
y ~ f1 + x1 + f1:x1 # Efectos principales e interaccion factor*continua
y ~ f1 + f2 + f1:f2 # ANOVA a dos vias
y ~ f1*f2 # ANOVA a dos vias
y ~ f1 + f2 + x1 + f1:x1 + f2:x1 + f1:f2 # interacciones dobles
y ~ (x1 + f1 + f2)^2 # interacciones dobles
y ~ f1 + f1:f3 # f3 anidado en f1
y ~ f1 + f1%in%f3 # f3 anidado en f1
y ~ f1/f3 # f3 anidado en f1
Además de especificar fórmulas con los factores y variables numéricas directamente también es posible usar
transformaciones en las fórmulas.
# Transformaciones en las formulas
log(y) ~ sqrt(x1) # Transformacion logaritmica y raiz cuadrada
y ~ ordered(x1, breaks) # factor ordenado
y ~ poly(x1, 3) # polinomio de grado 3
y ~ poly(x1, x2, 2) # superficie cuadratica bivariada
25
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 3. MODELOS LINEALES EN R Y SAS
En cuanto a los factores supongamos que tenemos una variable cualitativa con tres niveles, f. Primero
definimos la variable como un factor y luego debemos especificar el constraste para ese factor.
# Factores y contrastes
f1 = factor(f) # Defina f como un factor
contrasts(f1) <- contr.treatment(3) # Constraste de grupo de referencia (nivel 1).
# Contraste por defecto en R
Para entender como funciona contr.treatment veamos la codificación de los niveles. Note que el nivel 1
no aparece en la codificación de la columna ya que es el nivel de referencia. Esto se puede modificar usando
la opción base.
# Nivel 1 = Referencia
contr.treatment(3)
2 3
1 0 0
2 1 0
3 0 1
# Nivel 3 = Referencia
contr.treatment(3, base = 3)
1 2
1 1 0
2 0 1
3 0 0
De manera similar, existen otros contrastes en R . El mensaje más importante en esta parte es
que el uso de un constraste en particular determina la interpretación de los coeficientes en
el modelo.
contr.sum(3)
[,1] [,2]
1 1 0
2 0 1
3 -1 -1
contr.helmert(3)
[,1] [,2]
1 -1 -1
2 1 -1
3 0 2
contr.SAS(3)
1 2
1 1 0
26
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 3. MODELOS LINEALES EN R Y SAS
Cuadro 3.1: Sintaxis en R para extraer información de un modelo ajustado con las funciones lm() y gls() [1]
2 0 1
3 0 0
La parametrización de variables categóricas en R se puede llevar a acabo usando los siguientes comandos:
f = as.factor(f) # f es el factor
m = lm(y ~ f, contrasts = list(f = "contr.SAS")) # último nivel de referencia
El modelo homocedástico (varianza constante) se puede ajustar con la función lm() y gls(). Sin embargo,
el modelo heterocedástico (varianza no constante) se puede ajustar únicamente con gls(). La tabla 3.1
muestra un resumen de las funciones que se usan para extraer los resultados de un objeto resultante de
ajustar un modelo con lm() y gls() [1]. Por ahora asumamos que ajustamos un modelo usando las dos
funciones y que llamamos lm.fit y gls.fit a los objetos resultantes del ajuste de los modelos.
# Ejemplo de un modelo ajustado con las funciones
fit.ml <- lm(y ~ x1 + x2, data = mydata)
fit.gls <- gls(y ~ x1 + x2, data = mydata)
Vamos a analizar la relación entre algunas de las variables predictoras y el peso del recién nacido (DBWT)
en la figura 3.2.1. El peso de la madre en el nacimiento es la variable que muestra la correlación más grande
con el peso del recién nacido, aunque dicha correlación se puede considerar baja. Otro punto importante en
este análisis gráfico es que el peso de la madre antes del embarazo se correlaciona altamente con el peso al
momento del parto (PGWT, DWGT). Esto se conoce como multicolinealidad en las variables predictoras.
Las consecuencias de multicolinealidad en regresión pueden ser considerables, particularmente los errores se
pueden sobre-estimar y las estimaciones de los coeficientes pueden ser muy diferentes de aquellos que se
obtendrían en modelos univariados.
De otro lado, para determinar qué factores o variables cuantitativas podrían entrar al modelo se pueden
construir diagramas de caja para la respuesta por el factor de interés. Por ejemplo, la figura 3.2.2 muestra
la distribución de los pesos de los recién nacidos por sexo. En este caso los hombres tienden a nacer con un
27
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 3. MODELOS LINEALES EN R Y SAS
peso promedio mayor que las mujeres. Un análisis similar se puede llevar a cabo por raza y nivel educativo
de la madre (figuras 3.2.3 y 3.2.4).
# Figura 3.2.1
ggpairs(newborn.sample[, c(1, 5, 6, 8, 9, 11)])
# Figura 3.2.2 Función para calcular el promedio y tamaño de muestra
give.n <- function(x) {
return(c(y = mean(x), label = length(x)))
}
ggplot(newborn.sample, aes(SEX, DBWT, fill = SEX)) + geom_boxplot() + stat_summary(fun.data =
geom = "text", colour = "blue")
# Figura 3.2.3
newborn.sample$f.race <- factor(newborn.sample$MRACEREC, labels = c("White",
"Black"))
ggplot(newborn.sample, aes(f.race, DBWT, fill = f.race)) + geom_boxplot() +
xlab("Mother's Race") + stat_summary(fun.data = give.n, geom = "text", colour = "blue")
# Figura 3.2.4
newborn.sample$f.educ <- factor(newborn.sample$MEDUC, labels = c("<=8", "9-12",
"High School", "Some college", "Assoc", "Bach", "Master", "Doc", "Unkn"))
ggplot(newborn.sample, aes(f.educ, DBWT, fill = factor(f.educ))) + geom_boxplot() +
xlab("Nivel Educativo") + stat_summary(fun.data = give.n, geom = "text",
colour = "blue") + theme(axis.text.x = element_text(angle = 90))
Call:
lm(formula = DBWT ~ MAGER + PRECARE + WTGAIN + PGWT + DWGT, data = newborn.sample)
Residuals:
Min 1Q Median 3Q Max
-2706.84 -272.07 33.26 320.37 2441.90
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 2128.7056 112.0223 19.003 < 2e-16 ***
MAGER 6.9438 2.9738 2.335 0.01975 *
PRECARE 17.1212 12.6458 1.354 0.17608
WTGAIN 0.3164 3.0170 0.105 0.91649
28
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 3. MODELOS LINEALES EN R Y SAS
0.06
MAGER
7.5
5.0 Corr: Corr: Corr: Corr:
2.5 −0.0287 −0.0217 −0.0292 0.0212
0.0
100
75
Corr: Corr: Corr:
50
25
−0.127 0.216 0.188
0
300
PGWT
Corr: Corr:
200 0.929 0.18
100
DWGT
300
Corr:
200 0.253
100
5000
DBWT
4000
3000
2000
1000
20 30 400.0 2.5 5.0 7.5 0 25 50 75 100100 200 300 100 200 300 1000
2000
3000
4000
5000
MAGER PRECARE WTGAIN PGWT DWGT DBWT
29
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 3. MODELOS LINEALES EN R Y SAS
5000
4000
491 SEX
DBWT
3000 491 F
M
2000
1000
F M
SEX
30
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 3. MODELOS LINEALES EN R Y SAS
5000
4000
877 f.race
DBWT
3000 105
White
Black
2000
1000
White Black
Mother's Race
31
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 3. MODELOS LINEALES EN R Y SAS
5000
4000 factor(f.educ)
<=8
9−12
34 1
High School
147 188 7
DBWT
1000
Some college
High School
Master
Assoc
Unkn
Bach
9−12
Doc
<=8
Nivel Educativo
32
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 3. MODELOS LINEALES EN R Y SAS
Call:
lm(formula = DBWT ~ MAGER + PRECARE + WTGAIN + DWGT, data = newborn.sample)
Residuals:
Min 1Q Median 3Q Max
-2713.30 -266.73 32.62 321.35 2456.30
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 2131.2748 112.1948 18.996 < 2e-16 ***
MAGER 6.6718 2.9756 2.242 0.0252 *
PRECARE 17.3177 12.6658 1.367 0.1718
WTGAIN 5.8961 1.2573 4.690 3.13e-06 ***
DWGT 3.0865 0.4772 6.468 1.56e-10 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
33
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 3. MODELOS LINEALES EN R Y SAS
WTGAIN -0.13905301
DWGT 0.22769494
confint(lm.fit2) # Intervalos del 95% de confianza
2.5 % 97.5 %
(Intercept) 1911.1042993 2351.445382
MAGER 0.8325422 12.510987
PRECARE -7.5374860 42.172953
WTGAIN 3.4288019 8.363369
DWGT 2.1500933 4.022901
logLik(lm.fit2)
'log Lik.' -7551.884 (df=6)
logLik(lm.fit2, REML = T)
'log Lik.' -7541.415 (df=6)
AIC(lm.fit2)
[1] 15115.77
BIC(lm.fit2)
[1] 15145.11
head(model.matrix(lm.fit2))
(Intercept) MAGER PRECARE WTGAIN DWGT
23767 1 34 3 24 149
3882 1 29 3 29 149
18949 1 22 3 16 187
6553 1 27 3 6 222
4713 1 34 1 40 193
9647 1 22 3 33 148
par(mfrow = c(2, 2), oma = c(0, 0, 2, 0))
plot(lm.fit2)
34
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 3. MODELOS LINEALES EN R Y SAS
21360 21360
Standardized residuals
4
1000
2
Residuals
0
−1000
−2
−4
−3000
22517
17003 22517
17003
2.0
Standardized residuals
4
2
1.5
0
1.0
−6 −4 −2
38661
0.5
24781
Cook's distance
17003
0.0
Note que podemos llevar a cabo la prueba de hipótesis entre el modelo 1 y 2 usando la función anova() para
determinar si los modelos son significativamente diferentes. Existen otras formas de llevar a cabo pruebas de
hipótesis para varios coeficientes simúltaneamente usando la función I(). Por ejemplo, si queremos probar
que H0 : β1 = β2 entonces debe ajustar un modelo con el comando lm(y I(x1+x2)) y compararlo con
el modelo lm(y x1+x2). Otros tipos de pruebas de hipótesis se pueden llevar a cabo usando la función
anterior.
# Prueba F entre dos modelos
anova(lm.fit2, lm.fit1)
35
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 3. MODELOS LINEALES EN R Y SAS
Coefficients:
Value Std.Error t-value p-value
(Intercept) 2131.2748 112.19481 18.996198 0.0000
MAGER 6.6718 2.97556 2.242189 0.0252
PRECARE 17.3177 12.66576 1.367288 0.1718
WTGAIN 5.8961 1.25728 4.689550 0.0000
DWGT 3.0865 0.47717 6.468285 0.0000
Correlation:
(Intr) MAGER PRECAR WTGAIN
MAGER -0.587
PRECARE -0.438 0.153
WTGAIN -0.213 0.102 0.038
DWGT -0.512 -0.221 -0.011 -0.232
Standardized residuals:
Min Q1 Med Q3 Max
-5.11408102 -0.50274128 0.06147393 0.60569308 4.62968757
36
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 3. MODELOS LINEALES EN R Y SAS
37
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 3. MODELOS LINEALES EN R Y SAS
2
Standardized residuals
−2
−4
3000 3500
Fitted values
Podemos llevar a cabo una prueba de razón de verosimilitud entre dos modelos anidados usando la función
anova() y gls(). Es muy importante que se ajusten los modelos usando el método ML ya que las medias
de los modelos son diferentes. Si los modelos anidados tienen medias iguales pero son anidados por los
parámetros de varianza (por ejemplo, varianza constante vs. varianza no constante) entonces se puede usar
el método REML y la prueba de razón de verosimilitud, de lo contrario no es adecuado usar la prueba LRT.
En este caso como p < ,05 entonces rechazamos la hipótesis nula (modelo reducido) y nos quedamos con
el modelo que incluye el término adicional. Note que para propósitos de interpretación de los coeficientes
este modelo quizás no sea conveniente debido a la multicolinedad. Además, los errores estándar del modelo
completo tienden a ser mayores a los del modelo reducido como consecuencia de la multicolinedad. Así que,
38
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 3. MODELOS LINEALES EN R Y SAS
a pesar del resultado de la prueba LRT la mejor estrategía es adoptar el modelo sin la variable PGWT.
# LR Test Modelo con PGWT
gls.fit1 <- gls(DBWT ~ MAGER + PRECARE + WTGAIN + PGWT + DWGT, method = "ML",
data = newborn.sample)
# Modelo con PGWT
gls.fit2 <- gls(DBWT ~ MAGER + PRECARE + WTGAIN + DWGT, method = "ML", data = newborn.sample)
anova(gls.fit1, gls.fit2)
Model df AIC BIC logLik Test L.Ratio p-value
gls.fit1 1 7 15113.61 15147.84 -7549.807
gls.fit2 2 6 15115.77 15145.10 -7551.884 1 vs 2 4.15308 0.0416
Ajuste el modelo lineal anterior (ver gls.fit2) usando la función gls() y el método ML.
Compare las estimaciones de este modelo (ML) con las obtenidas con la función lm() y gls() B
usando REML.
1. Ajuste el modelo lineal anterior (ver gls.fit2) pero agregue el sexo como una de las
variables predictoras. Determine si esta nueva variable es significativa.
2. Ajuste el modelo lineal anterior (ver gls.fit2) pero agregue el sexo, la raza y su interacción
como variables predictoras. Determine si ela interacción es significativa.
B
3. Ajuste el modelo del punto 1 pero cambie el nivel de referencia de mujeres a hombres. Use
el término relevel(SEX,ref=2) en lugar de SEX.
4. Finalmente, para el modelo en gls.fit2 agregue el nivel educativo y determine si esta
variable es significativa usando la prueba LRT.
Recuerde que en un modelo con varianza heterogénea asumimos que µi = E(Yi |xi ) = xti β y V ar(εi |xi ) = σi2 ,
donde σi2 podría tomar alguna forma funcional. Para ajustar un modelo con errores heterocedásticos o
varianza no constante (heterogénea) la función lm() ya no se puede utilizar. En estos casos necesitamos
recurrir a la función gls().
Primero vamos a definir lo que se conoce como la función de varianza, la cual denotaremos con λ(δ, µi ; v i )
siguiendo la notación de uno de los libros de referencia [1]. En la definición anterior δ es un vector de
parámetros común a todas las observaciones, µi es la media para la observación i y v i es un vector de
covariables relacionadas a la varianza. Es decir, la función de varianza puede depender tanto de la media
como de covariables adicionales y puede tener parámetros adicionales. Usando esta función de varianza
podemos definir
V ar(εi ) = σ 2 λ2 (δ, µi ; v i ). (3.2.1)
Note que la función λ(·) es llamada la función de varianza aunque en realidad es la desviación estándar. La
39
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 3. MODELOS LINEALES EN R Y SAS
Función λi Descripción
varFixed() wi Pesos fijos
varPower() |vi |δsi Potencia de una covariate vi
varExp() exp(vi δsi ) Exponencial de una covariate vi
varConstPower() δ1,si + |vi |δ2,si Constante más función potencia, δ1,si > 0
varIdent() δsi Varianzas diferentes por grupos/estratos δ1 = 1; δs > 0, s 6= 1
table 3.2 muestra las diferentes funciones de varianza disponibles en la función gls() de R. En esta tabla la
covariable vi se puede reemplazar por la media µi en el caso que la varianza dependa de la media. Cuando
la varianza depende de pesos conocidos, como en muestreo, se usa el algoritmo WLS para estimación. Si la
varianza depende de la media entonces se usa el algoritmo IRLS. En caso que la media dependa de una
covariable y parámetros desconocidos δ entonces se usan ML o REML como métodos de estimación.
Un aspecto importante cuando se ajustan modelos con varianza heterogénea en R es tener claro la
parametrización de λ(·). Por ejemplo, supongamos que la varianza depende de un factor con dos niveles
(e.g., sexo). En este caso se usa la función varIdent() pero R usa la siguiente parametrización: V ar(εi ) =
σs2i = σ 2 δs2i pero fija δsi = 1 para el primer nivel del factor. Este caso lo vamos a ilustrar más adelante con
una aplicación.
Para esta parte vamos utilizar los datos del tamaño de la cabeza y el cerebro de 237 individuos1 . Esta es la
descripción de las variables: Gender (1=Male, 2=Female), Age Range (1=20-46, 2=46+), Head size (cm3 )
y Brain weight (grams).
brainhead <- read.table("~/Google Drive/6-Fall2015/ESMA6836 Advanced Statistical Modeling/brai
quote = "\"", comment.char = "")
head(brainhead)
V1 V2 V3 V4
1 1 1 4512 1530
2 1 1 3738 1297
3 1 1 4261 1335
4 1 1 3777 1282
5 1 1 4177 1590
6 1 1 3585 1300
str(brainhead)
'data.frame': 237 obs. of 4 variables:
$ V1: int 1 1 1 1 1 1 1 1 1 1 ...
$ V2: int 1 1 1 1 1 1 1 1 1 1 ...
$ V3: int 4512 3738 4261 3777 4177 3585 3785 3559 3613 3982 ...
$ V4: int 1530 1297 1335 1282 1590 1300 1400 1255 1355 1375 ...
colnames(brainhead) = c("gender", "age", "head", "brain")
Tal como hemos mencionado anteriormente, antes de ajustar un modelo es buena idea darle un vistazo
a algunas gráficas que muestre la relación entre las variables. La figura 3.2.5 muestra que el tamaño del
cerebro tiende a aumentar a medida que aumenta el tamaño de la cabeza y dicha relación se puede modelar
1 Source: http://www.stat.ufl.edu/~winner/datasets.html
40
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 3. MODELOS LINEALES EN R Y SAS
linealmente. Además, es claro que hay más variabilidad en el tamaño del cerebro a medida que crece el
tamaño de la cabeza.
ggplot(brainhead, aes(x = head, y = brain)) + geom_point()
Vamos a comenzar ajustando un modelo lineal con varianza homogénea. Con base en los gráficos de residuales
podemos ver que hay indicios de que los residuales tienen varianza no constante que podría depender de la
media o el tamaño de la cabeza. Cuando queremos detectar√varianza no constante es importante trabajar
con los residuales estudentizados, es decir r̂iS = (Yi − µ̂i )/s 1 − hii , ya que estos eliminan el efecto de los
puntos de leverage. Es decir, al graficar los residuales crudos se podría concluir erróneamente que tienen
varianza no constante ya que la varianza de êi depende de los valores de apalancamiento (leverage points
hii ).
# Modelo lineal con varianza homogénea
lm.brain = lm(brain ~ head, data = brainhead)
summary(lm.brain)
Call:
lm(formula = brain ~ head, data = brainhead)
Residuals:
Min 1Q Median 3Q Max
-175.98 -49.76 -1.76 46.60 242.34
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 325.57342 47.14085 6.906 4.61e-11 ***
head 0.26343 0.01291 20.409 < 2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
41
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 3. MODELOS LINEALES EN R Y SAS
1500
brain
1300
1100
42
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 3. MODELOS LINEALES EN R Y SAS
Normal Q−Q
4
44
103
3
3
Standardized residuals
19
2
2
1
1
0
0
−1
−2 −1
−2
−3 −2 −1 0 1 2 3 1 2
3
rstudent(lm.brain)
2
2
1
1
0
0
−1
−1
−2
−2
Para propósitos de ilustración vamos a ajustar un modelo con varianza heterogénea en los residuales que
dependen de la edad. Para este modelo M1 tenemos Vd ar(εi |edad = 1) = σ̂ 2 δˆ12 = (73,42882 )(1) = 5391,789
y Vdar(εi |edad = 2) = σ̂ 2 δˆ22 = (73,42882 )(0,9468)2 = 4833,362. Ahora vamos a determinar si adoptamos
el modelo más sencillo con varianza constante y el modelo cuya varianza depende de la edad usando la
prueba LRT. Note que en este caso el p-valor es 0.5602, así que la evidencia sugiere que el modelo reducido
(varianza constante) es preferido.
# Modelo lineal con varianza homogénea (M0)
gls.brain = gls(brain ~ factor(gender) + factor(age) + head, data = brainhead)
43
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 3. MODELOS LINEALES EN R Y SAS
summary(gls.brain)
Coefficients:
Value Std.Error t-value p-value
(Intercept) 418.0511 58.74847 7.115949 0.0000
factor(gender)2 -22.5433 11.05789 -2.038658 0.0426
factor(age)2 -23.9684 9.48065 -2.528144 0.0121
head 0.2442 0.01506 16.212258 0.0000
Correlation:
(Intr) fctr(gn)2 factr(g)2
factor(gender)2 -0.589
factor(age)2 -0.265 0.167
head -0.990 0.528 0.177
Standardized residuals:
Min Q1 Med Q3 Max
-2.29499549 -0.68629484 0.00533309 0.60670054 3.46623992
# Modelo lineal con varianza heterogénea por edad como factor (M1)
gls.brain2 = gls(brain ~ factor(gender) + factor(age) + head, weights = varIdent(form = ~1 |
factor(age)), data = brainhead)
summary(gls.brain2)
Variance function:
Structure: Different standard deviations per stratum
Formula: ~1 | factor(age)
Parameter estimates:
1 2
1.0000000 0.9468088
Coefficients:
44
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 3. MODELOS LINEALES EN R Y SAS
Correlation:
(Intr) fctr(gn)2 factr(g)2
factor(gender)2 -0.588
factor(age)2 -0.268 0.167
head -0.990 0.528 0.176
Standardized residuals:
Min Q1 Med Q3 Max
-2.362945704 -0.715473544 0.003445255 0.621027642 3.557258361
Sin embargo, el gráfico de residuales sugiere que la varianza de los residuales quizás dependa del tamaño de
la cabeza. Así que procedemos a ajustar un modelo con la función de varianza potencia para determinar si
la varianza de los errores aumenta con el tamaño de la cabeza, es decir, V ar(ε) = σ 2 |head|δ . Note que en
este caso la prueba de LRT sugiere que el modelo con varianza heterogénea para los errores es preferido
(p-valor=0.0048).
# Modelo lineal con varianza igual a la potencia de una covariable=head (M3)
gls.brain3 = gls(brain ~ factor(gender) + factor(age) + head, weights = varPower(form = ~head)
data = brainhead)
summary(gls.brain3)
Generalized least squares fit by REML
Model: brain ~ factor(gender) + factor(age) + head
Data: brainhead
AIC BIC logLik
2684.576 2705.282 -1336.288
Variance function:
Structure: Power of variance covariate
Formula: ~head
Parameter estimates:
power
1.334915
45
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 3. MODELOS LINEALES EN R Y SAS
Coefficients:
Value Std.Error t-value p-value
(Intercept) 406.2524 57.52582 7.062089 0.0000
factor(gender)2 -24.3869 10.66157 -2.287369 0.0231
factor(age)2 -26.9055 9.18963 -2.927816 0.0038
head 0.2482 0.01501 16.537968 0.0000
Correlation:
(Intr) fctr(gn)2 factr(g)2
factor(gender)2 -0.606
factor(age)2 -0.276 0.171
head -0.990 0.539 0.186
Standardized residuals:
Min Q1 Med Q3 Max
-2.04513912 -0.71002877 -0.01203262 0.61800461 3.20661520
Vamos graficar el cuadrado de los residuales del modelo versus el tamaño de la cabeza y la respectiva
función de varianza que obtuvimos en el modelo anterior (figura 3.2.8). Note que esta gráfica intenta usar
el hecho que V ar(ε) = E(ε2 ), así un gráfico de los residuales al cuadrado versus la covariable podría indicar
que función de varianza ajustar.
head.sort = sort(brainhead$head)
plot(brainhead$head, resid(gls.brain3)^2, main = "Función de varianza ajustada")
lines(head.sort, (gls.brain3$sigma^2) * (head.sort^(gls.brain3$modelStruct$varStruct))^2,
col = "blue", lwd = 3)
46
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 3. MODELOS LINEALES EN R Y SAS
Varianza homogénea
3
2
rstandard(lm.brain)
1
0
−1
−2
fitted(lm.brain)
47
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 3. MODELOS LINEALES EN R Y SAS
Varianza heterogénea
2
Standardized residuals
−1
−2
Fitted values
48
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 3. MODELOS LINEALES EN R Y SAS
30000
20000
10000
0
brainhead$head
49
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 3. MODELOS LINEALES EN R Y SAS
Ajuste el modelo lineal anterior (M3) usando la función gls() y la función de varianza que
depende de la media: varPower(). Lleve a cabo una prueba de hipótesis para determinar si este B
modelo es preferido al modelo con varianza constante.
Finalmente, vale la pena mencionar que una forma de trabajar el problema de varianza no constante
consiste en transformar la variable respuesta usando por ejemplo una función logarítmica, transformaciones
de Box-Cox o cualquier otra función que tenga como resultado un modelo con varianza homogénea para
los errores. Es más, cuando existen muchas variables predictoras es muy complicado modelar la función
de varianza directamente ya que es difícil establecer la fuente de varianza no constante. Tranformar
los datos es una estrategia comúnmente usada y no tiene muchos inconvenientes si el modelo se ajusta
principalmente para predecir. Sin embargo, si el modelo se ajusta para interpretar los coeficientes de
las variables explicativas en términos de cambios promedio en la respuesta entonces la estrategia de
transformación se debe manejar cuidadosamente para no hacer intepretaciones incorrectas en la escala
original. Es decir, todos los coeficientes del modelo ajustado con la variable transformada se deben interpretar
en la escala transformada. La interpretación de coeficientes en la escala original requiere de un esfuerzo
adicional de parte del analista. La principal razón es que, por ejemplo en el caso de una transformación
logarítmica, log[E(Y |X)] 6= E[log(Y )|X].
En el capítulo 2 hablamos del LASSO como un método de selección de variables y estimación para situaciones
cuando el número de variables es grande comparado al tamaño de la muestra (n << p). Sin embargo,
vamos a mostrar la utilidad del método usando la misma base de datos de nacimientos la cual tiene pocas
variables predictoras. Supongamos que deseamos determinar si entre siete posibles predictores cuáles de
ellos están significativamente asociados con el peso promedio de los recién nacidos. El estimador LASSO
se puede obtener en R usando tanto la función lars de la librería lars como la función glmnet de la
librería con su mismo nombre. Esta última librería se suele usar con mayor frecuencia debido a que se le da
mantenimiento, incorpora algoritmos más eficientes y trabaja con matrices esparcidas2 . Es más, la librería
glmnet() ajusta modelos peanalizados usando una función de penalidad más general conocido como elastic
net (combinación entre LASSO y Ridge Regression). En general, existen dos reglas para encontrar un valor
óptimo de λ: mínimo error de predicción usando validación cruzada y el modelo más regularizado o menos
coeficientes (aquel modelo con la tasa de error dentro un error estándar del mínimo error). La última regla
es generalmente preferida si la búsqueda de un modelo se hace principalmente por razones de interpretación.
Primero, vamos a calcular el λ óptimo usando validación cruzada.
library(glmnet)
X.mat = as.matrix(newborn.sample[, c("MAGER", "PRECARE", "WTGAIN", "DWGT", "MEDUC",
"PGWT", "MRACEREC")])
X.mat = cbind(X.mat, as.numeric(newborn.sample$SEX)) # Matriz del modelo
colnames(X.mat)[8] = "SEX"
2 Para más información visite estas páginas web: http://web.stanford.edu/~hastie/glmnet/glmnet_alpha.html y http://www4.stat.ncsu.
edu/~post/reading/josh/LASSO_Ridge_Elastic_Net_-_Examples.html
50
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 3. MODELOS LINEALES EN R Y SAS
y = newborn.sample$DBWT
cvfit <- cv.glmnet(X.mat, y) # validación cruzada para lambda
plot(cvfit)
8 8 8 8 8 8 7 7 7 7 7 6 5 5 4 4 4 4 2 1 0
320000
310000
Mean−Squared Error
300000
290000
280000
270000
260000
0 1 2 3 4 5
log(Lambda)
Luego usamos los valores de λ con las dos reglas para obtener las estimaciones LASSO para nuestro modelo.
En el vector de estimaciones de los coeficientes aparece números en las variables que son consideradas
estadísticamente significativas y aquellas que no lo son tiene un . en el coeficiente.
lmin <- cvfit$lambda.min # mínimo error
l1se <- cvfit$lambda.1se # regla de +1 se
51
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 3. MODELOS LINEALES EN R Y SAS
lmin
[1] 2.130632
l1se
[1] 73.09067
fit.glmnet = glmnet(X.mat, y, family = "gaussian")
plot(fit.glmnet, label = T)
0 4 4 6 7 8
8
100
Coefficients
50
1
3
0
7
−50
L1 Norm
52
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 3. MODELOS LINEALES EN R Y SAS
Para ajustar un modelo lineal simple en SAS podemos usar varios procedimientos: PROC REG, PROC
GLM, PROC GLMSLECT y PROC MIXED. PROC REG ajusta modelos lineales clásicos con covariables
cuantitativas mediante el método LS (incluye medidas de influencia y diagnóstico convencionales), PROC
GLM ajusta un modelo lineal general (covariables cuantitativas y cualitativas), PROC GLMSELECT lleva
a cabo selección de modelos meidnate métodos tales como LASSO, stepwise, entre otros, y PROC MIXED
se usa para ajustar modelos lineales con efectos fijos y aleatorios (mixtos) usando REML and ML. PROC
MIXED se puede usar para ajustar modelos lineales con efectos fijos únicamente. Tanto los métodos de
estimación como la salida de cada procedimiento es diferente. Por lo tanto, el usuario debe tener claro qué
modelo quiere ajustar y qué método de estimación desea utilizar. En esta parte nos vamos a enfocar a
los tres primeros procedimientos, el último lo presentaremos más adelante en el curso. A continuación se
muestra la sintáxis de PROC REG tomada directamente d ela ayuda de SAS.
PROC REG <options> ;
<label:>MODEL dependents=<regressors> </ options> ;
BY variables ;
FREQ variable ;
ID variables ;
VAR variables ;
WEIGHT variable ;
OUTPUT <OUT=SAS-data-set>< keyword=names> <...keyword=names> ;
PLOT <yvariable*xvariable> <=symbol> <...yvariable*xvariable> <=symbol> </ options> ;
run;
En general, los procedimientos de SAS tiene una primera línea con un enunciado para el procedimiento,
por ejemplo, PROC REG, seguido de opciones del procedimiento y finaliza con el signo ;. Luego se escribe la
línea para especificar la estructura de la media del modelo: MODEL Y = X1 X2 . . . seguido del signo
/ y las opciones para el modelo (si el modelo no tiene opciones adicionales no escriba el signo /). El
53
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 3. MODELOS LINEALES EN R Y SAS
procedimiento termina con el comando RUN; el cual sirve para ejecutar el procedimiento. A continuación se
muestra un ejemplo sencillo de un modelo con dos covariables al cual le pedimos que imprima la matriz de
covarianza de las estimaciones (covb). Los datos estan almacenados en la base de datos mydata. Todos los
demás procedimientos siguen esta estructura básica con líneas adicionales dependiendo de la funcionalidad
del procedimiento y las necesidades del usuario. Por ejemplo, es posible almacenar los resultados del
procedimiento en archivos separados usando la línea OUTPUT, o ajustar modelos de regresión separados
de acuerdo a los niveles de un factor usando la línea BY. Los demás procedimientos de SAS para ajustar
modelos de regresión lineal siguen una estructura similar a PROC REG. Por lo tanto, no entraremos en
más detalles sobre estos procedimientos. Aquellos interesados en ampliar su conocimiento en el uso de SAS
les recomiendo leer los archivos de ayuda y buscar material en internet al respecto.
PROC REG data=mydata ;
M1: MODEL y = x1 x2 / covb;
run;
En lo que resta de esta sección vamos a usar SAS Studio para ajustar algunos modelos usando la base
de datos de nacimientos en PR. Una ventaja de usar SAS Studio es que muchas tareas se hacen de
forma interactiva. Por ejemplo, a medida que vamos ingresando los comandos el programa nos muestra la
descripción y las opciones de cada enunciado. Además, algunos de las tareas como importar una base de
datos de Excel a SAS se hace simplemente arrastrando el archivo al editor de SAS Studio. Estas funciones
no estan disponibles en el editor del programa SAS con licencia.
54
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 4. MODELOS LINEALES GENERALIZADOS
Capítulo 4
Recordemos que en el capítulo anterior estudiamos un modelo lineal con varianza no constante para los
residuales en el cual E(Yi |xi ) = xti β y V ar(Yi |xi ) = σ 2 µ2i = σ 2 (xi β)2 . Es decir, un modelo en el cual la
varianza de la variable depende de su media. Además, la distribución d e la variable es normal. Estas dos
características serán discutidas en más detalle en este capítulo en las llamadas distribuciones de la familia
exponencial de la cual la distribución normal hace parte.
Asuma que la variable aleatoria Y tiene una distribución con un sólo parámetro θ. La densidad de Y , f (y; θ)
se dice que pertenece a la familia exponencial si
f (y; θ) = ea(y)b(θ)+c(θ)+d(y) ,
donde a(·), b(·), c(·) y d(·) son funciones conocidas y b(θ) se conoce como el parámetro natural. Si a(y) = y
se dice que la distribución es canónica
f (y; θ) = eyb(θ)+c(θ)+d(y) .
55
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 4. MODELOS LINEALES GENERALIZADOS
Sean Y1 , . . . , Yn variables aleatorias independientes con una distribución en la familia exponencial. Es decir,
f (yi ; θi ) = exp[yi b(θi ) + c(θi ) + d(yi )]
tiene la forma canónica y depende de un sólo parámetro θi . Yi es la componente aleatoria del modelo.
Ahora, suponga que E(Yi ) = µi donde µi es alguna función de θi . Entonces podemos encontrar una función
de µi tal que
g(µi ) = g{E(Yi )} = xit β.
La expresión xit β se conoce como el componente sistemático del modelo y g es una función monótona y
diferenciable llamada la función de enlace (link function). De lo anterior tenemos que
µi = g −1 (xit β).
Recuerde que en el modelo lineal tenemos que E(Yi |xi ) = xti β. Esto es, nuestro interés es modelar la
media de la variable respuesta como una función lineal de covariables. La varianza se asumió constante
o no constante. En un MLG el interés es modelar una función no lineal de la media a través de un
combinación lineal de las covariables. Una de las razones para hacer esto es que la media de una variable
respuesta en general podría tener restricciones tales como estar en el intervalo (0, 1) (Bernoulli) o positiva
(Poisson). La única forma de asegurar esto es usando transformaciones de la media ya que la cantidad
xti β no tiene restricciones. Por ejemplo, en el caso de una distribución Poisson si modelamos la media
como E(Yi |xi ) = λi = xti β esta cantidad podría ser negativa, o en el caso de la distribución Bernoulli
E(Yi |xi ) = pi = xti β podría no estar en el intervalo (0, 1).
La tabla ?? lista algunas de las distribuciones conocidas que pertenecen a la familia exponencial y de
dispersión exponencial con sus respectivas medias, varianzas y funciones de enlace canónicas. Es importante
mencionar que a diferencia de la distribución normal donde la varianza se puede modelar separadamente
de la media en las distribuciones de la familia exponencia la varianza queda definida como una función
de la media. Por ejemplo, en la distribución Bernoulli V ar(Yi ) = p(1 − p) = µ(1 − µ) y en la Poisson
V ar(Yi ) = λi = µi . Esta relación entre la media y la varianza es característica de los MLG. Es más, V ar(Yi )
suele escribirse como V ar(Yi ) = ν(µi ) para enfatizar en la relación media-varianza en un MLG.
56
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 4. MODELOS LINEALES GENERALIZADOS
Cuadro 4.1: Distribuciones comúnmente usadas con sus medias, varianzas y funciones de enlace canónicas
Inferencia en MLG
En un MLG espeficicamos una componente aleatoria (distribución) que pertenece a la familia exponencial,
por lo tanto podemos encontrar la función de verosimilitud L para las n observaciones independientes
n
Y
L(β) = f (yi ; θi , φ). (4.2.1)
i=1
Recuerde que los parámetros θi dependen del vector de coeficientes β del modelo. El logaritmo de la función
de verosimilitud 4.2.1 se debe maximizar y posteriormente se deben solucionar las ecuaciones de estimación
usando métodos numéricos para la mayoría de MLG. Bajo ciertas condiciones de regularidad y si el tamaño
de muestra n es suficientemente grande se tiene que la distribución de β̂ M L es aproximadamente normal con
media β y varianza (X t W X)−1 , donde W es una matriz diagonal con elementos wi = (∂µi /∂ηi )2 /V ar(Yi ),
donde ηi = xti β.
Como consecuencia del uso de la teoría de verosimilitud todos los resultados para modelos lineales vistos
en los Capítulos 2 y ?? aplican a los MLG. En particular, pruebas de razón de verosimilitud, criterios de
selección de modelos, entre otros. Más detalles de la inferencia en MLG se pueden encontrar libros clásicos
sobre el tema, en particular en [Agresti2015].
La devianza, denotada por D(y, µ), es una medida de bondad de ajuste que compara el modelo saturado
con el modelo de interés. La idea es la misma que se usa en la prueba de LRT pero con los dos modelos
anteriores. Es decir,
57
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 4. MODELOS LINEALES GENERALIZADOS
Ahora considere el caso en el cual se quieren comparar dos MLG anidados M0 y M1 con parámetrod e
dispersión φ = 1, y M0 ⊂ M1 con las respectivas medias estimadas µ̂0 y µ̂1 , y número de parámetros p0 y
p1 . La prueba LRT se convierte en una diferencia de devianzas, esto es
∆D = D(y, µ̂0 ) − D(y, µ̂1 ).
Bajo algunas condiciones de regularidad, esta cantidad se puede comparar con una distribución ji-cuadrado
con p1 − p0 grados de libertad. Esta cantidad se suele denotar con G2 (M0 |M1 ). También se le llama
la devianza residual cuando se compara el modelo de interés con el saturado. Note que el resultado
anterior aplica a MLG con distribuciones tales como la Poisson y la Binomial donde φ = 1.
Otra medida de bondad de ajuste en MLG es el estadístico X 2 (también conocida como Pearson chi-square
statistics) definido como
X (yi − µ̂i )2
X2 = .
i V ar(Yi )
Por ejemplo, para la distribución Poisson
(yi − µ̂i )2 X (observado − ajustado)2
X2 =
X
= .
i µ̂i i ajustado
Residuales en MLG
Un aspecto importante en los MLG es que la ortogonalidad de los residuales y los valores ajustados no se
cumple. Es decir, la descomposición datos = ajustados + residuales no es ortogonal. Sin embargo, estas
cantidades estan correlacionadas asintóticamente. En general podemos definir tres tipos de residuales:
yi − µ̂i
ei = q (Residual de Pearson),
ν(µ̂i )
q
edi = di × signo(yi − µ̂i ) (Residual de devianza),
P
donde di es un término que depende de la descomposición de D(y, µ̂) = i di , y finalmente
yi − µ̂i
ri = q (Residual de Pearson estandarizado).
ν(µ̂i )(1 − ĥii )
58
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 4. MODELOS LINEALES GENERALIZADOS
Note que ri también lo llamamos el residual estudentizado (internamente) en modelos lineales. Los residuales
sirven para detectar datos atípicos y desvíos del modelo con relación a los datos. En MLG se deben usar
gráficas similares a las discutidas en modelos lineales.
Si la variable respuesta son conteos una forma de modelar estos datos usando un modelo lineal es aplicando
√
la transformación y para tratar de obtener varianza constante en los residuales (usando el método Delta
se puede mostrar que V ar(Y ) ≈ 1/4, cuando Y ∼ P oisson(λ). Esta aproximación funciona mejor cuando
µ es grande). Sin embargo, tal como hemos mencionado anteriormente la dificultad en las interpretaciones
y las implicaciones de modelar datos transformados limitan esta práctica. Por esta razón, una forma más
razonable de modelar datos de conteos es asumir que Yi ∼ P oisson(µi ). La idea sería explicar la media µi
en función de las covariables xi , es decir
log(µi ) = xti β,
o en términos matriciales
log(µ) = X t β.
En la regresión de Poisson se asume que Y1 . . . , Yn son independientes con Yi ∼ P oisson(λi ). Sin entrar en
detalles, el logaritmo de la función de verosimilitud para estos datos usando el modelo esta dado por
X X X
log(β; y) = yi log λi − λi − log yi !.
i i i
Recuerde que en un MLG asumimos que λi = exp(xti β), es decir, los n parámetros iniciales λi se reducen a
p coeficientes β. Una vez obtenemos el MLE de β tenemos el estimador λ̂i = ŷi = Ê(Yi ) = exp(xti β̂).
Ahora, en lo que se conoce como un modelo saturado, todos los λi son diferentes y se deben estimar. Después
de algún trabajo algebráico se llega a que el MLE de λi es igual a λ̂i = yi . Por lo tanto, el logaritmo de la
verosimilitud se reduce a X X X
log(β max ; y) = yi log yi − yi − log yi !.
i i i
59
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 4. MODELOS LINEALES GENERALIZADOS
De manera similar al modelo Poisson, todos los MLG tienen su devianza. Esta cantidad se usa para determinar
bondad de ajuste y también se relaciona con la definición de los residuales. Una forma alternativa de pensar
el modelo saturado es en el caso de ANOVA a una vía. Si tiene un factor numérico entonces usted puede
ajustar un modelo de ANOVA (saturado, es decir, una media para cada nivel del factor) o ajustar un
polinomio de menor grado para modelar las medias (el grado del polinomio debe ser menor que el número
de niveles del factor). En el caso del ANOVA usted deberá estimar todas las medias de los niveles, pero en
el modelo con el polinomio debe estimar solamente los coeficientes. La devianza en un MLG es por lo tanto
un concepto similar a lo que se conoce como Lack of Fit en modelos lineales.
Interpretación de los coeficientes
Siguiendo el ejercicio anterior, ahora suponga que se usa el siguiente modelo para el conteo
promedio: log(µi ) = β0 + β1 fi + β2 ti + β3 ti ∗ fi , donde ti representa el número de semanas de B
cada observación i. Interprete los β’s.
Vamos a usar el conjunto de datos correspondiente al número de muertes por cáncer de pulmón (cander.dat)
el cual puede ser descargado de la siguiente dirección: http://stat.ufl.edu/~aa/glm/data/. La base de
datos contiene el número de pacientes que murieron clasificados por el estado de la enfermedad (stage),
tiempo de seguimiento (time) e histología (histology). La base de datos contiene 63 filas y 5 columnas
(variables). La variable risktime corresponde al número de pacientes en riesgo en el período de seguimiento.
60
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 4. MODELOS LINEALES GENERALIZADOS
2 1 2 1 5 77
3 1 3 1 1 21
4 2 1 1 2 139
5 2 2 1 2 68
6 2 3 1 1 17
Veamos la distribución de los conteos por estadío (stage) y la media y desviación estándar de los conteos
en cada estadío.
# Histogram of counts by stage
ggplot(cancer, aes(count, fill = stage)) + geom_histogram(binwidth = 1) + facet_grid(stage ~
., margins = TRUE, scales = "free")
61
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 4. MODELOS LINEALES GENERALIZADOS
1
2
0
5
2
2
stage
1
1
count
0
2
4
3
3 (all)
3
1
0
12.5
10.0
7.5
(all)
5.0
2.5
0.0
0 10 20 30 40
count
62
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 4. MODELOS LINEALES GENERALIZADOS
Note que todas las variables explicativas son factores. Por ejemplo, para histología hay tres coeficientes β1H ,
β2H y β3H pero como es costumbre en R el primer coeficiente es igual a 0 (primer nivel de referencia).
# MLG para conteo de muertes de cáncer
fit.cancer = glm( count ~ factor(histology) + factor(stage) + factor(time),
family = poisson(link = log), data = cancer)
summary(fit.cancer)
Call:
glm(formula = count ~ factor(histology) + factor(stage) + factor(time),
family = poisson(link = log), data = cancer)
Deviance Residuals:
Min 1Q Median 3Q Max
-2.5404 -0.9275 -0.2889 0.7252 2.4529
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 2.3163 0.1594 14.535 < 2e-16 ***
factor(histology)2 -0.5108 0.1217 -4.197 2.71e-05 ***
factor(histology)3 -1.0186 0.1447 -7.039 1.94e-12 ***
factor(stage)2 0.2703 0.1744 1.550 0.121084
factor(stage)3 1.3286 0.1477 8.997 < 2e-16 ***
factor(time)2 -0.5191 0.1488 -3.488 0.000487 ***
factor(time)3 -0.7885 0.1626 -4.848 1.24e-06 ***
factor(time)4 -0.9040 0.1693 -5.339 9.37e-08 ***
factor(time)5 -1.9626 0.2590 -7.577 3.53e-14 ***
factor(time)6 -1.8001 0.2414 -7.457 8.83e-14 ***
factor(time)7 -1.8514 0.2468 -7.502 6.27e-14 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
63
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 4. MODELOS LINEALES GENERALIZADOS
Response: count
LR Chisq Df Pr(>Chisq)
factor(histology) 57.369 2 3.487e-13 ***
factor(stage) 123.590 2 < 2.2e-16 ***
factor(time) 158.760 6 < 2.2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
exp(confint(fit.cancer)) # intervalo confianza razón
2.5 % 97.5 %
(Intercept) 7.34476142 13.7260360
factor(histology)2 0.47139765 0.7600624
factor(histology)3 0.27008568 0.4767558
factor(stage)2 0.93271862 1.8505531
factor(stage)3 2.84843861 5.0874067
factor(time)2 0.44264355 0.7941470
factor(time)3 0.32815278 0.6216442
factor(time)4 0.28809458 0.5604103
factor(time)5 0.08158672 0.2266697
factor(time)6 0.09999561 0.2589176
factor(time)7 0.09381927 0.2482086
64
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 4. MODELOS LINEALES GENERALIZADOS
la etapa 2 y la etapa 1 (referencia) es suficiente con llevar a cabo una prueba de hipótesis para el
coeficiente de la etapa 2. Como el p valor es menor que .05 (p = ,121084) entonces no rechazamos
H0 : β2S = 0. Es decir, podemos concluir que el número promedio de muertes en la etapa 2 y 1 no son
estadísticamente diferentes. Note que la estimación puntual de esta razón es igual a exp(,2703) = 1,31
con un intervalo de 95 % de confianza [0,9327, 1,8505]. El hecho que el intervalo incluya el 1 respalda el
resultado de la prueba de hipótesis (razón de promedio de muertes se puede considerar 1:1).
Si el investigador esta interesado en estimar la razón del promedio de muertes entre la etapa 2 y 3
entonces se puede recurrir a dos estrategias. La primera consiste en ajustar nuevamente el modelo
pero considerando el tercer nivel de la variable stage como referencia. La seguna estrategia es escribir
la razón del promedio de muertes entre la etapa 2 y 3 en términos del modelo original.
# Modelo con stage=3 como nivel de referencia
f.stage = factor(cancer$stage)
fit.cancer2 = glm( count ~ factor(histology) + f.stage + factor(time),
contrasts=list(f.stage="contr.SAS"),
family = poisson(link = log), data = cancer)
coef(fit.cancer2)
(Intercept) factor(histology)2 factor(histology)3
3.6448830 -0.5108256 -1.0185696
f.stage1 f.stage2 factor(time)2
-1.3286287 -1.0583384 -0.5191244
factor(time)3 factor(time)4 factor(time)5
-0.7884574 -0.9039702 -1.9625772
factor(time)6 factor(time)7
-1.8000583 -1.8513516
exp( confint(fit.cancer2) )
2.5 % 97.5 %
(Intercept) 30.52331596 47.5029762
factor(histology)2 0.47139765 0.7600624
factor(histology)3 0.27008568 0.4767558
f.stage1 0.19656380 0.3510695
f.stage2 0.26575247 0.4481972
factor(time)2 0.44264355 0.7941470
factor(time)3 0.32815278 0.6216442
factor(time)4 0.28809458 0.5604103
factor(time)5 0.08158672 0.2266697
factor(time)6 0.09999561 0.2589176
factor(time)7 0.09381927 0.2482086
Usando la primera estrategia tenemos que la razón de muertes promedio de la etapa 2 es exp(−1,0583) =
0,347 veces el promedio de muertes de la etapa 3. Es decir, por cada 3 muertes en la etapa 3 ocurren
en promedio una muerte en la etapa 2 (IC 95 % [0.2657, 0.4482]).
Para la segunda estrategia usaremos la función estimable de la librería gmodels con el modelo
original que tiene el primer nivel de la etapa como referencia. Antes de usar el programa veamos como
escribimos la razón promedio de muertes entre la etapa 2 y 3 en términos del modelo. Con un poco de
65
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 4. MODELOS LINEALES GENERALIZADOS
álgebra podemos ver que esta razón se puede escribir como exp(β2S − β3S ). Este resultado se obtiene
diviendo la razón entre la etapa 2 y 1 sobre la razón entre la etapa 3 y 1 (Ejercicio).
# Usando la combinación lineal de coeficientes
fit.cancer = glm( count ~ factor(histology) + factor(stage) + factor(time),
family = poisson(link = log), data = cancer)
library(gmodels)
contrast = estimable(fit.cancer, c("factor(stage)2"=1, "factor(stage)3"=-1),
conf.int=.95)
contrast
Estimate Std. Error X^2 value DF Pr(>|X^2|)
(0 0 0 1 -1 0 0 0 0 0 0) -1.058338 0.1331319 63.19531 1 1.887379e-15
Lower.CI Upper.CI
(0 0 0 1 -1 0 0 0 0 0 0) -1.322468 -0.7942085
exp(contrast$Estimate) # estimación puntual
[1] 0.347032
# Intervalo de confianza - dos formas de calcularlo
exp(contrast$Lower.CI) # límite inferior 95% CI
[1] 0.2664767
exp(contrast$Estimate-1.96*contrast$Std.) # límite inferior 95% CI
[1] 0.2673285
exp(contrast$Upper.CI) # límite superior 95% CI
[1] 0.4519388
exp(contrast$Estimate+1.96*contrast$Std.) # límite superior 95% CI
[1] 0.4504988
Finalmente, vamos a graficar los conteos observados versus las predicciones y los residuales para el modelo
ajustado (figura 4.3.1).
# Observed vs. predicted counts
par(mfrow = c(1, 2))
plot(fitted(fit.cancer), resid(fit.cancer))
plot(cancer$count, fitted(fit.cancer))
En el ejemplo de las muertes por cáncer el número de muertes se debe dividir por el número de sujetos en
riesgo para obtener la tasa de muertes por cáncer. En este caso, en lugar de modelar los conteos definimos
una tasa (conteos/total) en la respuesta. Es decir,
66
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 4. MODELOS LINEALES GENERALIZADOS
30
1
resid(fit.cancer)
fitted(fit.cancer)
20
0
−1
10
−2
0 10 20 30 0 10 20 30 40
fitted(fit.cancer) cancer$count
67
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 4. MODELOS LINEALES GENERALIZADOS
donde ti es el número de sujetos en riesgo. Note que si ti es conocida y usando propiedades de la función
logarítimica la expresión anterior se puede escribir como
Vamos a modelar los datos de cáncer usando el offset igual al logaritmo del número de pacientes en riesgo
risktime. Según la salida, únicamente la variable stage es significativa para explicar la tasa promedio de
muertes. Este resultado contrasta con el modelo de la sección anterior el cual no tuvo en cuenta el total de
pacientes en riesgo. Para este modelo la devianza residual es G2 = 43,923(gl = 52). El cociente de estas dos
cantidades es igual a 0.84, indicando que el modelo tiene un buen ajuste (cercano a 1).
En términos de interpretación para el coeficiente de stage 3 podemos decir la tasa promedio de muertes en
la etapa 3 es aproximadamente exp(1,324) = 3,76 veces la tasa promedio de muertes de la etapa 1, después
de ajustar por tiempo de seguimiento y histología (intervalo del 95 % de confianza [2.810, 5.106]). Esta
cantidad 3,759 se le conoce como la razón de tasas (rate ratio).
# MLG para tasa de muertes de cáncer
logrisk = log(cancer$risktime)
fit.cancer1 = glm(count ~ factor(histology) + factor(stage) + factor(time),
family = poisson(link = log), offset = logrisk, data = cancer)
summary(fit.cancer1)
Call:
glm(formula = count ~ factor(histology) + factor(stage) + factor(time),
family = poisson(link = log), data = cancer, offset = logrisk)
Deviance Residuals:
Min 1Q Median 3Q Max
-2.00333 -0.74769 -0.03194 0.46468 1.70832
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -3.00928 0.16651 -18.073 < 2e-16 ***
factor(histology)2 0.16244 0.12195 1.332 0.18285
factor(histology)3 0.10754 0.14745 0.729 0.46580
factor(stage)2 0.47001 0.17444 2.694 0.00705 **
factor(stage)3 1.32431 0.15205 8.709 < 2e-16 ***
factor(time)2 -0.12745 0.14908 -0.855 0.39259
factor(time)3 -0.07973 0.16352 -0.488 0.62585
factor(time)4 0.11892 0.17107 0.695 0.48694
factor(time)5 -0.66511 0.26061 -2.552 0.01071 *
factor(time)6 -0.35015 0.24348 -1.438 0.15040
factor(time)7 -0.17518 0.24985 -0.701 0.48321
68
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 4. MODELOS LINEALES GENERALIZADOS
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Response: count
LR Chisq Df Pr(>Chisq)
factor(histology) 1.876 2 0.39132
factor(stage) 99.155 2 < 2e-16 ***
factor(time) 11.383 6 0.07724 .
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
exp(confint(fit.cancer1)) # exponencial de coeficientes
2.5 % 97.5 %
(Intercept) 0.03524982 0.06774327
factor(histology)2 0.92382408 1.49090908
factor(histology)3 0.82864241 1.47851437
factor(stage)2 1.13871258 2.26002502
factor(stage)3 2.81058090 5.10653503
factor(time)2 0.65456940 1.17546240
factor(time)3 0.66548164 1.26510936
factor(time)4 0.79866879 1.56415206
factor(time)5 0.29779345 0.83253478
factor(time)6 0.42469720 1.10872589
factor(time)7 0.49880474 1.33560856
# Pearson Chi-square statistic
chisq = sum(residuals(fit.cancer1, type = "pearson")^2)
chisq
[1] 43.05481
# Deviance statistic
dev = sum(residuals(fit.cancer1, type = "deviance")^2)
dev
[1] 43.92253
# Otra forma de calcular chisq
69
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 4. MODELOS LINEALES GENERALIZADOS
Note que en este caso X 2 = 43,05 y G2 = 43,92. En ambos casos, el cociente entre X 2 /df o G2 /df es
aproximadamente igual a 0.83 (en este modelo df = 52). Esto indica que el ajuste del modelo es razonable
dado que este cociente es cercano a 1. Cuando este cociente se es mucho menor de 1 (e.g., 0.50) se dice que
hay subdispersión en los conteos (underdispersion), es decir, V ar(Yi ) < E(Yi ). Este escenario no es muy
común en la práctica pero existen algunas distribuciones tales como la Poisson generalizada que se pueden
usar en estos casos [Hilbe2014]. Un ejemplo de regresión usando la Poisson generalizada se encuentra en
la ayuda de PROC GLIMMIX de SAS 1 .
En R existe la función R para llevar a cabo la prueba de hipótesis si un término es significativo o no en el
modelo. Este proceso le da al investigador argumentos para llevar a cabo la selección de variables. Claro
esta, siempre hay que ser conscientes de las comparaciones múltiples y su consecuencia en la inflación de los
errores en las pruebas de hipótesis (esta función no permite tomar decisiones sobre la significancia de dos o
más términos). Por ejemplo, en este la variable se histology se podría eliminar del modelo (p > 0,05). La
idea es reajustar el modelo sin ese término y volver a correr la función drop1 para el modelo nuevo. De la
misma manera, existe la función add1 para agregar un término a la vez en el modelo y step para selección
de modelos usando AIC.
# Eliminando un término a la vez en el modelo
drop1(fit.cancer1, test = "Chi")
Single term deletions
Model:
count ~ factor(histology) + factor(stage) + factor(time)
Df Deviance AIC LRT Pr(>Chi)
<none> 43.923 251.74
factor(histology) 2 45.799 249.62 1.876 0.39132
factor(stage) 2 143.077 346.90 99.155 < 2e-16 ***
factor(time) 6 55.306 251.13 11.383 0.07724 .
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Sobredispersión en Conteos
Para ciertas situaciones, los conteos exhiben alta variabilidad tal que V ar(Yi ) > E(Yi ), lo cual no satisface
los supuestos de la distribución Poisson. Este fenómeno, bastante común en datos de conteos, se conoce
como sobredispersión (overdispersion). Usualmente valores de X 2 /(n − p) o G2 /(n − p) mucho mayores
que 1 son señal de sobredispersión (algunos autores consideran valores de 1.5 en adelante). Sobredispersión
puede suceder por varias razones:
1. La estructura de la media omite variables explicativas o predictores relevantes.
2. Los datos contienen valores atípicos (outliers).
1 http://tinyurl.com/nhxjdq7
70
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 4. MODELOS LINEALES GENERALIZADOS
Call:
glm(formula = equine ~ humanden, family = poisson, data = westnilesc,
71
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 4. MODELOS LINEALES GENERALIZADOS
10.0
7.5
equine
5.0
2.5
0.0
offset = log.farms)
Deviance Residuals:
Min 1Q Median 3Q Max
-2.0810 -1.4485 -1.0048 0.5279 3.7468
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -5.932e+00 2.260e-01 -26.246 <2e-16 ***
humanden 6.812e-05 1.177e-03 0.058 0.954
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
72
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 4. MODELOS LINEALES GENERALIZADOS
chisq/44
[1] 2.862115
# G^2 / df
dev = sum(residuals(wn.fit1, type = "deviance")^2)
dev/44
[1] 2.484565
Usando las dos cantidades X 2 /df y G2 /df vemos que ambas son mayores a 2.5, lo cual es una clara señal
de sobredispersión. Antes de usar cualquiera de los métodos existentes para modelar sobredisperión es
importante descartar algunas de las posibles causas antes de continuar con un modelo o estrategia más
compleja. Primero, veamos los residuales del modelo.
par(mfrow = c(2, 2))
plot(fitted(wn.fit1), residuals(wn.fit1, type = "deviance"))
plot(fitted(wn.fit1), residuals(wn.fit1, type = "pearson"))
# Standardized Pearson residual
stpearson = resid(wn.fit1, type = "pearson")/sqrt(1 - hatvalues(wn.fit1))
plot(fitted(wn.fit1), stpearson)
# Standardized deviance residual
stdeviance = rstandard(wn.fit1) # default
plot(fitted(wn.fit1), stdeviance)
73
Spring 2017
residuals(wn.fit1, type = "deviance") Curso: Modelos Estadísticos Avanzados CAPÍTULO 4. MODELOS LINEALES GENERALIZADOS
5
3
4
2
3
1
2
0
1
0
−1
−1
−2
0.5 1.0 1.5 2.0 2.5 3.0 3.5 0.5 1.0 1.5 2.0 2.5 3.0 3.5
fitted(wn.fit1) fitted(wn.fit1)
6
4
3
4
2
stdeviance
stpearson
1
2
0
−1
0
−2
0.5 1.0 1.5 2.0 2.5 3.0 3.5 0.5 1.0 1.5 2.0 2.5 3.0 3.5
fitted(wn.fit1) fitted(wn.fit1)
Un segundo paso a seguir es verificar si se omitieron variables importantes en el modelo. Para este conjunto
de datos vamos a incluir la variable PBR y su interacción con la densidad humana, tal como proponen los
autores del artículo original.
# Equine vs. PBR
ggplot(westnilesc, aes(x = pbr, y = equine)) + geom_point()
# Model with PBR and humanden and its interaction with log(farms) as offset
wn.fit2 = glm(equine ~ pbr * humanden + offset(log.farms), family = poisson,
data = westnilesc)
74
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 4. MODELOS LINEALES GENERALIZADOS
10.0
7.5
equine
5.0
2.5
0.0
Figura 4.3.3: Casos equinos con virus vs. tasa positiva en aves
summary(wn.fit2)
Call:
glm(formula = equine ~ pbr * humanden + offset(log.farms), family = poisson,
data = westnilesc)
Deviance Residuals:
Min 1Q Median 3Q Max
-1.6503 -1.0730 -0.7553 0.3282 2.5228
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -6.982e+00 3.664e-01 -19.055 < 2e-16 ***
pbr 5.330e+03 1.596e+03 3.340 0.000837 ***
humanden 5.903e-04 1.673e-03 0.353 0.724188
pbr:humanden 2.600e+01 1.238e+01 2.100 0.035706 *
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
75
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 4. MODELOS LINEALES GENERALIZADOS
76
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 4. MODELOS LINEALES GENERALIZADOS
residuals(wn.fit2, type = "deviance")
3
2
2
1
1
0
0
−1
−1
0 2 4 6 8 10 12 0 2 4 6 8 10 12
fitted(wn.fit2) fitted(wn.fit2)
3
2
2
1
stdeviance
stpearson
0
0
−1
−1
−2
−2
0 2 4 6 8 10 12 0 2 4 6 8 10 12
fitted(wn.fit2) fitted(wn.fit2)
A pesar del ajuste razonable de este modelo vamos a explorar algunas alternativas para modelar datos de
conteo sobredispersos.
77
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 4. MODELOS LINEALES GENERALIZADOS
10
fitted(wn.fit2)
8
6
4
2
0
0 2 4 6 8 10
westnilesc$equine
Regresión Causi-Poisson
Una estrategia para modelar sobredispersión consiste en ajustar un modelo en el cual se asume que
V ar(Yi ) = φν(µi ) para una constante φ. Cuando φ > 1 entonces se dice que hay sobredispersión. Para la
regresión con Poisson, V ar(Yi ) = φµi > E(Yi ) = µi cuando φ > 1. La estimación de los parámetros β en
la regresión se llevan cabo usando el método de cuasi-verosimilitud (quasi-likelihood). Los coeficientes en
el modelo se estiman de igual manera que un GLM q (verosimilitud) pero los errores estándar asintóticos
q
de los coeficientes se multiplican por la cantidad φ̂ = X 2 /(n − p). Es importante mencionar que este
método corrige los errores estándar por sobredispersión pero no aborda el problema de especificación
incorrecta de la componente lineal del modelo. Vamos a ajustar una regresión cuasi-Poisson o Poisson
usando cuasi-verosimilitud para los datos del virus.
Call:
glm(formula = equine ~ pbr * humanden, family = quasipoisson,
data = westnilesc, offset = log.farms)
Deviance Residuals:
Min 1Q Median 3Q Max
-1.6503 -1.0730 -0.7553 0.3282 2.5228
Coefficients:
Estimate Std. Error t value Pr(>|t|)
78
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 4. MODELOS LINEALES GENERALIZADOS
Es muy importante mencionar que dado que este método no usa verosimilitud, ninguno de los criterios de
selección o comparación de modelos aplica. Queda como ejercicio verificar que los errores estándar de este
q
√
modelo son φ̂ = 1,716101 los errores estándar del modelo anterior ajustado por ML. Un problema con
la regresión cuasi-binomial es que no esta basada en verosimilitud. Por lo tanto, su comparación con otros
modelos es más complicada.
En los modelos anteriores asumimos que Yi ∼ P oisson(µi ). Como consecuencia de este supuesto distribu-
cional tenemos que V ar(Yi ) = µi . En esta sección vamos a modelar los conteos usando la distribución BN.
La función de densidad de esta distribución esta dada por
!y !k
Γ(y + k) µi k
f (yi ; µi , k) = , y = 0, 1, . . .
Γ(k)Γ(y + 1) µi + k µi + k
Esta distribución resulta de la distribución marginal de Yi si se asume que Yi |λi ∼ P oisson(λi ) y λi ∼
Gama(k, k/µi ) (parametrización tradicional con E(λi ) = µi y V ar(λi ) = µ2i /k). Es importante recordar
que la definición de las densidades, particularmente para la BN, cambia dependiendo de la referencia
(la parametrización de la densidad de la BN en R es diferente a la de SAS. Inclusive dentro de SAS la
parametrización de la densidad de la BN varía entre procedimientos).
En la distribución BN se tiene entonces que
E(Yi ) = µi , V ar(Yi ) = µi + γµ2i ,
donde γ = 1/k se conoce como el parámetro de dispersión. Sin embargo, este parámetro no tiene la misma
connotación del parámetro φ en la definición de la familia exponencial de dispersión2 . Note que para γ > 0
se tiene que V ar(Yi ) > µi , lo cual justifica el uso de la distribución BN para sobredispersión. Además,
cuando γ tiende a 0 entonces la BN tiende a una Poisson. Es decir, si φ no es significativamente diferente
de 0 entonces este resultado sugiere que el modelo Poisson es mejor para el conjunto de datos. De la misma
2 Se recomienda leer el siguiente documento de la ayuda de SAS http://tinyurl.com/o8qapxc
79
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 4. MODELOS LINEALES GENERALIZADOS
manera, se pueden llevar a cabo una prueba LRT para comparar el modelo Poisson y el BN, pero el valor p
se debe ajustar debido a las características de los modelos.
En el caso de la regresión BN seguimos usando al misma función de enlace
log(µi ) = xti β.
La regresión BN se ajusta en R usando la función glm.nb de la librería MASS. Es decir, esta distribución no
esta incluida en la función glm que hemos venido utilizando.
Para este modelo la devianza esta dada por
" ! ! !#
X yi 1 1 + γ̂yi
D(y, µ̂) = 2 yi log − yi + log
i µ̂i γ̂ 1 + γ̂ µ̂i
Note que cuando γ̂ es muy pequeño entonces la devianza de la BN se acerca a aquella de la Poisson.
library(MASS)
# Model with PBR and interaction, likelihood, Negative Binomial
wn.fit4 = glm.nb(equine ~ pbr * humanden + offset(log.farms), data = westnilesc,
control = list(maxit = 100, trace = 1, epsilon = 1e-14)) # no necesario en general
summary(wn.fit4)
Call:
glm.nb(formula = equine ~ pbr * humanden + offset(log.farms),
data = westnilesc, control = list(maxit = 100, trace = 1,
epsilon = 1e-14), init.theta = 2.390926479, link = log)
Deviance Residuals:
Min 1Q Median 3Q Max
-1.2768 -0.9811 -0.7516 0.3133 1.9564
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -6.915e+00 4.341e-01 -15.931 <2e-16 ***
pbr 4.517e+03 2.403e+03 1.880 0.0602 .
humanden -6.890e-04 2.299e-03 -0.300 0.7644
pbr:humanden 4.464e+01 2.292e+01 1.948 0.0515 .
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
80
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 4. MODELOS LINEALES GENERALIZADOS
Theta: 2.39
Std. Err.: 1.91
2 x log-likelihood: -111.819
# Deviance G^2
dev = sum(residuals(wn.fit4, type = "deviance")^2)
dev # devianza no escalada
[1] 45.246
dev/wn.fit4$theta # devianza escalada
[1] 18.92404
Hay varias comentarios con respecto a este modelo:
El cociente G2 /df = 45,246/42 = 1,08, lo cual indica un buen ajuste.
EL AIC del modelo BN es 121.82 comparado a 122.54 del modelo Poisson. Es decir, el modelo BN es
ligeramente mejor que el modelo Poisson.
Sin embargo, la estimación del parámetro de dispersión γ de la BN es igual a γ̂ = 2,39(1,91). Note
que el error estándar es grande comparado a la estimación puntual. Esto sugiere que hay nucha
incertidumbre en la estimación del parámetro de dispersión, por lo que el modelo Poisson podría ser
un buen candidato para modelar este conjunto de datos.
Más aún, la prueba LRT entre el modelo Poisson (H0 ) y la BN (H1 ) sugiere el modelo BN es preferido
para este conjunto de datos (p < 0,0495). Esta conclusión se debe tomar con precaución debido a la
cercanía del valor p al nivel de significancia ,05. Una recomendación personal es usar el modelo Poisson
el cual es más sencillo y ajusta razonablemente al conjunto de datos.
anova(wn.fit2, wn.fit4) # DO NOT use it!
Analysis of Deviance Table
81
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 4. MODELOS LINEALES GENERALIZADOS
A manera de conclusión, podemos decir que el modelo Poisson es un buen modelo para describir la tasa de
casos del virus en función de las covariables. Note que a pesar de que la verosimilitud en el modelo BN
es más compleja, la interpretación de los β’s en ambos modelos (Poisson o BN) es la misma ya que esta
depende de la función de enlace.
El fenómeno de sobredispersión se puede abordar de otras maneras tales como distribuciones diferentes
para la respuesta o modelos mixtos. En cuanto a otras distribuciones diferentes a la Poisson y BN no serán
discutidas en este curso. Con base en la experiencia, la regresión BN suele ser muy versátil para manejar
casos de sobredispersión bajo diferentes escenarios. Es decir, rara vez es necesario recurrir a distribuciones
más complejas que podrían complicar la estimación de los parámetros del modelo. De otro lado, el uso de
modelos mixtos será discutido más adelante en el curso.
En esta sección vamos a asumir que tenemos datos binarios, es decir, la variable respuesta Yi toma
valores 0 o 1. En este caso, podemos modelar Yi usando la distribución Bernoulli con un parámetro
pi = µi = E(Yi ) = P (Yi = 1). Para esta distribución se tiene que V ar(Yi ) = pi (1 − pi ). De manera similar
que en la Poisson, la media defina la varianza de la variable aleatoria. En este contexto se dice que los datos
estan en forma no agrupada, es decir, hay una observación Bernoulli para cada individuo.
Los datos se dicen agrupados cuando se tienen varias observaciones para una configuración de las covariables.
Por ejemplo, las respuestas favorables cuando se usan varias dosis de un medicamento. En este caso, la
respuesta se refiere al número de éxitos en lugar de meramente 0’s y 1’s. Es importante mencionar que
82
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 4. MODELOS LINEALES GENERALIZADOS
cuando los datos son 0’s y 1’s pero las variables explicativas son categóricas es mejor agrupar los datos.
Este agrupamiento no es posible si hay variables explicativas que toman valores muy diferentes.
Recuerde que la función de densidad de una variable aleatoria con distribución Bernoulli esta dada por
f (yi , pi ) = pyi (1 − p)1−yi ) , yi = 0, 1.
donde logit(pi ) = log[pi /(1−pi )] es la función de enlace. Esta regresión se conoce como regresión logística.
Existen otras funciones de enlace tales como la función probit Φ−1 (·), siendo esta la inversa de la distribución
acumulada de la normal estándar o la log − log complementaria. En general, se puede escribir pi = F (xti β)
para alguna función de distribución F (·).
Función logit inversa
Ahora vamos a ver como se interpretan los coeficientes β’s en un modelo de regresión logística. Primero,
vamos a definir el concepto de chance (odds). Supongamos que la probabilidad de enfermar es p entonces
el chance de enfermar versus no enfermar es igual a O = p/(1 − p). Por ejemplo, si p = 0,8 entonces
O = 0,8/0,2 = 4. Es decir, el chance de enfermarse versus no enfermarse es 4:1. Con este concepto de odd
veamos como podemos interpretar los coeficientes en la regresión logística.
Interpretación de los coeficientes
Vamos usar un conjunto datos que estudia la probabilidad de crecimiento del microbio CRA7152 (presen-
cia/ausencia de crecimiento) en el jugo de manzana en función de algunas variables químicas y físicas: pH,
83
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 4. MODELOS LINEALES GENERALIZADOS
Call:
glm(formula = Growth ~ pH + Nisin + Temp + Brix, family = binomial(link = logit),
data = apple_juice)
Deviance Residuals:
Min 1Q Median 3Q Max
-2.3614 -0.3990 -0.1585 0.6306 1.6200
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -7.24633 3.21864 -2.251 0.024362 *
pH 1.88595 0.54123 3.485 0.000493 ***
Nisin -0.06628 0.01905 -3.479 0.000503 ***
Temp 0.11042 0.04769 2.316 0.020585 *
Brix -0.31173 0.14317 -2.177 0.029458 *
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
84
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 4. MODELOS LINEALES GENERALIZADOS
La prueba de HL se usa para determinar bondad de ajuste cuando los datos son no agrupados. En esta
prueba las observaciones son agrupadas con base en las probabilidades estimadas (e.g., g = 10 grupos con
2
igual número de observaciones). El estadístico XHL se calcula usando una tabla de contingencia g × 2.
2 Aprox.
XHL ∼ χ2g−2 .
Una desventaja de esta prueba es que no es muy potente y no da información acerca de la fuente que
ocasiona la falta de ajuste. Para este modelo la prueba de HL (p=0.2207) indica que el modelo ajusta
adecuadamente.
# Hosmer-Lemeshow
library(ResourceSelection)
## ResourceSelection 0.3-0 2016-11-04
hoslem.test(apple_juice$Growth, fitted(m.fit))
##
## Hosmer and Lemeshow goodness of fit (GOF) test
##
## data: apple_juice$Growth, fitted(m.fit)
## X-squared = 10.676, df = 8, p-value = 0.2207
Cuando tenemos datos agrupados entonces asumimos que la variable aleatoria Yi ∼ binomial(ni , pi ), donde
Yi es el número de éxitos en ni repeticiones independientes. Esto sucede cuando hay N configuraciones o
combinaciones de los niveles de las covariables, particularmente cualitativas. De la misma manera, cuando
se hacen estudios con covariables cuantitativas pero con pocos valores tales como la dosis de una droga o
un tóxico. A diferencia de los datos no agrupados para los cuales los resultados asintóticos ocurren cuando
n → ∞, en datos agrupados se asume que el tamaño de muestra tiende a infinito cuando ni → ∞. Es decir,
cuando el número de ensayos en cada una de las N configuraciones de las covariables tiende a infinito.
Note que en la definición anterior
E(Yi ) = ni pi , V ar(Yi ) = ni pi (1 − pi ).
Para completar la espeficiación del modelo de regresión logística para datos binomiales decimos que la
media y las covariables se relacionan de la siguiente manera
logit(pi ) = xti β.
85
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 4. MODELOS LINEALES GENERALIZADOS
En el caso de datos agrupados, es decir, con datos binomiales la devianza se puede escribir como
X
D(y, µ̂) = 2 observado × log(observado/esperado),
donde la suma se hace sobre las 2N casillas de una tabla de contingencia con las N configuraciones de las
covariables y los éxitos/fracasos. De manera similar, la estadística de Pearson se define como
N
(Yi − ni p̂i )2
X2 =
X
.
i=1 ni p̂i (1 − p̂i )
Bondad de Ajuste
El modelaje de datos binomiales, particularmente datos binarios, requiere de bastante cuidado ya que la
naturaleza de los datos trae como consecuencia que algunos de los resultados asintóticos no se cumplan. A
continuación se mencionan algunos aspectos que se deben tener en cuenta para llevar a cabo bondad de
ajuste en una regresión logística.
1. Si mis datos estan agrupados entonces asumiendo que el modelo verdadero se cumple y que ni → ∞
entonces las distribuciones de G2 y X 2 se aproximan a una χ2N −p . Por lo general, el estadístico X 2
tiende más rápido a su distribución asintótica que G2 , por lo que X 2 es preferido en muchos casos,
particularmente bajo la presencia de frecuencias pequeñas.
2. La aproximación a una χ2N −p puede ser bastante pobre si el número de repeticiones en cada configuración
de las covariables es pequeña, lo cual ocurre cuando hay bastantes variables categóricas en el modelo o
bajo la presencia de variables continuas en el modelo.
3. Este resultado asintótico no aplica para datos no agrupados. De hecho, ambas estadísticas pueden no
dar información acerca de la bondad de ajuste. Esto se debe a la naturaleza discreta de la respuestas
(0’s y 1’s).
4. Una alternativa para determinar bondad de ajuste en datos no agrupados es usar la prueba de
Hosmer-Lemeshow.
5. Otra forma de proceder es ajustar un modelo más complejo (no el modelo saturado) y compararlo con
el modelo de interés para determinar algún tipo de bondad de ajuste.
86
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 4. MODELOS LINEALES GENERALIZADOS
6. A pesar que la devianza no es útil para determinar bondad de ajuste, esta se puede usar para comparar
dos modelos de interés. En este caso, la diferencia de devianzas es la prueba de razón de verosimilitud
cuya distribución es aproximadamente una χ2p1 −p0 .
7. Debe tener en cuenta que la devianza dependerá del formato de los datos. Es decir, para un mismo
problema usted puede tener datos agrupados y no agrupados con devianzas diferentes, a pesar que las
verosimilitudes de ambos modelos son proporcionales.
Vamos a ilustrar el ajuste de un modelo logístico para datos binarios agrupados (binomiales) en R usando
una base de datos del número de osos salvajes y ciervos rojos en estados de España positivos a Tb o el
parásito E. cervi en función de características del habitat (Fuente: http://www.highstat.com/book2.htm).
Comencemos ajustando un modelo que considera la proporción binomial, es decir, éxitos/repeticiones, como
la variable respuesta.
# Proportion of positive cases
Tbdeer$DeerPosProp = Tbdeer$DeerPosCervi / Tbdeer$DeerSampledCervi
87
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 4. MODELOS LINEALES GENERALIZADOS
Call:
glm(formula = DeerPosProp ~ OpenLand + ScrubLand + QuercusTrees +
QuercusPlants + ReedDeerIndex + EstateSize + Fenced, family = binomial,
data = Tbdeer, weights = DeerSampledCervi)
Deviance Residuals:
Min 1Q Median 3Q Max
-8.0590 -0.8956 0.1093 1.8354 3.7123
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 3.843e+00 7.772e-01 4.945 7.61e-07 ***
OpenLand -3.950e+00 6.383e-01 -6.187 6.12e-10 ***
ScrubLand -7.696e-01 6.140e-01 -1.253 0.210042
QuercusTrees 2.290e-03 5.326e-02 0.043 0.965707
QuercusPlants -3.633e-04 2.308e-02 -0.016 0.987439
ReedDeerIndex 6.689e-02 2.097e-02 3.191 0.001419 **
EstateSize -8.218e-05 2.478e-05 -3.316 0.000913 ***
Fenced -2.273e+00 5.954e-01 -3.819 0.000134 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Note que para este modelo G2 /df = 152,79/15, lo cual es una clara señal que el modelo no ajusta bien a los
datos (sobredispersión en datos binomiales). Antes de modelar la sobredispersión, vamos a modelar los
mismos datos definiendo la respuesta en un formato diferente. Esta formulación del modelo equivalente.
Ahora calculamos χ2 /df = 151,14/15 = 10,07, lo cual nos indica que hay sobredispersión.
# Response as (sucesses, failures)
Tbdeer$DeerNegCervi = Tbdeer$DeerSampledCervi - Tbdeer$DeerPosCervi
m.deer2 = glm(cbind(DeerPosCervi, DeerNegCervi) ~ OpenLand + ScrubLand +
QuercusTrees + QuercusPlants + ReedDeerIndex + EstateSize + Fenced,
family=binomial, data=Tbdeer)
88
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 4. MODELOS LINEALES GENERALIZADOS
summary(m.deer2)
Call:
glm(formula = cbind(DeerPosCervi, DeerNegCervi) ~ OpenLand +
ScrubLand + QuercusTrees + QuercusPlants + ReedDeerIndex +
EstateSize + Fenced, family = binomial, data = Tbdeer)
Deviance Residuals:
Min 1Q Median 3Q Max
-8.0590 -0.8956 0.1093 1.8354 3.7123
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 3.843e+00 7.772e-01 4.945 7.61e-07 ***
OpenLand -3.950e+00 6.383e-01 -6.187 6.12e-10 ***
ScrubLand -7.696e-01 6.140e-01 -1.253 0.210042
QuercusTrees 2.290e-03 5.326e-02 0.043 0.965707
QuercusPlants -3.633e-04 2.308e-02 -0.016 0.987439
ReedDeerIndex 6.689e-02 2.097e-02 3.191 0.001419 **
EstateSize -8.218e-05 2.478e-05 -3.316 0.000913 ***
Fenced -2.273e+00 5.954e-01 -3.819 0.000134 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
89
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 4. MODELOS LINEALES GENERALIZADOS
En datos binomiales ocurre sobredispersión cuando V ar(Yi ) es mayor que la varianza bajo el modelo
logístico ni pi (1 − pi ). Las posibles causas de sobredispersión son similares a las discutidas en regresión
para conteos. En muchos casos se debe a que la distribución de Yi no es binomial debido a, por ejemplo,
correlación en los datos binarios.
Existen varias formas de modelar sobredispersión, tales como regresión beta-binomial, modelos mixtos,
entre otras las cuales serán discutidas más adelante. Por ahora, vamos a usar la misma estrategia usada
en regresión de conteos: regresión cuasi-binomial. Es decir, vamos a asumir que V ar(Yi ) = φni pi (1 − pi ),
donde φ se estima de manera similar a la discutida anteriormente.
# Overdispersion in binomial data
Tbdeer$DeerNegCervi = Tbdeer$DeerSampledCervi - Tbdeer$DeerPosCervi
m.deer3 = glm(cbind(DeerPosCervi, DeerNegCervi) ~ OpenLand + ScrubLand +
QuercusTrees + QuercusPlants + ReedDeerIndex + EstateSize + Fenced,
family=quasibinomial, data=Tbdeer)
summary(m.deer3)
Call:
glm(formula = cbind(DeerPosCervi, DeerNegCervi) ~ OpenLand +
ScrubLand + QuercusTrees + QuercusPlants + ReedDeerIndex +
EstateSize + Fenced, family = quasibinomial, data = Tbdeer)
Deviance Residuals:
Min 1Q Median 3Q Max
-8.0590 -0.8956 0.1093 1.8354 3.7123
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 3.843e+00 2.467e+00 1.558 0.1401
OpenLand -3.950e+00 2.026e+00 -1.949 0.0702 .
ScrubLand -7.696e-01 1.949e+00 -0.395 0.6985
QuercusTrees 2.290e-03 1.691e-01 0.014 0.9894
QuercusPlants -3.633e-04 7.325e-02 -0.005 0.9961
ReedDeerIndex 6.689e-02 6.655e-02 1.005 0.3308
EstateSize -8.218e-05 7.866e-05 -1.045 0.3127
Fenced -2.273e+00 1.890e+00 -1.203 0.2476
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
90
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 4. MODELOS LINEALES GENERALIZADOS
Supongamos que queremos clasificar una observación como éxito (Y = 1) o fracaso (Y = 0) usando algunas
variables explicativas y un modelo de regresión logística. La idea es estimar la probabilidad de éxito usando
el modelo y decidir si la observación es éxito o fracaso usando un punto de corte de la probabilidad.
p̂: Probabilidad estimada usando el modelo logístico.
Si p̂ > p0 entonces Ŷ = 1. En otro caso, Ŷ = 0. En muchas aplicaciones p0 = 0,5 pero este valor se
debe determinar con base en el poder predictivo del clasificador.
Sensitividad = a/(a + c).
Especificidad = d/(b + d).
Tasa de Falsos Positivos : F + = b/(b + d).
Tasa de Falsos Negativos : F − = c/(a + c).
En regresión logística se puede hablar del área bajo la curva ROC (Receiver Operating Characteristic) como
una medida del poder predictivo del modelo.
Cada valor de p0 nos da un valor para la sensitividad y especificidad.
La idea es encontrar un punto de corte p0 tal que la sensitividad y la especifidad sean máximas.
El área bajo la curva ROC (AUC) toma valores entre 0 y 1. El área nos proporciona una medida de la
habilidad del modelo para discriminar (valores de AU C > 0, 8 son considerados muy buenos).
# Area under the Curve (AUC) using apple juice dataset
library(ROCR)
m.fit = glm( Growth ~ pH + Nisin + Temp, family=binomial(link=logit), data=apple_juice)
prob = predict(m.fit, type="response")
apple_juice$prob = prob
library(pROC)
g = roc( Growth ~ prob, data=apple_juice )
g
Call:
roc.formula(formula = Growth ~ prob, data = apple_juice)
91
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 4. MODELOS LINEALES GENERALIZADOS
plot(g)
1.0
0.8
0.6
Sensitivity
0.4
0.2
0.0
En este ejemplo el AUC es igual a 0.9247 lo cual indica que el modelo de regresión logística tiene un
buen poder predictivo del crecimiento del CRA7152. En la práctica se recomienda usar otras medidas del
desempeño del modelo basadas en validación cruzada ya que las medidas basadas en los mismos datos
usados para ajustar el modelo suelen sobrestimar el error de predicción.
92
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 4. MODELOS LINEALES GENERALIZADOS
Al igual que en modelos lineales, los métodos de selección de modelos o de variables tradicionales tales como
forward, backward y stepwise se pueden implementar en MLG. De la misma manera, métodos más sofisticados
como LASSO también estan disponibles. En el caso de LASSO se minimiza el negativo del logaritmo de
la función de verosimilitud penalizada (la función glmnet de R tiene implementado el LASSO como un
caso especial de la Red Elástica-Elastic Net). Excepto para los modelos basados en cuasi-verosimilitud los
métodos de comparación de modelos basados en ML tales como AIC o BIC también aplican para los MLG.
Estos métodos se encuentran implementados en algunas funciones de R y procedimientos de SAS.
MLG en SAS
Existen básicamente cuatro procedimientos en SAS para ajustar MLG: PROC LOGISTIC, PROC PROBIT,
PROC GENMOD y PROC GLMMIX. Estos procedimientos difieren en sus funcionalidades para ajustar
los diferentes MLG que hemos visto. La sintáxis básica es la siguiente:
PROC LOGISTIC data=;
class F1 F2; /* factores */
model Y = F1 F2 X1 X2 X3; /* X's continuas */
run;
La palabra clave LOGISTIC se reemplaza por GENMOD o GLIMMIX, dependiendo del MLG que se
quiera ajustar. El PROC LOGISTIC es especializado en regresión logística para datos binarios, ordinales y
nominales. Este procedimiento incluye muchos de las medidas de bondad de ajuste, métodos de selección de
variables y análisis de curvas ROC. Al igual que PROC REG para modelos lineales, use este procedimiento si
quiere llevar a cabo un análisis de datos especializado con regresión logística. Sin embargo, este procedimiento
admite otras funciones de enlace tales como probit y cloglog. Este procedimiento se usa para modelar datos
con observaciones independientes.
El PROC GENMOD se usa para ajustar MLG más generales incluyendo la regresión Poisson, binomial
negativa, ZIP, ZINB, gama, entre otros. También maneja modelos de cuasi-verosimilitud, tal como vimos en
la regresión Poisson y logíistica para datos binomiales. De otro lado, el PROC GLIMMIX sirve para ajustar
MLG pero los modelos pueden incluir efectos aleatorios, los cuales se discutirán más adelante. Estos dos
procedimientos se usan para modelar tanto datos con observaciones independientes como correlacionadas.
Como se ha mencionado en otras ocasiones, si le interesa conocer más detalles del alcance de estos
procedimientos puede leer los archivos de ayuda de SAS. Más adelante volveremos sobre los procedimientos
disponibles para modelar datos correlacionados.
93
Spring 2017 Curso: Modelos Estadísticos Avanzados BIBLIOGRAFÍA
Bibliografía
[1] Andrzej Galecki y Tomasz Burzykowski. Linear Mixed-Effects Models Using R. 2013.
[2] Yihui Xie. knitr: A general-purpose package for dynamic report generation in R. R package version 1.4.1. 2013. url:
http://yihui.name/knitr/.
94