Sunteți pe pagina 1din 30

Regresi

on logstica: Cu
ales son los
determinantes de un infarto al coraz
on?
Hector Garrido Henrquez*
Profesor: Luis Firinguetti Limone
Modelos Lineales
Magster en Matematica Mencion Estadstica
Universidad del Bo-Bo
4 de enero de 2016

Resumen
En este informe se analizan los determinantes de un infarto al corazon

Indice
1. Introducci
on
1.1. El modelo de regresion logstica . . . . . . . . . . . . . . . . . . . . . . . . .
1.2. Descripcion de los datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2. Estimaci
on e interpretaci
on del modelo
2.1. Contrastes de significancia global . . .
2.1.1. Deviance o desviacion . . . . .
2.1.2. Contraste de Wald . . . . . . .
2.2. Odds Ratios . . . . . . . . . . . . . . .
2.3. Efectos marginales . . . . . . . . . . .
2.3.1. Efectos marginales promedio . .

propuesto
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .

3
3
5

.
.
.
.
.
.

5
8
8
8
9
10
11

.
.
.
.
.

13
13
13
14
14
14

4. Diagn
ostico del modelo
4.1. Deteccion de valores atpicos . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2. Normalidad de los residuos . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3. Especificacion del modelo . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17
17
20
22

5. Conclusiones

24

6. Referencias

24

7. Anexo
7.1. Codigo R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

24
24

3. Bondad de ajuste
3.1. Bondad de ajuste: Enfoque parametrico . .
3.1.1. Docima de Hosmer-Lemeshow . . .
3.1.2. R2 . . . . . . . . . . . . . . . . . .
3.2. Bondad de ajuste: Enfoque no parametrico
3.2.1. Curva ROC . . . . . . . . . . . . .

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.

1.

Introducci
on

Si bien el modelo lineal general (lease OLS) es un modelo muy u


til en un sinfn de
disciplinas, muchos fenomenos interesantes de la vida real no pueden representarse a traves
de variables cuantitativas como dicho metodo demanda. Es com
un observar variables medidas
en escalas ordinales o nominales, sobre todo en ciencias sociales y medicas.
Para salvar esta dificultad surge una amplia gama de modelos llamados modelos lineales
generalizados en que todos ellos comparten la caracterstica de pertenecer a la denominada
famila exponencial, una familia de distribuciones con propiedades estadsticas comunes. Lo
que amplia significativamente el abanico de posibilidades para modelar.
Dentro de esta familia existen varios modelos adecuados, bajo diferentes circunstancias,
para analizar variables dependiente de tipo binario, aunque por lejos, el mas famoso de todos
es el modelo logit, aunque el modelo probit le sigue bastante de cerca.
En este trabajo se intentara modelar la probabilidad de padecer un infarto al corazon a
partir de un set de variables asociadas a historial medico, caractersticas y habitos saludables
para una muestra de 462 individuos. Se estima un modelo de regresion logstica para a continuacion realizar un analisis exhaustivo con respecto a su estimacion, contrastes de hipotesis
y violacion de supuestos

1.1.

El modelo de regresi
on logstica

Sea xi un vector fila en el que se encuentra un patron de covariables para cada unidad
muestrla i y un vector que contiene los parametros a estimar. Un modelo logit se caracteriza
por tener una funcion de enlace de la forma1 :

g(i ) = logit(i ) = log

i
1 i

= x0i

(1.1)

Esta funcion de enlace tiene la ventaja ademas de que permite obtener una interpretacion
directa de los coeficientes del modelo siempre y cuando se aplique antilogaritmo a la expresion
anterior.
i
= exp(xi )
1 i

(1.2)

As tambien, las probabilidades de observar un exito y un fracaso pueden obtenerse facil1

log se refiere al logaritmo natural

mente
i =

exp(xi )
1 + exp(xi )

1 i =

1
1 + exp(xi )

Para estimar los parametros y por tanto las i es necesario utilizar el siguiente modelo.
Sean y1 , ..., yn realizaciones de una variable aleatoria Yi binomial(ni , i ), donde ni corresponde al n
umero de unidades muestrales con un mismo patron de covariables. La funcion de
masa de probabilidad de cada variable aleatoria Yi es entonces
 
ni yi
P (Yi = yi ) =
(1 i )ni yi ,
yi i

yi = 0, 1, ..., ni

(1.3)

Si denotamos a como un vector con las probabilidades de cada individuo de la muestra y


y un vector de realizaciones de las variables aleatorias Yi , ..., Yn . Podemos escribir la funcion
de verosimilitud como
n  
Y
ni yi
L(, y) = L(1 , 2 , ..., n ; y1 , ..., yn ) =
i (1 i )ni yi
yi
i=1

n
Y ni   i yi
(1 i )ni
=
1

y
i
i
i=1

(1.4)
(*)

Si a la expresion (*) se le aplica logaritmo natural a ambos lados tendremos




 
n 
X
i
ni
l(, y) =
yi log
+ ni log(1 i ) + log
1 i
yi
i=1

(1.5)

Si nos centramos en el argumento de la suma anterior, es facil identificar a dicha funcion


como parte de la familia exponencial pues


b() = log
1
 
n
d(y) = log
yi


a(y) = y
c() = ni log(1 )

Tiene la forma canonica de la familia exponencial si recordamos que esta es


L(, y) = exp {a(y)b() + c() + d(y)}

(1.6)

Ademas, si consideramos las expresiones obtenidas al comienzo, finalmente la funcion de


4

Cuadro 1: Descripcion de variables


Variable

Descripcion
Es una variable dicotomica que toma
el valor 1 si el individuo tiene
antecedentes familiares de infarto y
cero de lo contrario
Tabaco acumulado en los pulmones
medido en kilogramos
Es una escala que mide la propension
del individuo a sufrir estres, va de
menor a mayor
Consumo corriente de alcohol
Edad del individuo

inf

tabac
tipoa
alc
edad
log-verosimilitud es
l(, y) =

