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