Está en la página 1de 94

Spring 2017 Curso: Modelos Estadísticos Avanzados

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

Last Revision: 8 de febrero de 2017

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. Fundamentos de Modelos Lineales 17


2.1. Modelo Lineal Clásico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2. Interpretación de coeficientes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.3. Métodos de Mínimos Cuadrados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.4. Variabilidad en el Modelo Lineal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.5. Residuales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.6. Mínimos Cuadrados Generalizados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.7. Estimación via Máxima Verosimilitud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.8. Estimación via Máxima Verosimilitud Restringida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.9. Incertidumbre en las Estimaciones de los Parámetros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.10. Criterios de Selección de Modelos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Métodos Tradicionales y Modernos de Selección de Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Modelos Anidados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Modelos No Anidados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

3. Modelos Lineales en R y SAS 24


3.1. Base de Datos: Nacimientos en PR en el 2011 (newbornpr2011s.csv) . . . . . . . . . . . . . . . . . . . . . . . 24
3.2. Ajuste de un Modelo Lineal usando las Funciones de R : lm() y gls() . . . . . . . . . . . . . . . . . . . . . . 25
Modelo con Varianza Homogénea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Modelo con Varianza Heterogénea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.3. Selección de Modelos en R usando LASSO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.4. Ajuste de un modelo lineal en SAS Studio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

4. Modelos Lineales Generalizados 55


4.1. Familia Exponencial y Exponencial de Dispersión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.2. Modelos Lineales Generelizados (MLG) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Inferencia en MLG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4.3. Regresión para Conteos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Devianza en la Regresión Poisson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Ejemplo: Número de muertes por cancer de pulmón [Agresti2015] . . . . . . . . . . . . . . . . . . . . . . . . 60
Modelos para Tasas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Sobredispersión en Conteos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Regresión Causi-Poisson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Regresión Binomial Negativa (BN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Exceso de Ceros en los Datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
4.4. Regresión para Datos Binarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

2
Spring 2017 Curso: Modelos Estadísticos Avanzados ÍNDICE GENERAL

Regresión para Datos Binarios No Agrupados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83


Bondad de ajuste usando la Prueba de Hosmer-Lemeshow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Regresión para Datos Binarios Agrupados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Selección de Modelos en MLG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
MLG en SAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

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)
}

packages <- c("ggplot2", "dplyr", "lattice", "nlmeU", "nlme", "haven", "GGally")


ipak(packages)
## ggplot2 dplyr lattice nlmeU nlme haven GGally
## TRUE TRUE TRUE TRUE TRUE TRUE TRUE
Las demás librerías que se usarán el curso se instalarán a medida que avancemos con el material.
2. Instalar SAS University Edition. Siga las instrucciones que se encuentran en la siguiente página web:
www.sas.com/university. Esta versión de SAS es gratuita y la podrá correr usando una máquina
virtual, tal como lo explican en las instrucciones de instalación.

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

1.1. Age-Related Macular Degeneration (ARMD) Trial [1]

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

Figura 1.1.1: Perfiles individuales de agudeza visual

# 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

Figura 1.1.2: Perfiles promedio de agudeza visual

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)

Figura 1.1.3: Agudeza visual por tratamiento

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

Figura 1.1.4: Correlacion entre mediciones

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.

1.2. Respuestas Favorables en Clínicas

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 [?]

trt time meanFav n


<dbl> <dbl> <dbl> <int>
1 1 1 6.000000 6
2 1 2 4.833333 6
3 1 3 6.000000 6
4 1 4 6.666667 6
5 1 5 7.833333 6
6 1 6 4.500000 6
7 2 1 5.666667 6

11
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 1. EJEMPLOS INTRODUCTORIOS

10

factor(trt)
Fav

1
2
5

2 4 6
time

Figura 1.2.1: Numero de pacientes que respondieron favorablemente

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()

1.3. Circunferencia del tronco en árboles de naranja

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

Figura 1.2.2: Numero de pacientes que respondieron favorablemente

crecimiento se modela como


β1
f (t) = + e,
−(t−β2 )/β3
1+ e
donde los β’s son parámetros desconocidos y e es el error aleatorio; f (t) es el diámetro en el tiempo t. Al
igual que en los casos anteriores, las respuestas a través del tiempo seguramente exhiben correlación entre
sí.
# A tibble: 6 × 3
Day circum Tree
<dbl> <dbl> <dbl>
1 118 30 1
2 484 58 1
3 664 87 1
4 1004 115 1
5 1231 120 1
6 1372 142 1
# Figura 1.0.7
library(ggplot2)
ggplot(orange, aes(x = Day, y = circum, group = as.factor(Tree), color = as.factor(Tree))) +
geom_line() + geom_point()

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

400 800 1200 1600


Day

Figura 1.3.1: Perfiles individuales del diametro de circunferencia

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

Figura 1.4.1: Perfiles individuales del diametro de circunferencia

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

rstudent(m)[retinol$CALORIES < 5000]

3
2
1
0
−1
−2

200 400 600 800

retinol$CHOLESTEROL[retinol$CALORIES < 5000]

Figura 1.4.2: Residuales Estudentizados vs. Predicciones en modelo lineal

16
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 2. FUNDAMENTOS DE MODELOS LINEALES

Capítulo 2

Fundamentos de Modelos Lineales

2.1. Modelo Lineal Clásico

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

De esta manera el modelo (2.1.1) se puede escribir como


Y = Xβ + ε, (2.1.2)
donde Y = (Y1 , . . . , Yn )t y ε = (ε1 , . . . , εn )t es un vector columna con los n errores del modelo. También
se asume que ε ∼ N (0, σ 2 I n ), donde I n es la matriz identidad de orden n. Los supuestos para el modelo
(2.1.2) implican que:
1. E(Y |X) = Xβ.
2. V ar(Y |X) = σ 2 I n .
3. Y |X ∼ N (Xβ, σ 2 I n ).