n 
X

yi (x0i )

log(1 +

exp(x0i )

i=1

 
ni
+ log
yi

(1.7)

De esta manera, para estimar los parametros se utilizan indistintamente los procedimientos
inherentes a la familia exponencial.

1.2.

Descripci
on de los datos

Las variables del modelo se describen a continuacion

2.

Estimaci
on e interpretaci
on del modelo propuesto

Para realizar inferencias sobre la significancia individual de cada coeficiente estimado en


un modelo de regresion logstica, es necesario recurrir al teorema central del limite a traves del
cual puede afirmarse que en la medida en que una variable aleatoria se acerca a su verdadero
valor poblacional y se escala esta diferencia por el error estandar de dicho estadstico este
converge en distribucion a una normal estandar
j j d
N (0, 1).
ee(j ) n

(2.1)

Es necesario, ser cautos al utilizar este resultado, pues su validez es asintotica. Esto significa
que en modelos lineales generalizados, es necesario contar con muestras grandes para asegurar
5

el cumplimiento de este supuesto.


Las hipotesis en que estamos interesados son las siguientes
H0 : j = 0

vs

H1 : j 6= 0

De esta forma, el contraste consiste en comparar el estadstico z calculado vs el valor cuantil


de la distribucion normal estandar (valor crtico) asociado a un nivel de significacion fijado
por el investigador2 , o en otras palabas, la maxima probabilidad de cometer error de tipo I3
que se esta dispuesto a tolerar.
La regla entonces para decidir si un estadstico j pertenece a la region de rechazo R es
la siguiente:



j
> z1/2

ee(j )

(2.2)

Con base en los resultados del modelo provistos en el cuadro 2 puede afirmarse que
con un nivel de significancia de 5 %, el valor crtico para el estadstico z es asociado es de
aproximadamente 1.9. Por lo tanto
hist: Se rechaza la hipotesis H0 : 1 = 0 pues el estadstico z calculado (4.271) es mayor
al valor crtico asociado a = 5 %. Ademas, el valor p, P (z R|H0 es cierta) = 0,00002
es una probabilidad de equivocarse al rechazar mas peque
na que el nivel de significancia
tabac: Se rechaza la hipotesis H0 : 2 = 0 pues el estadstico z calculado (3.148) es
mayor al valor crtico asociado a = 5 %. Ademas, el valor p, P (z R|H0 es cierta) =
0,002 es una probabilidad de equivocarse al rechazar mas peque
na que el nivel de
significancia
tipoa: Se rechaza la hipotesis H0 : 3 = 0 pues el estadstico z calculado (3.190) es
mayor al valor crtico asociado a = 5 %. Ademas, el valor p, P (z R|H0 es cierta) =
0,002 es una probabilidad de equivocarse al rechazar mas peque
na que el nivel de
significancia
alc: No puede rechazarse la hipotesis nula H0 : 4 = 0 pues el estadstico z calculado (-0.10) es menor al valor crtico asociado. De esta forma el valor p, P (z
R|H0 es cierta) = 0,919 > 0,05 =
2
3

usualmente 10 %, 5 % y 1 %
La probabilidad de rechazar la hip
otesis nula dado que esta es verdadera

Cuadro 2: Resultados de la regresion


Infarto al miocardio
Infarto
Historia familiar

0.954
t = 4.271
(0.223)
p = 0.00002

Tabaco Acumulado

0.084
t = 3.148
(0.027)
p = 0.002

Comportamiento tipo A

0.038
t = 3.190
(0.012)
p = 0.002
0.0004
t = 0.102
(0.004)
p = 0.919

Alcohol

Edad

0.055
t = 5.522
(0.010)
p = 0.00000
5.932
t = 6.714
(0.884)
p = 0.000

Constant

Observations
Log Likelihood
Akaike Inf. Crit.
Note:

462
242.352
496.704

p<0.1; p<0.05; p<0.01


Errores estandar entre parentesis

edad:Se rechaza la hipotesis H0 : 5 = 0 pues el estadstico z calculado (5.522) es mayor


al valor crtico asociado a = 5 %. Ademas, el valor p, P (z R|H0 es cierta) = 0,00000
es una probabilidad de equivocarse al rechazar mas peque
na que el nivel de significancia

2.1.
2.1.1.

Contrastes de significancia global


Deviance o desviaci
on

En este caso la log verosimilitud del modelo propuesto se compara con la log verosimilitud
de un modelo minimal, en que todos los i son iguales, es decir
Pn
yi

= Pni=1
i=1 ni

(2.3)

El estadstico de contraste puede escribirse como


y)] l(;
y)]
D = 2[l(;

(2.4)

Donde D 2(p1)
Estadstico
gl p.value
1
111.40 5.00
0.00

2.1.2.

Contraste de Wald

La idea que subyace al contraste de Wald es bastante sencilla, construiremos un estadstico


dado por
W = l I l
(2.5)
Donde l es un subconjunto de coeficientes estimados I es la matriz de informacion de Fisher
para dicho subconjunto. Este estadstico sigue una distribucion 2(l) donde l es el n
umero de
parametros a docimar. En este caso incluimos todos los parametros del modelo a excepcion
del intercepto, de manera que el contraste es
H0 : 1 = ... = p = 0

vs

H1 : j 6= 0

Si podemos rechazar la hipotesis nula, esto indica evidencia estadstica para afirmar que los
parametros utilizados son importantes para explicar el fenomeno en cuestion
8

Estadstico
1
77.93

2.2.

gl p.value
5.00
0.00

Odds Ratios

Los coeficientes obtenidos al realizar la regresion no son directamente interpretables.


Sin embargo, una manera de darles significado a estos es a traves de los odds ratios4 . Los
que pueden calcularse de la siguiente forma: Sea xk+1 una variable explicativa de caracter
dicotomico, de manera que
i
= exp(x0i ) = exp(1 + 2 x1 + ... + k )
1 i

(2.6)

Sea la razon entre exitos y fracasos para el individuo i y sea


i0
= exp(x0i0 ) = exp(1 + 2 x1 + ... + k1 xk )
1 i 0
la razon entre exitos y fracasos para el individuo i0 . Es decir, la u
nica diferencia entre ambos
individuos es la ausencia de la variable xk+1 para el individuo i0 . Una medida de riesgo
relativo, entre ambos individuos y sus razones de exito fracaso puede expresarse como
exp(1 + 2 x1 + ... + k )
i /(1 i )
=
= exp(k )
i0 /(1 i0 )
exp(1 + 2 x1 + ... + k1 xk )

(2.7)

Esta expresion puede leerse como, en cuantas veces aumenta el riesgo relativo de un individuo
frente a la presencia o ausencia de determinada caracterstica. Naturalmente, para variable
ordinales, el resultado puede extenderse con facilidad para expresar el paso de un estado a
otro. As tambien para variables continuas, cuya relacion con el log odds sea lineal, puede interpretarse como un aumento del riesgo relativo frente a cambios equiespaciados, usualmente
la unidad.
histPresente
tabac
tipoa
alc
edad

OddsRatio Std. Err.


z P>|z|
2.60
0.58 4.27
0.00
1.09
0.03 3.15
0.00
1.04
0.01 3.19
0.00
1.00
0.00 -0.10
0.92
1.06
0.01 5.52
0.00

Para la estimaci
on de los odds ratios se ha utilizado el paquete mfx de R, sin embargo, dicho paquete
tiene un error, pues incorpora los errores estandar de la regresion en sus resultados en lugar de los errores
est
andar obtenidos por el metodo delta.

Para el modelo en comento, podemos observar lo siguiente:


hist Si una persona presenta un historial familiar de infarto, manteniendo todo lo demas
constantes, su odds de padecer un infarto es 260 % mayor que una que no lo presenta
tabac
Si una persona presenta un kilograma de tabaco acumulado mas que otra, manteniendo
todo lo demas constante, su odds de padecer un infarto es 109 % mayor.5
tipoa
Si una persona presenta un punto mas que otra en la escala de estres, manteniendo
todo lo demas constante, su odds aumenta en 104 %.
alc

Si una persona presenta un consumo de alcohol de un punto mayor que otra, manteniendo todo lo demas constante, su odds es 100 % mayor.

edad
Un a
no de aumento en la edad implica que el odds aumenta 100 %

2.3.

Efectos marginales

Sea

i =

exp(x0i )

1 + exp(x0 )

(2.8)

la probabilidad de que un individuo con un patron de covariables xi tenga determinada


caracterstica de interes (en nuestro caso un infarto al corazon), podemos estar eventualmente
interesados en determinar cuanto aumenta dicha probabilidad cuando vara alguna de las
variables predictoras. Esto en un modelo lineal es trivial pues el cambio marginal en la
variable respuesta es exactamente j 6 Naturalmente en un modelo no lineal, esto no ocurre,
por lo que para interpretar los coeficientes estimados se necesita un poco mas de trabajo. El
efecto marginal o contribucion marginal de un cambio en la variable xj a la probabilidad de
observar la caracterstica de interes sera entonces:
"
#
0

exp(xi )
=
=
i (1
i )j
(2.9)

xij
xij 1 + exp(x0i )
5

En el documento se describi
o a la variable como kg acumulados, quiza hablar de kilogramos sea raro,
pero prefer seguir la pauta en lugar de realizar el ejemplo en relacion a una escala de medida mas peque
na,
quiz
a gramos
6 Y
= j
xij

10

Como se desprende de la ecuacion anterior, los efectos marginales de un modelo lineal, a


diferencia de lo que ocurre en un modelo lineal, incorporan la influencia de todas las demas
covariables sobre la variacion del fenomeno interes. Dicho efecto marginal es u
nico entonces
para cada individuo de acuerdo a su patron de covariables, pero utilizar estos entonces puede
ser poco informativo, un enfoque bastante aceptado en la practica es el uso de los llamados
efectos marginales promedio, que no es mas que calcular la media de los efectos marginales
individuales, es decir
n
1X
AM E =

i (1
i )j .
(2.10)
n i=1
De manera mas general, puede resumirse la expresion anterior en terminos vectoriales. Sea
un vector con las probabilidades predichas para cada individuo, entonces, el vector
0 )
(X
de efectos marginales sera:

0 )
(X
= [1
(X
]

0 )]
0 )[1
= (X
X0

(2.11)

=
Para calcular los errores estandar suele recurrirse al metodo delta, de manera que si g()

es una transformacion del modelo original, su matriz de covarianzas ha de obtenerse


[1
]
a traves del metodo delta, de manera que para ello es primero necesario obtener el termino
0

0
]
+ [1 ] X = [1
]I
+ [1 ] X
[1
0
0
0

[1
)[1
2]

= (1
0

X
Con esto en mente, puede obtenerse la matrix de covarianzas de los efectos marginales como:

)]
2 [I + (1 2)]V[I + (1 2)X
]
V ar(g()) = [(1
obtenida como de costumbre
Donde V es la matriz de covarianzas asintotica de ,

2.3.1.

Efectos marginales promedio

. Para nuestro caso los efectos marginales se presentan a continuacion


11

(2.12)

histPresente
tabac
tipoa
alc
edad

dF/dx Std. Err.


z P>|z|
0.18
0.04 4.27
0.00
0.01
0.00 2.97
0.00
0.01
0.00 3.01
0.00
-0.00
0.00 -0.10
0.92
0.01
0.00 4.76
0.00

Cuadro 3: Efectos marginales promedio

Los resultados del cuadro 3 pueden interpretarse de la siguiente forma7

Historia Familiar
Si un individuo tiene antecedentes de infarto en su familia, su probabilidad de padecer
la enfermedad aumenta en 18 %, en promedio

Tabaco
Por cada kg de tabaco acumulado la probabilidad de sufrir un infarto aumenta 1 %, en
promedio

Comportamiento Tipo A
Por cada punto de aumento en la escala la probabilidad de padecer un infarto aumenta
un 1 %

Alcohol
El alcohol tiene un efecto insignificante sobre la probabilidad de padecer un infarto

Edad
Por cada a
no, la probabilidad de padecer un infarto aumenta un 1 %, en promedio
7

Para la estimaci
on de los efectos marginales (cuadro 3) se ha utilizado el paquete mfx de R, sin embargo,
dicho paquete tiene un error, pues incorpora los errores estandar de la regresion en sus resultados en lugar
de los errores est
andar obtenidos por el metodo delta. Los efectos marginales estimados fueron programados
y se verific
o que los resultados son iguales, no as para el caso de los errores estandar. De todas maneras,
dichos errores est
andar no son presentados en el informe por falta de tiempo

12

3.

Bondad de ajuste

3.1.

Bondad de ajuste: Enfoque param


etrico

3.1.1.

D
ocima de Hosmer-Lemeshow

Si el patron de covariables entre los individuos no es lo suficientemente numeroso (Vease


seccion 4.2) como ocurre cuando hay variables continuas como predictoras. El metodo de
bondad de ajuste de Pearson no es adecuado. Para salvar este problema Hosmer & Lemeshow
desarrollaron un contraste diferente, basado en la expresion
C =

g
X
(O1k nk
k )2
k=1

nk
k (1
k )

(3.1)

Donde
Pck

k =

1
nk

o1k =

Pck

k=1

j=1

mj
j

yj

La idea tras el contraste es sencilla. Se ordenan las probabilidades predichas para toda la
muestra y se dividen en g grupos (generalmente 10). Luego se enumera el n
umero de individuos en cada grupo nk y se calcula el promedio de sus probabilidades predichas
k . Hosmer
& Lemeshow demostraron que dicho estadstico de prueba sigue una distribucion 2g2 inclusive en el caso extremo en que J (el n
umero de patrones e covariables) sea igual a n (el
n
umero de individuos). Una idea intuitiva para formular la hipotesis del contraste es que si
el modelo ajusta a los datos, la diferencia entre las frecuencias observadas y el producto de
las probabilidades predichas por el n
umero de individuos han de ser cercanas, por lo que el
estadstico tendra un valor cercano a cero. As, la hipotesis nula es
H0 : El modelo ajusta bien a los datos

(3.2)

Para nuestro ejemplo y dado el problema presentado frente al uso de dos variables continuas,
podemos observar de todas formas que no se puede rechazar la hipotesis nula dados los valores
en el cuadro 4
13

Cuadro 4: Contraste de bondad de ajuste de Hosmer-Lemeshow

3.1.2.

statistic.Chi-cuadrado

parameter.gl

p.value

9.30003724917886

0.317620882360259

R2

Al igual que en modelos de regresion multiple puede ajustar una medida de bondad de
ajuste de espritu similar a R2 , aunque a diferencia de lo que ocurre en el caso lineal, dicha
medida se construye a partir de las verosimilitud en lugar de la suma de cuadrados. Dicho
estadstico esta dado por la siguiente expresion
R2 =

l(
) l(
)
l(
)

(3.3)

Donde l(
) es la log-verosimilitud del modelo propuesto y l(()) es la log-verosimilitud del
modelo minimal. En este ejercicio el valor de R2 es de 0.187. Valor bastante aceptable para
un modelo no lineal como el logit, pues ha de recordarse que en general estos modelos tienen
valores bajos en relacion a los modelos lineales.

3.2.
3.2.1.

Bondad de ajuste: Enfoque no param


etrico
Curva ROC

Un enfoque bastante popular en ciertas disciplinas es el uso de tablas de clasificacion para


determinar la eficacia discriminativa del modelo. Para la construccion de estas tablas de clasificacion sin embargo es necesario determina un punto de corte o umbral pues recordemos que
la probabilidad predicha es una variable continua. A partir de dicho umbral se considera que
el modelo pronostica un exito. Una tabla de clasificacion tpica tiene la siguiente estructura
Cuadro 5: Tabla de clasificacion
Observados
Predichos
1
0

total

Verdaderos positivos
Falsos positivos
Total Positivos

Falsos Positivos
Verdaderos Negativos
Total Negativos

Positivos predichos
Negativos predichos
Total

14

Como puede observarse los Verdaderos positivos son el n


umero de observaciones que el
modelo clasifica como exitos y que efectivamente lo son, mientras que los verdaderos negativos
son el n
umero de observaciones que el modelo clasifica como fracasos y que efectivamente lo
son. De esta manera pueden derivarse dos metricas: La sensibilidad, la cual no es mas que el
porcentaje de verdaderos positivos sobre el total de exitos y la especificidad que no es mas
que el porcentaje de verdaderos negativos sobre el total de fracasos.
Sensibilidad =

Verdaderos positivos
Total Positivos

(3.4)

Especificidad =

Verdaderos Negativos
Total Negativos

(3.5)

Ciertamente, la eleccion del umbral no es trivial. Aunque en la literatura existen variados


criterios para escoger un umbral adecuado de clasificacion, como el ndice J de Youden el
cual busca maximizar la suma entre sensibilidad y especificidad. La eleccion del umbral mas
com
un es 0.5 lo cual sirve para contrastar la eficacia discriminativa cuando se le compora
con lanzar una moneda.
A pesar de la utilidad del uso de umbrales, estos siempre tendran cierto grado de arbitrariedad una medida mas completa del panorama de clasificacion esta dado por la curva
ROC. La curva ROC o curva de operacion caracterstica, es una grafica que se construye
a partir de todas las posibles combinaciones entre sensibilidad y la tasa de falsos negativos
(1-especificidad). En particular, interesa el area entre dicha curva y una recta de 45 % grados
la cual indica la capacidad de discriminacion que provee lanzar una moneda. A continuacion
se presentan las posibles lecturas de acuerdo a diferentes valores del area bajo la curva ROC
(AUC)

Cuadro 6: Area
bajo la curva ROC
AU C
AU C = 0,5
0,5 < AU C < 0,7
0,7 < AU C < 0,8
0,8 < AU C < 0,9

Interpretacion
Esto sugiere no discriminacion.
Identico a arrojar una moneda
Discriminacion pobre, no mucho mejor
que el caso anterior
Se considera con capacidad aceptable
de discriminacion
Excelente capacidad de discriminacon

15

Tasa de verdaderos positivos (Sensibilidad)

25

20

Frecuencia

15

10

0
0.00

0.25

0.50

0.75

1.00

0.75

0.50

0.783

0.25

0.00
0.00
0.25
0.50
0.75
1.00
Tasa Falsos Positivos (1Especificidad)

1.00

Probabilidades predichas

(a) Infarto==0

(b) Curva ROC

Figura 1: Bondad de ajuste del modelo

1.00
15

Infarto al corazn

Frecuencia

0.75

10

0.50

5
0.25

0.00
0.00

0.25

0.50

0.75

1.00

0.00

Probabilidades predichas

0.25

0.50

Probabilidades predichas

(a) Infarto==1

(b) Curva ROC

Figura 2: Bondad de ajuste del modelo

16

0.75

Las figuras 1 y 2 nos muestran varios graficos que pueden ser utilizados para evaluar
la calidad del modelo ajustado. El panel a) de la figura 1 una muestra un histograma de
probabilidades predichas para un fracaso (en este caso la ausencia de un infarto). Es de
esperar que si la distribucion de la probabilidades predichas esta sesgada en alguna direccion,
dicha direccion indica si el modelo esta en mayor o en menor medida inclinado a detectar
exitos o fracasos. Como puede observarse la distribucion parece ser simetrica, una situacion
similar ocurre con el panel a) de la figura 2, lo cual indica una buena calidad de ajuste.
Por otro lado, en el panel b) de la figura 1 puede observarse la representacion grafica
de la curva ROC junto a su indicador AUC. Puede observarse que la curva es mas bien
pronuncia y que el area bajo la curva es de 0.78, esto indica una capacidad discriminativa
del modelo bastante aceptable, cercana al punto de excelencia. Por u
ltimo, el panel b) de la
figura 2 muestra un diagrama de dispersion entre las probabilidades predichas y la variable
respuesta. Es de esperarse que en un modelo con buena calidad de ajuste se observe una
distribucion mas o menos pareja entre ambas categoras, lo que tambien se cumple para el
modelo en comento.

