Ejemplo Regresión Logística
Ejemplo Regresión Logística
Ejemplo Regresión Logística
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
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)
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)
y
i
i
i=1
(1.4)
(*)
(1.5)
b() = log
1
n
d(y) = log
yi
a(y) = y
c() = ni log(1 )
(1.6)
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
2.
Estimaci
on e interpretaci
on del modelo propuesto
(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
vs
H1 : j 6= 0
(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
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
2.1.
2.1.1.
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)
(2.4)
Donde D 2(p1)
Estadstico
gl p.value
1
111.40 5.00
0.00
2.1.2.
Contraste de Wald
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
(2.6)
(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
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.
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)
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
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()
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.
(2.12)
histPresente
tabac
tipoa
alc
edad
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.
3.1.1.
D
ocima de Hosmer-Lemeshow
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
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.
total
Verdaderos positivos
Falsos positivos
Total Positivos
Falsos Positivos
Verdaderos Negativos
Total Negativos
Positivos predichos
Negativos predichos
Total
14
Verdaderos positivos
Total Positivos
(3.4)
Especificidad =
Verdaderos Negativos
Total Negativos
(3.5)
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
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
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
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
4.1.
Detecci
on de valores atpicos
(4.2)
bj
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.
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
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
19
0.75
(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.
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
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)
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
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
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
datasets
methods
base
mfx_1.1
zoo_1.7-12
knitr_1.11
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")
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
28
>
<
>
<
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)
30