2.2. Interpretación de coeficientes

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.

2.3. Métodos de Mínimos Cuadrados

Un método de estimación de β en el modelo (2.1.2) es llamado Mínimos Cuadrados (Least Squares). El


método consiste en minimizar la suma de cuadrados de errores dada por
n
(yi − ŷi )2 = (Y − Xβ)t (Y − Xβ).
X
SSE =
i=1

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).

2.4. Variabilidad en el Modelo Lineal

Un estimador insesgado para σ 2 en el modelo 2.1.2 esta dado por


− µ̂i )2
P
2 i (yi
s = ,
n−p

donde µ̂i = xti β̂.


De otro lado, se tiene la descomposición en sumas de cuadrados

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.

2.6. Mínimos Cuadrados Generalizados

En algunos problemas el supuesto de homocedasticidad en los errores no es razonable. En estos casos es


necesario definir el modelo con diferentes supuestos para los errores. Esto es,
Y = Xβ + ε, (2.6.1)

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.

2.7. Estimación via Máxima Verosimilitud

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).

2.8. Estimación via Máxima Verosimilitud Restringida

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

En este caso, el estimador insesgado de σ 2 esta dado por


− µ̂i )2
P
2 i (yi
σ̂REM L = , (2.8.1)
n−p
el cual coincide con el estimador de mínimos cuadrados. El estimador REML para β es igual al estimador
ML. Estas coincidencias son ciertas para el caso del modelo clásico (observaciones independientes y varianza
constante) pero no surgen en modelos más complejos.

2.9. Incertidumbre en las Estimaciones de los Parámetros

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

Un estimador para la matriz de covarianza esta dado por


ar(β̂) = σ̂ 2 (X t X)−1 ,
Vd
donde σ̂ 2 puede ser el estimador LS, ML o REML de σ 2 , dependiendo del método de estimación usado.
También note que a pesar de que β̂ basado en ML o REML son iguales sus matrices de covarianza estimadas
no son iguales debido a la estimación de σ 2 .
Usando la normalidad de β̂ es posible llevar a cabo inferencia acerca de los parámetros en el modelo
(β y σ 2 ). Esto incluye tanto llevar a cabo pruebas de hipótesis como intervalos de confianza usando las
distribuciones clásicas derivadas de la normalidad tales como t, χ2 y F .

2.10. Criterios de Selección de Modelos

Métodos Tradicionales y Modernos de Selección de Variables

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

Modelos Lineales en R y SAS

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.

3.1. Base de Datos: Nacimientos en PR en el 2011 (newbornpr2011s.csv)

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

$ SEX : Factor w/ 2 levels "F","M": 1 1 1 1 1 1 2 1 1 2 ...


$ DBWT : int 2778 3005 2637 3572 2722 3402 3175 2098 3147 2013 ...
$ RF_DIAB : Factor w/ 3 levels "N","U","Y": 1 1 1 1 1 1 1 1 1 1 ...
$ RF_GEST : Factor w/ 3 levels "N","U","Y": 1 3 1 1 1 1 1 1 1 1 ...
$ RF_PHYP : Factor w/ 3 levels "N","U","Y": 1 1 1 1 1 1 1 1 1 1 ...
$ RF_GHYP : Factor w/ 3 levels "N","U","Y": 1 1 1 1 1 1 1 3 1 1 ...
$ RF_ECLAM: Factor w/ 3 levels "N","U","Y": 1 1 1 1 1 1 1 1 1 1 ...

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

3.2. Ajuste de un Modelo Lineal usando las Funciones de R : lm() y gls()

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

y ~ bs(x1, df=3) # B-splines en x1 (nodos + orden)


y ~ I(x1 + 100/x2) # regresion simple sobre (x1+100/x2)

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]

Objeto Función lm() Función gls()


Resumen sum.lm <- summary(lm.fit) sum.gls <- summary(lm.gls)
β̂ coef(lm.fit) coef(gls.fit)
β̂, se(
b β̂), t-test vcov(lm.fit) vcov(gls.fit)
IC 95 % para β confint(lm.fit) confint(gls.fit), intervals(gls.fit, which=“coef")
ML logLik(lm.fit) logLik(gls.fit, REML=FALSE)
REML logLik(lm.fit, REML=TRUE) logLik(gls.fit, REML=TRUE)
AIC AIC(lm.fit) AIC(gls.fit)
BIC BIC(lm.fit) BIC(gls.fit)
Valores ajustados fitted(lm.fit) fitted(gls.fit)
Residuales crudos residuals(lm.fit, type=“response") residuals(lm.fit, type=“response")
Predicciones predicted(lm.fit, newdata ) predicted(gls.fit, newdata )
Matriz de diseño model.matrix(lm.fit)

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)

Modelo con Varianza Homogénea

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))

Recuerde que la validez de la inferencia en un modelo lineal depende de la verificación de supuestos,


particularmente normalidad y varianza constante. Así, antes de proceder a interpretar los valores p (p-
values) debemos dar un vistazo a los gráficos de residuales. A pesar de que se pueden llevar a cabo pruebas
formales en este caso vamos a asumir que los supuestos son razonables para proceder con el análisis.
# Modelo lineal usando lm() - Nacimientos en PR
lm.fit1 <- lm(DBWT ~ MAGER + PRECARE + WTGAIN + PGWT + DWGT, data = newborn.sample)
summary(lm.fit1)

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

0.04 Corr: Corr: Corr: Corr: Corr:


0.02 −0.152 −0.0483 0.23 0.206 0.1
0.00
WTGAIN PRECARE

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