4.

Diagn
ostico del modelo

En este apartado se utilizaran solo aquellas observaciones con patrones de covariables


u
nicos, xj , como sugiere Hosmer & Lemeshow (2013).

4.1.

Detecci
on de valores atpicos

Para la deteccion de valores atpicos en un modelo de regresion logstica existen varias


aproximaciones de naturaleza similar a las utilizadas en el modelo lineal general.
Por ejemplo, para calcular el leverage o apalancamiento de determinado patron de covariables Pregibon (1981, citado en Hosmer & Lemeshow 2013) sugiere utilizar la siguiente
expresion
H = V1/2 X(X0 VX)1 X0 V1/2
(4.1)
Donde
vj = mj
(xj )[1
(xj )] es el estimador de la varianza del model para cada xj y a su
vez, un elemento de la diagonal de V .
De esta manera, hj muestra el apalancamiento de cada una de las observaciones, lo que
17

corresponde a cada j-esimo elemento de la matriz H.


hj = mj
(xj )[1
(xj )] x0j (X0 VX)1 xj
|
{z
}|
{z
}
vj

(4.2)

bj

Como puede observarse cada elemento es el producto de la varianza multiplicada por un


factor que muestra la distancia entre xj y el centro del espacio de covariables x. Al igual que
P
en el caso de la regresion lineal multiple la suma Jj=1 hj es igual al n
umero de parametros
estimados en el modelo. Por analoga al caso de la regreson lineal, puede considerarse a un
patron de covariables como atpico en la medida en que supere el umbral de 2p/n con p el
n
umero de parametros del modelo.
Otra estadstica muy utilizada en el contexto del analisis de regresion logstica es la llamada distancia de cook. Dicha estadstica esta basada sobre la influencia que tiene determinada
observacion sobre los coeficientes estimados, puede ser calculada como
j =

