Estadística II Tema 5: Regresión logística

Anuncio
Datos simulados
# Numero de observaciones
n = 100
Estadı́stica II
Tema 5: Regresión logı́stica
José R. Berrendero
# Parametros
beta0 = 0
beta1 = 3
#
x
p
y
Departamento de Matemáticas
Universidad Autónoma de Madrid
Genera los datos
= rnorm(n)
= 1/(1+exp(-beta0-beta1*x))
= rbinom(n,1,p)
# Ajusta el modelo
reg = glm(y~x,family=binomial)
summary(reg)
Probabilidades de éxito estimadas
Salida R
1.0
Call:
glm(formula = y ~ x, family = binomial)
●
●●
●●
●●● ●●●
●●●●●
●
●●
● ● ●● ●
● ●●●● ●●●
0.8
Deviance Residuals:
Min
1Q
Median
-1.8340 -0.7598 -0.1568
Max
2.4224
0.4
y
0.6
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -0.1157
0.2585 -0.447
0.655
x
2.7083
0.5854
4.627 3.71e-06 ***
--Signif. codes: 0 ’***’ 0.001 ’**’ 0.01 ’*’ 0.05 ’.’ 0.1 ’ ’ 1
(Dispersion parameter for binomial family taken to be 1)
0.2
0.0
3Q
0.7623
●●
● ●
−2
● ●●●
●●●●●
estimada
teorica
●●
●●
●●
●
●●
●●
●●
●
●● ● ●
●●●
● ●
●● ● ●●
−1
0
x
1
Null deviance: 137.628
Residual deviance: 90.396
AIC: 94.396
on 99
on 98
degrees of freedom
degrees of freedom
Number of Fisher Scoring iterations: 5
Datos de plasma sanguı́neo
El nivel de algunas proteı́nas en el plasma sanguı́neo aumenta si se
dan algunas enfermedades reumáticas o infecciones crónicas como
la tuberculosis
La tasa de sedimentación de eritrocitos (ESR) mide la distancia en
milı́metros en que los glóbulos rojos se sedimentan en sangre no
coagulada hacia el fondo de un tubo de ensayo durante 1 hora
Las sustancias inflamatorias en la sangre hacen que los eritrocitos
se junten causando aglutinaciones que se vuelven más pesadas y
caen más pronto que una célula individual.
Si al aumentar el nivel de proteı́na también se incrementa la ESR,
ésta se puede utilizar para detectar enfermedades
Diagrama de dispersión de los datos
El fichero plasma.txt contiene 32 observaciones con tres
variables:
I
fib: nivel de fibrinógeno en la sangre
I
glob: nivel de globulinas en la sangre
I
ESR: tasa de sedimentación de eritrocitos
( toma los valores: 0, si ESR < 20 mm/h; 1, si ESR > 20
mm/h)
Objetivo: Determinar si existe relación entre la probabilidad de que
la ESR sea mayor de 20 mm/h y el nivel de las dos proteı́nas. Si
no existiera, la ESR no serı́a útil como medio de diagnostico.
Regresión logı́stica simple
●
●
45
●
El fibrinógeno es una proteı́na producida por el hı́gado que ayuda a
detener el sangrado al favorecer la formación de coágulos de
sangre. Las globulinas son otro grupo de proteı́nas.
●
ESR<20
ESR>20
Como variable regresora, vamos a usar sólo el nivel de fibrinógeno.
●
Ajustamos el modelo:
40
●
●
glob
●●
P(ESR > 20) =
●
● ●
●
●
●
●
●
35
●
●
●
1
1 + exp(−β0 − β1 fib)
●
●
●
> reg1 = glm(ESR~fib,family=’binomial’)
> summary(reg1)
●
●
●
●
30
●● ●
●
●
●
●
2.0
2.5
3.0
3.5
fib
4.0
4.5
5.0
Probabilidades estimadas
on 31
on 30
1
1 + exp(−βˆ0 − βˆ1 fib)
1.0
\
P(ESR
> 20) =
●
●
●
●
●
0.6
P(ESR>20)
0.8
●
degrees of freedom
degrees of freedom
0.0
Null deviance: 30.885
Residual deviance: 24.840
AIC: 28.840
Se representan los datos junto con la curva de probabilidades
estimadas:
0.4
Call:
glm(formula = ESR ~ fib, family = "binomial")
Deviance Residuals:
Min
1Q
Median
3Q
Max
-0.9298 -0.5399 -0.4382 -0.3356
2.4794
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -6.8451
2.7703 -2.471
0.0135 *
fib
1.8271
0.9009
2.028
0.0425 *
--(Dispersion parameter for binomial family taken to be 1)
0.2
Salida R
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
0
1
2
●● ●
●●
●
●
3
4
5
6
fib
Number of Fisher Scoring iterations: 5
Dos variables regresoras
Salida R
Call:
glm(formula = ESR ~ fib + glob, family = "binomial")
Ajustamos el modelo con dos variables regresoras, el fibrinógeno y
las globulinas:
P(ESR > 20) =
1
1 + exp(−β0 − β1 fib − β2 glob)
> reg = glm(ESR~fib+glob,family=’binomial’)
> summary(reg)
Deviance Residuals:
Min
1Q
Median
-0.9683 -0.6122 -0.3458
3Q
-0.2116
Max
2.2636
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -12.7921
5.7963 -2.207
0.0273 *
fib
1.9104
0.9710
1.967
0.0491 *
glob
0.1558
0.1195
1.303
0.1925
--Signif. codes: 0 ’***’ 0.001 ’**’ 0.01 ’*’ 0.05 ’.’ 0.1 ’ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 30.885
Residual deviance: 22.971
AIC: 28.971
on 31
on 29
degrees of freedom
degrees of freedom
Number of Fisher Scoring iterations: 5
50
Cálculo de probabilidades estimadas
45
Para calcular las probabilidades estimadas con este modelo:
●
40
prob = predict(reg,type=’response’)
glob
●
●
●
●●
●●
35
Con el siguiente código representamos cı́rculos cuyos radios son
proporcionales a la probabilidad estimada:
●
●
●●
●
●
30
●
●
●
25
> plot(fib,glob,xlim=c(2,6),ylim=c(25,50),pch=’.’)
> symbols(fib,glob,circles=prob,add=TRUE)
2
3
4
5
6
fib
Clasificación
Intervalos de confianza
> confint(reg1)
2.5 %
97.5 %
(Intercept) -13.6561703 -2.328106
x
0.3389465 3.998860
●
45
●
●
●
Para poder interpretar el resultado en términos de un cociente de
probabilidades (odds ratios):
40
●
●
glob
● ●
●●
●
●
●
●
●
35
●
●
●
> exp(coef(reg1))
(Intercept)
x
0.001064686 6.215715449
> exp(confint(reg1))
Waiting for profiling to be done...
2.5 %
97.5 %
(Intercept) 1.172737e-06 0.09748022
x
1.403468e+00 54.53595368
●
●
●
●
●
●
●
30
●● ●
●
●
●
●
2.0
2.5
3.0
3.5
fib
4.0
4.5
5.0
El IC para β1 es muy amplio, debido a que tenemos poca
información en el caso ESR = 1
Tabla ANOVA
> anova(reg1,reg,test=’Chisq’)
Analysis of Deviance Table
Model 1:
Model 2:
Resid.
1
2
ESR ~ fib
ESR ~ fib + glob
Df Resid. Dev Df Deviance P(>|Chi|)
30
24.8404
29
22.9711 1
1.8692
0.1716
Descargar