Figura 3.2.1: Matriz de dispersión de nacimientos en PR

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

Figura 3.2.2: Peso del recién nacido por sexo

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

Figura 3.2.3: Peso del recién nacido por raza de la madre

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

3000 148 365 Some college


29 63
Assoc
Bach
Master
2000 Doc
Unkn

1000
Some college
High School

Master
Assoc

Unkn
Bach
9−12

Doc
<=8

Nivel Educativo

Figura 3.2.4: Peso del recién nacido por nivel educativo

32
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 3. MODELOS LINEALES EN R Y SAS

PGWT -6.1503 3.0240 -2.034 0.04224 *


DWGT 9.1383 3.0135 3.032 0.00249 **
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 529.7 on 976 degrees of freedom


Multiple R-squared: 0.0921,Adjusted R-squared: 0.08745
F-statistic: 19.8 on 5 and 976 DF, p-value: < 2.2e-16
# Modelo lineal excluyendo PGWT
lm.fit2 <- lm(DBWT ~ MAGER + PRECARE + WTGAIN + DWGT, data = newborn.sample)
summ2 <- summary(lm.fit2)
summ2

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

Residual standard error: 530.6 on 977 degrees of freedom


Multiple R-squared: 0.08825,Adjusted R-squared: 0.08452
F-statistic: 23.64 on 4 and 977 DF, p-value: < 2.2e-16
vcov(summ2) # matriz de covarianza
(Intercept) MAGER PRECARE WTGAIN
(Intercept) 12587.6754 -195.8187000 -622.05524288 -30.0975047
MAGER -195.8187 8.8539512 5.75349030 0.3810544
PRECARE -622.0552 5.7534903 160.42140798 0.6066499
WTGAIN -30.0975 0.3810544 0.60664987 1.5807573
DWGT -27.4225 -0.3139394 -0.06674166 -0.1390530
DWGT
(Intercept) -27.42250350
MAGER -0.31393937
PRECARE -0.06674166

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

lm(DBWT ~ MAGER + PRECARE + WTGAIN + DWGT)

Residuals vs Fitted Normal Q−Q


3000

21360 21360

Standardized residuals

4
1000

2
Residuals

0
−1000

−2
−4
−3000

22517
17003 22517
17003

2600 3000 3400 3800 −3 −2 −1 0 1 2 3

Fitted values Theoretical Quantiles

Scale−Location Residuals vs Leverage


17003
21360 22517
Standardized residuals

2.0

Standardized residuals

4
2
1.5

0
1.0

−6 −4 −2

38661
0.5

24781

Cook's distance
17003
0.0

2600 3000 3400 3800 0.00 0.01 0.02 0.03 0.04

Fitted values Leverage

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

Analysis of Variance Table

Model 1: DBWT ~ MAGER + PRECARE + WTGAIN + DWGT


Model 2: DBWT ~ MAGER + PRECARE + WTGAIN + PGWT + DWGT
Res.Df RSS Df Sum of Sq F Pr(>F)
1 977 275014126
2 976 273853491 1 1160635 4.1364 0.04224 *
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Ahora vamos a ajustar el modelo anterior pero usando la función gls().


# Modelo lineal usando gls() - Nacimientos en PR Modelo lineal excluyendo
# PGWT
library(nlme)
gls.fit <- gls(DBWT ~ MAGER + PRECARE + WTGAIN + DWGT, data = newborn.sample)
summ.gls <- summary(gls.fit)
summ.gls
Generalized least squares fit by REML
Model: DBWT ~ MAGER + PRECARE + WTGAIN + DWGT
Data: newborn.sample
AIC BIC logLik
15094.83 15124.14 -7541.415

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

Residual standard error: 530.5548


Degrees of freedom: 982 total; 977 residual
vcov(summ.gls) # matriz de covarianza

36
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 3. MODELOS LINEALES EN R Y SAS

(Intercept) MAGER PRECARE WTGAIN


(Intercept) 12587.6754 -195.8187000 -622.05524288 -30.0975047
MAGER -195.8187 8.8539512 5.75349030 0.3810544
PRECARE -622.0552 5.7534903 160.42140798 0.6066499
WTGAIN -30.0975 0.3810544 0.60664987 1.5807573
DWGT -27.4225 -0.3139394 -0.06674166 -0.1390530
DWGT
(Intercept) -27.42250350
MAGER -0.31393937
PRECARE -0.06674166
WTGAIN -0.13905301
DWGT 0.22769494
confint(summ.gls) # Intervalos del 95% de confianza
2.5 % 97.5 %
logLik(gls.fit)
'log Lik.' -7541.415 (df=6)
AIC(gls.fit)
[1] 15094.83
BIC(gls.fit)
[1] 15124.14
par(mfrow = c(2, 2), oma = c(0, 0, 2, 0))
plot(gls.fit)

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

Ejercicio: Comparación de métodos de estimación

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.

Ejercicio: Modelo lineal con factores

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.

Modelo con Varianza Heterogénea

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

Cuadro 3.2: Funciones de varianza en la función gls() de R [1]

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

Residual standard error: 72.43 on 235 degrees of freedom


Multiple R-squared: 0.6393,Adjusted R-squared: 0.6378
F-statistic: 416.5 on 1 and 235 DF, p-value: < 2.2e-16
par(mfrow = c(2, 2))
plot(lm.brain, 2)
boxplot(rstudent(lm.brain) ~ brainhead$gender, xlab = "Gender") # gender
boxplot(rstudent(lm.brain) ~ brainhead$age, xlab = "Age Group") # age
plot(brainhead$head, rstudent(lm.brain))

41
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 3. MODELOS LINEALES EN R Y SAS

1500
brain

1300

1100

3000 3500 4000 4500


head

Figura 3.2.5: Tamaño del cerebro vs. cabeza

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