rj2 hj
(1 hj )2

(4.3)

Donde hj es el apalancamiento y rj denota los residuos de pearson. De acuerdo a Pregibon(1981, citado en Hosmer & Lemeshow (2013)) una observacion puede considerarse como
2
= PJ hj /(1hj ) .
atpica en la medida en que sea mayor que hh
con
hh
j=1
(0,95,1)
n
Otra estadstica muy utilizada para la evaluacion de la presencia de valores atpicos es
aquella que considera el cambio en la devianza en la medida en que se quita cada observacion,
esta puede ser calculada como
d2j
Dj =
(4.4)
1 hj
Donde dj es el residuo deviance. Como se puede desprender de la figura a continuacion a
traves de estos criterios, por separado, pueeden encontrarse numerosos valores atpicos en la
regresion. Sin embargo, Hosmer & Lemeshow (2013) sugiere utilizar la interseccion de cada
uno de estos, es decir, aquellos que simultaneamente son valores atpicos seg
un los criterios
recien descritos.

Siguiendo esta recomendacion se ha determinado que la lista de patrones de covariables


atpicas son las correspondientes a las observaciones: 456,447,412,385,375,372,337,334,285,261,236,231,162,15

18

375

0.08

155

155

372

187
346

261
0.10

334106

337
0.04