Theoretical Quantiles Gender


3

3
rstudent(lm.brain)
2

2
1

1
0

0
−1

−1
−2

−2

1 2 3000 3500 4000 4500

Age Group brainhead$head

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)

Generalized least squares fit by REML


Model: brain ~ factor(gender) + factor(age) + head
Data: brainhead
AIC BIC logLik
2690.522 2707.777 -1340.261

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

Residual standard error: 71.36049


Degrees of freedom: 237 total; 233 residual

# 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)

Generalized least squares fit by REML


Model: brain ~ factor(gender) + factor(age) + head
Data: brainhead
AIC BIC logLik
2692.183 2712.889 -1340.091

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

Value Std.Error t-value p-value


(Intercept) 412.3255 58.65901 7.029192 0.0000
factor(gender)2 -21.6328 11.04294 -1.958967 0.0513
factor(age)2 -23.7774 9.51597 -2.498681 0.0132
head 0.2457 0.01503 16.339044 0.0000

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

Residual standard error: 73.42882


Degrees of freedom: 237 total; 233 residual
anova(gls.brain, gls.brain2)
Model df AIC BIC logLik Test L.Ratio p-value
gls.brain 1 5 2690.522 2707.777 -1340.261
gls.brain2 2 6 2692.183 2712.889 -1340.091 1 vs 2 0.3394052 0.5602

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

Residual standard error: 0.001247576


Degrees of freedom: 237 total; 233 residual
# Intervalo de confianza para los parámetros en la varianza
intervals(gls.brain3, which = "var-cov")$varStruct
lower est. upper
power 0.7490932 1.334915 1.920736
attr(,"label")
[1] "Variance function:"
# Prueba LRT
anova(gls.brain, gls.brain3)
Model df AIC BIC logLik Test L.Ratio p-value
gls.brain 1 5 2690.522 2707.777 -1340.261
gls.brain3 2 6 2684.575 2705.282 -1336.288 1 vs 2 7.946465 0.0048

plot(fitted(lm.brain), rstandard(lm.brain), main = "Varianza homogénea")

plot(gls.brain3, resid(., type = "pearson") ~ fitted(.), main = "Varianza heterogénea")

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

1100 1200 1300 1400 1500

fitted(lm.brain)

Figura 3.2.6: Residuales modelo con varianzas de residuales diferentes

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

1100 1200 1300 1400 1500 1600

Fitted values

Figura 3.2.7: Residuales modelo con varianzas de residuales diferentes

48
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 3. MODELOS LINEALES EN R Y SAS

Función de varianza ajustada


60000
50000
40000
resid(gls.brain3)^2

30000
20000
10000
0

3000 3500 4000 4500

brainhead$head

Figura 3.2.8: Función de varianza ajustada (power)

49
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 3. MODELOS LINEALES EN R Y SAS

Ejercicio: Comparación de métodos de estimación

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].

3.3. Selección de Modelos en R usando LASSO

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

0 50 100 150 200 250

L1 Norm

52
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 3. MODELOS LINEALES EN R Y SAS

coef(fit.glmnet, s = c(lmin, l1se)) # sparse solution


9 x 2 sparse Matrix of class "dgCMatrix"
1 2
(Intercept) 2014.1879263 2714.956706
MAGER 0.8995425 .
PRECARE 21.9020545 .
WTGAIN 4.3829963 1.246294
DWGT 3.9911884 1.699588
MEDUC 34.0566145 .
PGWT -0.9993946 .
MRACEREC -36.5201507 .
SEX 124.4464206 .
En este ejemplo vemos que el método LASSO sugiere que las variables WTGAIN y DWGT son relevantes
para explicar el peso de los recién nacidos. Es importante mencionar que las estimaciones LASSO tienden a
ser sesgadas o encogidas hacia 0 (shrunken towards 0 ).

3.4. Ajuste de un modelo lineal en SAS Studio

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

Modelos Lineales Generalizados

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.

4.1. Familia Exponencial y Exponencial de Dispersión

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) .

Por ejemplo, la distribución Poisson cuya densidad es igual


e−θ θy
f (y; θ) = , y = 0, 1, . . . ,
y!
se puede re-escribir como
f (y; θ) = exp(y log θ − θ − log y!).
Por lo tanto, la distribución Poisson pertence a la familia exponencial. Además, tiene forma canónica ya
que a(y) = y y el parámetro natural es log θ.
Ahora, asuma que la variable aleatoria Y tiene una distribución con parámetros θ y φ. La densidad de Y ,
f (y; θ, φ) se dice que pertenece a la familia exponencial de dispersión si
f (y; θ, φ) = e[yθ−b(θ)]/s(φ)+c(y,φ) ,

55
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 4. MODELOS LINEALES GENERALIZADOS

donde φ es llamado el parámetro de dispersión mientras que θ es llamado el parámetro canónico de


localización. Si φ es conocido entonces tenemos la definición de la familia exponencial.
La importancia de esta familia exponencial es que la media de la variable se puede modelar usando
covariables y diferentes funciones que enlazan las covariables con la media pero la teoría de estimación y
asintótica se unifica para toda familia. Un tratamiento más detallado de los modelos lineales generalizados
(MLG) se puede encontrar en Agresti (2010). En lo que resta del curso nos dedicaremos a estudiar los MLG
más usados y su ajuste en R y SAS, así como la interpretación de los coeficientes en el modelo.

4.2. Modelos Lineales Generelizados (MLG)

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

Distribución Media Varianza Función de enlace g(µ) = xti β µ = g −1 (xti β)