398
56
132
251

385

398

115

21
Cook's Distance

0.06

Leverage

372

231
411

156
417 23625
1
285
187
45032111 12
399
180 166150

162

133
456

36
0.05

106
337
132

130

25

334

307

385

326

63

0.02

0.00
0.00

0.25

0.50

0.75

0.00

0.25

Probabilidades predichas

0.50

0.75

Probabilidades predichas

(a) Leverage

(b) Distancias de cook

Figura 3: Valores atpicos

261
6

15

Delta Chi2

Delta Deviance

20

133
456
10

447

130

149
191
36
21
5

0
0.00

0.25

0.50

0.75

0.00

Probabilidades predichas

0.25

0.50

Probabilidades predichas

(a) Delta Deviance

(b) Delta Chi

Figura 4: Valores atpicos

19

0.75

Cuadro 7: Resultados de la regresion sin valores atpicos


Dependent variable:
inf
(1)

(2)

histPresente

0.954
(0.223)

0.988
(0.233)

tabac

0.084
(0.027)

0.079
(0.031)

tipoa

0.038
(0.012)

0.052
(0.013)

alc

0.0004
(0.004)

0.0001
(0.006)

edad

0.055
(0.010)

0.064
(0.011)

Constant

5.932
(0.884)

7.157
(1.000)