Normal(µ, σ 2 ) µ σ2 g(µ) = µ (Identidad) µ = xti β
Gamma(α, β) αβ αβ 2 g(µ) = 1/µ µ = 1/xti β
Poisson(λ) λ λ g(λ) = log(λ) µ = exp(xti β)
Bernoulli(1, p) p p(1 − p) g(p) = logit(p) = log[p/(1 − p)] µ = exp(xti β)/[1 + exp(xti β)]

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].

Bondad de Ajuste en MLG: Devianza y Estadístico X 2 (chi-square)

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,

D(y, µ) = −2[l(modelo) − l(saturado)] = −2[l(µ̂; y) − l(µ̂; µ)],


donde l(µ̂; y) es el logaritmo de la verosimilitud del modelo de interés y l(µ̂; µ) es el logaritmo de la
verosimilitud del modelo saturado. Un modelo saturado es aquel en el cual se asume que hay tantos
parámetros como observaciones, es decir, µ̂i = yi . En la familia de dispersión exponencial se utiliza la
devianza escalada D(y, µ)/φ.
Bajo ciertas condiciones en las cuales n es fijo, el parámetro de dispersión es pequeño y conocido y las
observaciones individuales convergen a una distribución normal (por ejemplo, en un MLG con distribución
Binomial o Poisson donde φ = 1) la devianza escalada tiene una distribución aproximada a una ji-cuadrado
con los grados de libertad igual al número de observaciones menos el número de parámetros del modelo
de interés. Este resultado provee un valor de referencia para determinar la bondad de ajuste del modelo
cuando el parámetro de dispersión es conocido (e.g., Binomial y Poisson). D(y, µ) es no negativa y un valor
grande indica un ajuste pobre del modelo. Cuando el parámetro de dispersión φ es desconocido entonces el
resultado asintótico de la devianza escalada no aplica.

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

Bajo ciertas condicionales de regularidad, la distribución de X 2 se puede aproximar a una ji-cuadrado


con grados de libertad igual al número de observaciones menos el número de parámetros en el modelo.
Cuando el número de observaciones es suficiente grande, los estadísticos D (devianza) y X 2 son equivalentes.
Algunos autores recomiendan el uso de X 2 en lugar de D ya que esta última se deja afectar más cuando las
frecuencias esperadas son muy pequeñas. Es más, si el MLG incluye covariables continuas y la respuesta es
binaria (es decir, hay pocas observaciones para cada combinación de valores de las covariables) entonces
ninguno de los dos estadísticos se deberían usar para determinar bondad de ajuste de un MLG con respuesta
binaria [Dobson&Barnett2008]. En esos casos, se puede usar la prueba de Hosmer-Lemeshow la cual
discutiremos más adelante en la parte de regresión logística.

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.

4.3. Regresión para Conteos

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 β.

Recuerde que si Yi ∼ P oisson(µi ) entonces la función de densidad de Yi esta dada por


e−µi µyi i
f (yi ; µi ) = , yi = 0, 1, 2, . . . .
yi !
En este caso se tiene que E(Yi ) = V ar(Yi ) = µi .

Devianza en la Regresión Poisson

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

En este modelo, la devianza es entonces igual a


X
D=2 oi log(oi /ei ),
i

donde oi es el valor observado yi y ei es el valor esperado (ajustado) ŷ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

Supongamos que la variable repuesta es el número de personas que mostraron mejoría en un


ensayo clínico y que se usa el siguiente modelo de regressión Poisson para explicar el conteo
B
promedio: log(µi ) = β0 + β1 fi , donde fi es una variable indicadora para un grupo experimental
(fi = 1) y un grupo control fi = 0. Interprete los β’s.

Más sobre 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.

Ejemplo: Número de muertes por cancer de pulmón [Agresti2015]

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.

# Lee base de datos del sitio web


cancer <- read.csv("http://stat.ufl.edu/~aa/glm/data/Cancer.dat", sep = "")
str(cancer)
'data.frame': 63 obs. of 5 variables:
$ time : int 1 1 1 2 2 2 3 3 3 4 ...
$ histology: int 1 2 3 1 2 3 1 2 3 1 ...
$ stage : int 1 1 1 1 1 1 1 1 1 1 ...
$ count : int 9 5 1 2 2 1 9 3 1 10 ...
$ risktime : int 157 77 21 139 68 17 126 63 14 102 ...
head(cancer)
time histology stage count risktime
1 1 1 1 9 157

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

# Mean and SD by stage


with(cancer, tapply(count, stage, function(x) {
sprintf("M (SD) = %1.2f (%1.2f)", mean(x), sd(x))
}))
1 2 3
"M (SD) = 2.76 (2.96)" "M (SD) = 3.62 (3.06)" "M (SD) = 10.43 (10.77)"
Por ahora vamos a modelar el número de pacientes que murieron sin tener en cuenta el número de pacientes

62
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 4. MODELOS LINEALES GENERALIZADOS

en riesgo. Asumamos que Yi ∼ P oisson(µi ) donde


log(µi ) = β0 + βjH + βkS + βlT .

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

(Dispersion parameter for poisson family taken to be 1)

Null deviance: 419.708 on 62 degrees of freedom


Residual deviance: 79.989 on 52 degrees of freedom
AIC: 287.81

Number of Fisher Scoring iterations: 5


# MLG para conteo de muertes de cáncer
library(car)
Anova(fit.cancer, type=3)

63
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 4. MODELOS LINEALES GENERALIZADOS

Analysis of Deviance Table (Type III tests)

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

La salida de este modelo merece varios comentarios:


Note que la devianza residual es G2 = 79,989(gl = 52). El cociente de estas dos cantidades es igual
a 1.5382, una cantidad no muy lejana de 1, lo cual indica un ajuste razonable del modelo (recuerde
que valores lejanos de 1 indican que el modelo no ajusta bien a los datos. En el caso de conteos con
distribución Poisson este resultado es señal de sobredispersión, es decir, varianza mayor que la media).
La devianza nula corresponde a la razón de verosimilitud entre el modelo saturado y el modelo nulo
(con intercepto únicamente). Algunos autores usan la cantidad