Observations
Log Likelihood
Akaike Inf. Crit.

462
242.352
496.704

442
221.910
455.820

Note:

p<0.1;

p<0.05;

p<0.01

Como se puede observar en el cuadro anterior, el quitar aquellas observaciones consideradas como valores atpicos ha significado un cambio en general en el modelo. Como siempre,
este es un mero ejercicio ilustrativo, pues eliminar observaciones influyentes no es una opcion
pues es el modelo quien debe adecuarse a la realidad y no viceversa. Una posible causa de la
presencia de valores atpicos puede ser la omision de alguna variable relevante en el modelo.

4.2.

Normalidad de los residuos

Como se menciono en la seccion 2, la distribucion de los estadsticos de prueba en la


regresion logstica (as como en los demas modelos lineales generalizados) descansa en el
20

teorema central del lmite, por lo que los contrastes utilizados seran validos asintoticamente.
Por contraste, en el modelo lineal general dicho supuesto es clave, en la medida en que en
este descansa la distribucion de los estimadores OLS para poblaciones finitas. A
un as, puede
observarse que para el caso de los residuos de pearson, los cuales estan dados por la expresion
yj nj
j
rj = p
n
j (1 n
j )

(4.5)

Si recordamos que yj es una variable aleatoria binomial, podra esperarse que si el tama
no
nj de sujetos es lo suficientemente grande, dicho residuo siga una distribucion normal, pues
ha de recordarse que siempre y cuando nj la distribucion normal puede aproximar
relativamente bien a la binomial. Puede utilizarse un argumento similar para los residuos
deviance. Ciertamente, si los residuos de pearson no siguen una distribucion normal, esto
invalida el uso del contraste 2 de bondad de ajuste

Para el modelo que se esta estimando en particular, puede notarse que dado a que tiene
dos variables continuas en su estructura de covariables, en las 462 observaciones podemos
encontrar tan solo un patron de variables repetido. De esta manera la aproximacion recien
mencionada no tiene mucho sentido. Este supuesto sera mas factible de evaluar en un modelo
con variables exclusivamente categoricas e inclusive ordinales.

A
un as, se han construido dos histogramas, como puede apreciarse en las figuras a continuacion. En ellas se muestra como tanto la distribucion de los residuos deviance como los
residuos de pearson presentan distribuciones bimodales que por cierto nada tienen que ver
con la distribucion normal.
21

20

20

Frecuencia

Frecuencia

15

10

10

0
2

2.5

Residuos deviance

0.0

2.5

5.0

Residuos de Pearson

(a) Histograma residuos Deviance estandarizados

(b) Residuos deviance vs probabilidades predichas

Figura 5: Normalidad de los residuos

4.3.

Especificaci
on del modelo

Una de las razones que pueden explicar la presencia de valores atpicos, eventualmente,
puede ser el uso de una forma funcional incorrecta o bien la falta de variables importantes en
el modelo. Para intentar dirimir sobre este problema se han estimado 3 modelos alternativos,
con todas las observaciones, en las que incluimos interacciones con la u
nica variable categorica
del modelo, hist, como puede observarse dichas interacciones no resultaron ser significativas.
Ademas, como criterio informal, para comparar modelos anidados suele utilizarse el criterio
de informacion de akaike (AIC)
AIC = 2k 2l(
, y)

(4.6)

De entre un conjunto de modelos anidados (o no anidados, aunque existe controversia al


respecto) ha de escogerse aquel con menor AIC, ya que este penaliza por el n
umero de
parametros estimados. Como puede observarse en el cuadro 8, la inclusion de mas variables
en el modelo a traves de interacciones no mejora la verosimilitud del modelo lo que queda
reflejado en que el modelo original ajusta mejor que los modelos aumentados. De esta forma,
22

la inclusion de interacciones (al menos las aqu propuestas) no son una solucion para una
mejor seleccion del modelo propuesto

Cuadro 8
Dependent variable:
inf
(1)

(2)

(3)

histPresente

0.102
(0.923)

0.096
(0.925)

0.268
(0.945)

tabac

0.087
(0.027)

0.084
(0.033)

0.088
(0.034)

tipoa

0.039
(0.012)

0.039
(0.012)

0.039
(0.012)

alc

0.0002
(0.004)

0.0002
(0.004)

0.006
(0.007)

edad

0.046
(0.012)

0.046
(0.013)

0.046
(0.013)

histPresente:edad

0.022
(0.019)

0.022
(0.020)

0.023
(0.020)

0.006
(0.055)

0.003
(0.056)

histPresente:tabac

histPresente:alc

0.009
(0.009)

Constant

5.558
(0.924)

5.557
(0.924)

5.474
(0.923)

Observations
Log Likelihood
Akaike Inf. Crit.

462
241.646
497.291

462
241.639
499.278

462
241.194
500.388

Note:

p<0.1;

23

p<0.05;

p<0.01

5.

Conclusiones

Del presente informe se desprende que el modelo aqu propuesto en general ajusta bastante bien a los datos. Aunque se observa una presencia importante de valores atpicos. Dichos
valores atpicos pueden ser fruto de una pobre especificacion del modelo a traves de la omision de variables explicativas relevantes. Se sugiere incorporar variables de la base de datos
completa para reajusta el modelo y evaluar nuevamente la performance de este.

6.

Referencias

[1] Alan Agresti y Maria Kateri. Categorical data analysis. Springer, 2011.
[2] Annette J Dobson y Adrian Barnett. An introduction to generalized linear models. CRC
press, 2008.
[3] William H Greene. Econometric analysis. Pearson Education India, 2003.
[4] David W Hosmer Jr, Stanley Lemeshow y Rodney X Sturdivant. Applied logistic regression. Vol. 398. John Wiley & Sons, 2013.

7.

Anexo

7.1.

C
odigo R

A continuacion se presentan los datos de la sesion en R


sessionInfo()
##
##
##
##
##
##
##
##
##
##
##
##

R version 3.2.3 (2015-12-10)


Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 14.04.3 LTS
locale:
[1] LC_CTYPE=es_CL.UTF-8
[3] LC_TIME=es_CL.UTF-8
[5] LC_MONETARY=es_CL.UTF-8
[7] LC_PAPER=es_CL.UTF-8
[9] LC_ADDRESS=C
[11] LC_MEASUREMENT=es_CL.UTF-8

LC_NUMERIC=C
LC_COLLATE=es_CL.UTF-8
LC_MESSAGES=es_CL.UTF-8
LC_NAME=C
LC_TELEPHONE=C
LC_IDENTIFICATION=C

24

##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##

attached base packages:


[1] stats
graphics grDevices utils

datasets

other attached packages:


[1] epiR_0.9-69
survival_2.38-3 ggplot2_2.0.0
[5] betareg_3.0-5
MASS_7.3-45
lmtest_0.9-34
[9] sandwich_2.3-4 xtable_1.8-0
stargazer_5.2
loaded via a namespace
[1] flexmix_2.3-13
[4] magrittr_1.5
[7] colorspace_1.2-6
[10] plyr_1.8.3
[13] nnet_7.3-11
[16] modeltools_0.2-21
[19] labeling_0.3
[22] stats4_3.2.3

methods

base

mfx_1.1
zoo_1.7-12
knitr_1.11

(and not attached):


Rcpp_0.12.2
Formula_1.2-1
splines_3.2.3
munsell_0.4.2
lattice_0.20-33
BiasedUrn_1.07
stringr_1.0.0
tools_3.2.3
grid_3.2.3
gtable_0.1.2
formatR_1.2.1
evaluate_0.8
stringi_1.0-1
scales_0.3.0

A continuacion se presenta el codigo utilizado para la carga de la base de datos en el


programa
rm(list=ls())
inf<-read.csv("/home/hector/Dropbox/Mag
ster/Linear_Models/infarto.csv",
header=TRUE)
names(inf)
inf$inf<-factor(inf$inf)
levels(inf$inf)<-c("Infarto", "otro caso")
sapply(inf, class) #para que me muestre todas clases
#de los objetos contenidos en el data.frame
vars<-data.frame(inf=inf$inf,hist=inf$hist,
tabac=inf$tabac, tipoa=inf$tipoa,
alc=inf$alc, edad=inf$edad)
A continuacion se presenta el codigo utilizado para estimar el modelo inicial en la seccion
2

25