2 Null deviance-Residual deviance


Rpseudo =
Null deviance
como una medida de ajuste similar al coeficiente de determinación en modelos lineales. Esta cantidad
se conoce como el pseudo R2 . En este caso Rpseudo
2
= 0,81, lo cual indicaría que las variables explican
aproximadamente el 82 % de la variabilidad del número de muertes.
En términos de interpretación de los coeficientes podemos decir, por ejemplo, que el número promedio
de muertes en la etapa 3 es aproximadamente exp(1,3286) = 3,776 veces el número promedio de
muertes de la etapa 1, después de ajustar por tiempo de seguimiento y histología (intervalo del 95 %
de confianza [2.848, 5.087]).
Según la salida, todas las variables son significativas para explicar el número promedio de muertes por
cáncer. Este resultado se debe revisar ya que estamos ignorando el número de pacientes en riesgo.
Si queremos determinar si hay diferencia significativa entre el número promedio de muertes entre

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))

Modelos para Tasas

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,

log(µi /ti ) = xti β,

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

Figura 4.3.1: Conteos observados vs. predicciones

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

log(µi ) = xti β + log(ti ).


La cantidad log(ti ) se le conoce como el offset. De esta manera, el modelo anterior se ajusta fijando en uno
el coeficiente para esta variable. Note que en este caso
t
µi = ti exi β .

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

(Dispersion parameter for poisson family taken to be 1)

Null deviance: 175.718 on 62 degrees of freedom


Residual deviance: 43.923 on 52 degrees of freedom
AIC: 251.74

Number of Fisher Scoring iterations: 5


Anova(fit.cancer1, type = 3)
Analysis of Deviance Table (Type III tests)

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

chisq = sum(((cancer$count - fitted(fit.cancer1))/sqrt(fitted(fit.cancer1)))^2)


chisq
[1] 43.05481

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

3. El modelo omite términos de interacción.