#=============================================================================================
# glm: Es una funci
on del paquete b
asico stats,
# permite estimar todo tipo de modelos lineales generalizados
# stargazer: Es una funci
on del paquete del mismo nombre,
# permite transcribir los resultados en formato latex para una buena presentaci
on
#=============================================================================================
formula<-inf~hist+tabac+tipoa+alc+edad
inf.glm<-glm(formula,family=binomial(link = "logit"),
data=vars)
stargazer(inf.glm,ci=FALSE,title="Resultados de la regresi
on",
dep.var.labels=c("Infarto"), covariate.labels=c("Historia familiar",
"Tabaco Acumulado",
"Comportamiento tipo A",
"Alcohol", "Edad"),
table.placement = "H", dep.var.caption = "Infarto al miocardio",
report="vctsp*", notes.align="l",
notes = c("Errores est
andar entre par
entesis"),
font.size="footnotesize")

A continuacion se presenta el codigo utilizado para los calculos realizados en la seccion


2.1.1

library(xtable)
ji<-with(inf.glm,null.deviance - deviance)
gl<-with(inf.glm,df.null - df.residual)
p<-with(inf.glm, pchisq(null.deviance - deviance, df.null - df.residual, lower.tail = FA
deviance<-cbind(ji,gl,p)
colnames(deviance)<-c("Estad
stico", "gl", "p.value")
xtable(deviance)
A continuacion se presenta el codigo utilizado para la seccion 2.1.2
a1<-c(0,1,0,0,0,0)
a2<-c(0,0,1,0,0,0)
a3<-c(0,0,0,1,0,0)
a4<-c(0,0,0,0,1,0)
a5<-c(0,0,0,0,0,1)
A<-rbind(a1,a2,a3,a4,a5)
26

wald<-t(A%*%coef(inf.glm))%*%solve(A%*%summary(inf.glm)$cov.unscaled%*%t(A))%*%(A%*%coef
test<-pchisq(wald,dim(A)[1], lower.tail =FALSE)
wald.test<-cbind(wald,dim(A)[1],test)
colnames(wald.test)<-c("Estad
stico", "gl", "p.value")
rownames(wald.test)<-c("")
print(xtable(wald.test), table.placement="H")
A continuacion se presenta el codigo utilizado para calcular los efectos marginales de la
seccion ??: Efectos marginales
#===========================================================================
# MargEff: Calcula efectos marginales para modelos logit o probit
# NOTAS:
#
- la funci
on asume que el modelo tiene intercepto
#
- stopifnot: detiene el proceso si no se cumple la condici
on
#
- switch: selecciona una lista de alternativas
#
- outer: Aplica una versi
on del producto de kronecker a los vectores
#===========================================================================
MargEff = function(objBinGLM) {
stopifnot(objBinGLM$family$family == "binomial") # Se detine si el objeto no
#pertenece a la familia binomial
vMargEff = switch(objBinGLM$family$link,
probit = colMeans(outer(dnorm(predict(objBinGLM,
type = "link"))
, coef(objBinGLM))[, -1]),
logit = colMeans(outer(dlogis(predict(objBinGLM,
type = "link")), coef(objBinGLM))[, -1])
) # Este apartado permite calcular el promedio ponderado
#por la funci
on de densidad de las probabilidades predichas ##
return(vMargEff)
}
MargEff(inf.glm)
#============================================================================
# MargeffBoot: Calcula errores est
andar bootstrap para los efectos marginales
# Nota: Requiere instalar el paquete car
#============================================================================
library(car)
MargEffBoot = Boot(object = inf.glm, f = MargEff,
labels = names(coef(inf.glm))[-1], R = 1000)
summary(MargEffBoot)

27

A continuacion se presenta el codigo desarrollado para calcular el contraste de HosmerLemshow de la seccion


#=============================================================
# hosmer.lemeshow.test: Contraste de Hosmer Lemeshow
#=============================================================
hosmer.lemeshow.test<-function (x, y, g = 10)
{
DNAME <- paste(deparse(substitute(x)), deparse(substitute(y)),
sep = ", ")
METHOD <- "Constraste de Bondad de ajuste de Hosmer & Lemeshow"
yhat <- y
y <- x
qq <- unique(quantile(yhat, probs = seq(0, 1, 1/g)))
#Calcula los cuantiles observados para los valores predichos.
cutyhat <- cut(yhat, breaks = qq, include.lowest = TRUE)
#Clasifica cada observaci
on en su respectivo cuantil, de acuerdo
#a la expresi
on anterior.
observed <- xtabs(cbind(y0 = 1 - y, y1 = y) ~ cutyhat)
#Realiza una tabla de contingencia donde agrupa los datos
#observados en los intervalos previos
expected <- xtabs(cbind(yhat0 = 1 - yhat, yhat1 = yhat) ~
cutyhat)
#Realiza una tabla de contingencia donde agrupa los datos
#predichos en los intervalos previos
chisq <- sum((observed - expected)^2/expected)
PVAL = pchisq(chisq, g - 2, lower.tail=FALSE)
PARAMETER <- g - 2
names(chisq) <- "Chi-cuadrado"
names(PARAMETER) <- "gl"
structure(list(statistic = chisq, parameter = PARAMETER,
p.value = PVAL, method = METHOD, data.name = DNAME, observed = observed,
expected = expected), class = "htest")
}
hosmer.lemeshow.test(inf.glm$y, fitted(inf.glm))

A continuacion se presenta el codigo necesario para construir la curva ROC de la seccion


rocdata <- function(grp, pred){
# Produce las coordenadas x e y para la curva ROC
# Argumentos: grp - valores observados
#
pred - valores predichos

28

# Output: List with 2 components:


#
roc = data.frame with x and y co-ordinates of plot
#
stats = data.frame containing: area under ROC curve, p value, upper and lower 95% confidence
grp <- as.factor(grp)
if (length(pred) != length(grp)) {
stop("The number of classifiers must match the number of data points")
}
if (length(levels(grp)) != 2) {
stop("There must only be 2 values for the classifier")
}
cut <- unique(pred)
tp <- sapply(cut, function(x) length(which(pred
fn <- sapply(cut, function(x) length(which(pred
fp <- sapply(cut, function(x) length(which(pred
tn <- sapply(cut, function(x) length(which(pred
tpr <- tp / (tp + fn)
fpr <- fp / (fp + tn)
roc = data.frame(x = fpr, y = tpr)
roc <- roc[order(roc$x, roc$y),]

>
<
>
<

x
x
x
x

&
&
&
&

grp
grp
grp
grp

==
==
==
==

levels(grp)[2])))
levels(grp)[2])))
levels(grp)[1])))
levels(grp)[1])))

i <- 2:nrow(roc)
auc <- (roc$x[i] - roc$x[i - 1]) %*% (roc$y[i] + roc$y[i - 1])/2
pos <- pred[grp == levels(grp)[2]]
neg <- pred[grp == levels(grp)[1]]
q1 <- auc/(2-auc)
q2 <- (2*auc^2)/(1+auc)
se.auc <- sqrt(((auc * (1 - auc))
+ ((length(pos) -1)*(q1 - auc^2)) +
((length(neg) -1)*(q2 - auc^2)))/(length(pos)*length(neg)))
ci.upper <- auc + (se.auc * 0.96)
ci.lower <- auc - (se.auc * 0.96)
se.auc.null <- sqrt((1 + length(pos) + length(neg))/(12*length(pos)*length(neg)))
z <- (auc - 0.5)/se.auc.null
p <- 2*pnorm(-abs(z))
stats <- data.frame (auc = auc,

29

p.value = p,
ci.upper = ci.upper,
ci.lower = ci.lower
)
return (list(roc = roc, stats = stats))
}
coordenadas<-rocdata(vars$inf, fitted(inf.glm))
class(coordenadas$stats$auc)

library(ggplot2)

curva.roc<-ggplot(coordenadas$roc, aes(x = x, y = y)) +


geom_line(aes(colour = "red", size=3)) +
geom_abline (intercept = 0, slope = 1, size=2) +
scale_x_continuous("Tasa Falsos Positivos (1-Especificidad)") +
scale_y_continuous("Tasa de verdaderos positivos (Sensibilidad)")+
theme(legend.position="none")+theme(axis.text=element_text(size=14),
axis.title=element_text(size=14))+
geom_text(x = 0.75, y = 0.25, label = round(coordenadas$stats,3),
parse = TRUE, size=8)
curva.roc

30

S-ar putea să vă placă și