4. Un predictor necesita transformación (e.g., log).
5. La función de enlace no se especifica correctamente. Es decir, la relación entre la media transformada
y los predictores no es lineal (poco frecuente en conteos).
Una consecuencia de ajustar una regresión con datos sobredispersos es que los errores estándar de los
coeficientes se pueden subestimar. Esto trae como consecuencia que se declaren predictores significativos
cuando en realidad no lo son (falsos positivos). Un mensaje importante es que se debe revisar detenidamente
los datos para descartar posibles causas de sobredispersión antes de recurrir a las estrategias que vamos a
mencionar para modelar datos de conteos sobredispersos.
Vamos a ilustrar el problema de sobredispersión en la regresión para conteos usando la base de datos
del número de casos del virus de West Nile en equinos y aves en condados de Carolina del Sur (bajar
base datos en: http://www.stat.ufl.edu/~winner/data/westnilesc.dat). Las variables explicativas
son: PBR (Positive Bird Rate=# de aves/población) y densidad humana (HD). La variable respuesta es la
tasa de casos en equinos (# de casos equinos/granjas) (ver descripción en: http://www.stat.ufl.edu/
~winner/data/westnilesc.txt).
county state bird equine farms area pop humanden pbr
1 Abbeville, SC 0 0 471 508 26164 51.50 0.0000000
2 Aiken, SC 14 6 729 1073 142557 132.86 0.0000982
3 Allendale, SC 2 0 114 408 11226 27.51 0.0001782
4 Anderson, SC 9 1 1271 718 165719 230.81 0.0000543
5 Bamberg, SC 1 2 254 393 16674 42.43 0.0000600
6 Barnwell, SC 9 1 325 548 23472 42.83 0.0003834
per
1 0.0000000
2 0.0082305
3 0.0000000
4 0.0007868
5 0.0078740
6 0.0030769
Vamos a considerar un primer modelo con la variable densidad humana como la única predictora de la tasa
promedio de equinos con el virus. Note que definimos el logaritmo del número de granjas como el offset
para modelar una tasa.
# Equine vs. PBR
ggplot(westnilesc, aes(x = humanden, y = equine)) + geom_point()

# # Equine Cases = Human Density with log(farms) as offset


westnilesc$log.farms = log(westnilesc$farms)
# Model without PBR
wn.fit1 = glm(equine ~ humanden, family = poisson, data = westnilesc, offset = log.farms)
summary(wn.fit1)

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

100 200 300 400 500


humanden

Figura 4.3.2: Casos equinos con virus vs. densidad humana

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

(Dispersion parameter for poisson family taken to be 1)

Null deviance: 109.32 on 45 degrees of freedom


Residual deviance: 109.32 on 44 degrees of freedom
AIC: 165.85

Number of Fisher Scoring iterations: 6


# X^2 / df
chisq = sum(((westnilesc$equine - fitted(wn.fit1))/sqrt(fitted(wn.fit1)))^2)

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

residuals(wn.fit1, type = "pearson")

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

0e+00 1e−04 2e−04 3e−04 4e−04


pbr

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

(Dispersion parameter for poisson family taken to be 1)

Null deviance: 109.324 on 45 degrees of freedom

75
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 4. MODELOS LINEALES GENERALIZADOS

Residual deviance: 62.007 on 42 degrees of freedom


AIC: 122.54

Number of Fisher Scoring iterations: 6


# X^2 / df
chisq = sum(((westnilesc$equine - fitted(wn.fit2))/sqrt(fitted(wn.fit2)))^2)
chisq/42
[1] 1.716101
# G^2 / df
dev = sum(residuals(wn.fit2, type = "deviance")^2)
dev/42
[1] 1.476353
Para este modelo los diagnósticos indican valores mayores a 1.5, lo cual podría ser un indicio de sobredis-
persión leve. Revisemos los residuales de este modelo.

76
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 4. MODELOS LINEALES GENERALIZADOS
residuals(wn.fit2, type = "deviance")

residuals(wn.fit2, type = "pearson")

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)

# Observed vs. predicted counts


plot(westnilesc$equine, 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

Figura 4.3.4: Conteos observados vs. predicciones

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

(Intercept) -6.982e+00 4.800e-01 -14.546 <2e-16 ***


pbr 5.330e+03 2.090e+03 2.550 0.0145 *
humanden 5.903e-04 2.191e-03 0.269 0.7890
pbr:humanden 2.600e+01 1.622e+01 1.603 0.1164
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(Dispersion parameter for quasipoisson family taken to be 1.716101)

Null deviance: 109.324 on 45 degrees of freedom


Residual deviance: 62.007 on 42 degrees of freedom
AIC: NA

Number of Fisher Scoring iterations: 6

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.

Regresión Binomial Negativa (BN)

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

(Dispersion parameter for Negative Binomial(2.3909) family taken to be 1)

Null deviance: 72.300 on 45 degrees of freedom


Residual deviance: 45.246 on 42 degrees of freedom
AIC: 121.82

Number of Fisher Scoring iterations: 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

Model 1: equine ~ pbr * humanden + offset(log.farms)


Model 2: equine ~ pbr * humanden + offset(log.farms)
Resid. Df Resid. Dev Df Deviance
1 42 62.007
2 42 45.246 0 16.761
# LRT test Poisson vs. Negative Binomial
lrt = -2 * (logLik(wn.fit2) - logLik(wn.fit4))
lrt
'log Lik.' 2.720582 (df=4)
# p-value is 0.5*p-value of the test with a df=1 due to the fact that the
# Poisson is a boundary case of the NB distribution (gamma=0)
0.5 * pchisq(lrt, df = 1, lower.tail = F) # p-value
'log Lik.' 0.04953095 (df=4)

81
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 4. MODELOS LINEALES GENERALIZADOS

# Resultado similar usando función pdTest() de la librería pscl


library(pscl)
odTest(wn.fit4)
Likelihood ratio test of H0: Poisson, as restricted NB model:
n.b., the distribution of the test-statistic under H0 is non-standard
e.g., see help(odTest) for details/references

Critical value of test statistic at the alpha= 0.05 level: 2.7055


Chi-Square Test Statistic = 2.7206 p-value = 0.04953

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.

Exceso de Ceros en los Datos

En muchas situaciones la proporción de ceros en los conteos es considerable. La presencia de demasiados


ceros suele ocasionar sobredispersión que en muchas circunstancias se pueden modelar con la regresión BN.
Sin embargo, si hay demasiados ceros en ocasiones es mejor considerar un modelo que tome en cuenta el
proceso o los procesos que generan los ceros tales como el ZIP model o Zero-inflated Poisson model (los
ceros pueden resultar de dos procesos separados), o un modelo de Hurdle (los ceros resultan de un único
proceso). Tanto SAS como R permite el ajuste de este tipo de modelos. El uso de un modelo en particular
dependerá de las características del problema investigado. En cualquier caso, los modelos se definen usando
los MLG que se darán en este curso.

4.4. Regresión para Datos Binarios

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.

El interés en un MLG es explicar la media de Yi en función de las covariables. Es decir,


logit(pi ) = xti β,

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

Supongamos que tiene un modelo de regresión logística. Escriba pi en función de xti β. B

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

Supongamos que la variable repuesta es la variable indicador si la persona muestra mejoría


en un ensayo clínico y que se usa el siguiente modelo de regressión logística para explicar la
B
probabilidad de mejoría en cada tratamiento: logit(pi ) = β0 + β1 fi , donde fi es una variable
indicadora para un grupo experimental (fi = 1) y un grupo control fi = 0. Interprete los β’s.

Más sobre interpretación de los coeficientes

Supongamos que la variable repuesta es la variable indicador si la persona muestra mejoría


en un ensayo clínico y que se usa el siguiente modelo de regressión logística para explicar la
B
probabilidad de mejoría en cada tratamiento: logit(pi ) = β0 + β1 fi + β2 ti + β3 ti ∗ fi , donde ti
representa el número de semanas de cada observación i. Interprete los β’s.

Regresión para Datos Binarios No Agrupados

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

Brix y temperatura (Fuente: http://www.stat.ufl.edu/~winner/datasets.html).


'data.frame': 74 obs. of 5 variables:
$ V1: num 5.5 5.5 5.5 5.5 5.5 5.5 5.5 5.5 3.5 3.5 ...
$ V2: int 70 70 50 50 30 30 0 0 70 70 ...
$ V3: int 50 43 43 35 35 25 50 25 43 35 ...
$ V4: int 11 19 13 15 13 11 19 15 15 11 ...
$ V5: int 0 0 1 1 1 0 0 1 0 0 ...
pH Nisin Temp Brix Growth
1 5.5 70 50 11 0
2 5.5 70 43 19 0
3 5.5 50 43 13 1
4 5.5 50 35 15 1
5 5.5 30 35 13 1
6 5.5 30 25 11 0

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

(Dispersion parameter for binomial family taken to be 1)

Null deviance: 95.945 on 73 degrees of freedom


Residual deviance: 52.331 on 69 degrees of freedom
AIC: 62.331

Number of Fisher Scoring iterations: 6

La salida de este modelo amerita los siguientes comentarios:


Cuando los datos no estan agrupados como en el ejemplo anterior, los estadísticos X 2 y G2 no
se deben usar para determinar bondad de ajuste (la distrución asintótica de los estadísticos no
es aproximadamente χ2 ). Sin embargo, la diferencia de devianzas se pueden usar para comparar
modelos anidados. Una alternativa para determinar bondad de ajuste se conoce como la prueba de

84
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 4. MODELOS LINEALES GENERALIZADOS

Hosmer-Lemeshow. Esta prueba será calculada más adelante.


Todas las varias son significativas para explicar la probabiliad de crecimiento del microbio.

Bondad de ajuste usando la Prueba de Hosmer-Lemeshow

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

Regresión para Datos Binarios Agrupados

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 )

En el caso de la distribución binomial, la respuesta se puede considerar como la proporción de éxitos en


lugar del número de éxitos. Usando la teoría de la familia exponencial uno puede ver que en general la
varianza de la respuesta Yi esta dada por
V ar(Yi ) = ν(µi )φ/wi ,
donde φ es el parámetro de dispersión de la familia exponencial y wi es un peso. Para la proporción binomial
tenemos que
V ar(Yi /ni ) = pi (1 − pi )/ni = µi (1 − µi )/ni = µi (1 − µi )/wi ,
donde ν(µi ) = µi (1 − µi ) y wi = ni es un peso indicando el número de repeticiones. Por tal razón, en la
función glm de R se puede especificar la respuesta como una proporción binomial (número entre 0 y 1) con
pesos wi = ni o como una matriz de dos columnas de éxios y fracasos pero sin especificar los pesos. Las dos
especificaciones del modelo son equivalentes. En SAS se especifica yi /ni como la respuesta e internamente
el procedimiento toma los pesos.

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).

[1] "Farm" "BoarPosTB" "BoarSampledTB"


[4] "DeerPosTB" "DeerSampledTB" "DeerPosCervi"
[7] "DeerSampledCervi" "OpenLand" "ScrubLand"
[10] "PinePlantation" "QuercusPlants" "QuercusTrees"
[13] "WildBoarIndex" "ReedDeerIndex" "EstateSize"
[16] "Fenced"
str(Tbdeer)
'data.frame': 32 obs. of 16 variables:
$ Farm : int 1 2 3 4 5 6 7 8 9 10 ...
$ BoarPosTB : int 4 20 2 8 7 11 7 32 15 3 ...
$ BoarSampledTB : int 14 34 5 13 23 20 21 62 25 3 ...
$ DeerPosTB : int NA 3 0 1 0 2 NA 5 NA 6 ...
$ DeerSampledTB : int NA 13 23 39 6 36 NA 38 NA 31 ...
$ DeerPosCervi : int NA 6 28 39 13 19 NA 8 NA 30 ...
$ DeerSampledCervi: int NA 15 28 45 13 25 NA 19 NA 31 ...
$ OpenLand : num 0.409 0.412 0.182 0.3 0 0.286 0 0.6 0 0 ...
$ ScrubLand : num 0.591 0.059 0.136 0.25 0.571 0.476 0 0.35 0 0.238 ...
$ PinePlantation : num 0 0 0.091 0 0 0 0 0 0.667 0.095 ...
$ QuercusPlants : num 7 14.71 5.32 14.74 9.33 ...
$ QuercusTrees : num 1.619 0.118 4.045 4.2 0.952 ...
$ WildBoarIndex : num 0.095 0.576 0.45 0.1 0 ...
$ ReedDeerIndex : num 0 17.47 19.41 6.32 4.36 ...
$ EstateSize : int 960 1100 2200 1700 4000 19328 3600 3000 2000 9234 ...
$ Fenced : int 0 1 1 1 0 0 0 1 0 1 ...
Tbdeer = na.omit(Tbdeer)
dim(Tbdeer)
[1] 23 16

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

# Response as a binomial proportion with weights


m.deer1 = glm(DeerPosProp ~ OpenLand + ScrubLand + QuercusTrees +
QuercusPlants + ReedDeerIndex + EstateSize + Fenced,
family=binomial, data=Tbdeer, weights=DeerSampledCervi)
summary(m.deer1)

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

(Dispersion parameter for binomial family taken to be 1)

Null deviance: 234.85 on 22 degrees of freedom


Residual deviance: 152.79 on 15 degrees of freedom
AIC: 227.87

Number of Fisher Scoring iterations: 4

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

(Dispersion parameter for binomial family taken to be 1)

Null deviance: 234.85 on 22 degrees of freedom


Residual deviance: 152.79 on 15 degrees of freedom
AIC: 227.87

Number of Fisher Scoring iterations: 4


# X^2 / df
Yi.hat = Tbdeer$DeerSampledCervi*fitted(m.deer2)
pi.hat = fitted(m.deer2)
chisq = sum( (Tbdeer$DeerPosCervi-Yi.hat)^2 / (Tbdeer$DeerSampledCervi*pi.hat*(1-pi.hat) ))
chisq
[1] 151.1408
chisq / 15
[1] 10.07605

89
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 4. MODELOS LINEALES GENERALIZADOS

Sobredispersión en Datos Binomiales

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

(Dispersion parameter for quasibinomial family taken to be 10.07626)

Null deviance: 234.85 on 22 degrees of freedom


Residual deviance: 152.79 on 15 degrees of freedom
AIC: NA

90
Spring 2017 Curso: Modelos Estadísticos Avanzados CAPÍTULO 4. MODELOS LINEALES GENERALIZADOS

y=1 y=0 Total


ŷ=1 a b a+b
ŷ=0 c d c+d
Total a+c b+d n

Number of Fisher Scoring iterations: 4

Regresión Logística y Clasificación

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)

Data: prob in 48 controls (Growth 0) < 26 cases (Growth 1).


Area under the curve: 0.9247

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

1.0 0.8 0.6 0.4 0.2 0.0


Specificity

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

Selección de Modelos en MLG

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

También podría gustarte