Vender o no vender ese es el problema (II) - Reg...

47
Vender o no vender ese es el problema (II) Reg. logística: Bondad de ajuste, Predicció y Curvas ROC Xavi Babrer Centro de Investigación Operativa Universidad Miguel Hernández de Elche Xavi Babrer (@umh1480 @XaviBarberUMH) Vender o no vender ese es el problema (II) 1 / 47

Transcript of Vender o no vender ese es el problema (II) - Reg...

Page 1: Vender o no vender ese es el problema (II) - Reg ...umh1480.edu.umh.es/wp-content/uploads/sites/44/2013/02/tema_5_2.pdf · Centro de Investigación Operativa Universidad Miguel Hernández

Vender o no vender ese es el problema (II)Reg. logística: Bondad de ajuste, Predicció y Curvas ROC

Xavi Babrer

Centro de Investigación OperativaUniversidad Miguel Hernández de Elche

Xavi Babrer (@umh1480 @XaviBarberUMH) Vender o no vender ese es el problema (II) 1 / 47

Page 2: Vender o no vender ese es el problema (II) - Reg ...umh1480.edu.umh.es/wp-content/uploads/sites/44/2013/02/tema_5_2.pdf · Centro de Investigación Operativa Universidad Miguel Hernández

1 Introducción

2 Bondad de Ajuste

3 Estudiando la capacidad Predictiva

4 Curvas ROC

5 Capacidad Predictiva de los modelos ajustados

6 Ejercicio

Xavi Babrer (@umh1480 @XaviBarberUMH) Vender o no vender ese es el problema (II) 2 / 47

Page 3: Vender o no vender ese es el problema (II) - Reg ...umh1480.edu.umh.es/wp-content/uploads/sites/44/2013/02/tema_5_2.pdf · Centro de Investigación Operativa Universidad Miguel Hernández

Introducción

Introducción

Xavi Babrer (@umh1480 @XaviBarberUMH) Vender o no vender ese es el problema (II) 3 / 47

Page 4: Vender o no vender ese es el problema (II) - Reg ...umh1480.edu.umh.es/wp-content/uploads/sites/44/2013/02/tema_5_2.pdf · Centro de Investigación Operativa Universidad Miguel Hernández

Introducción

El Problema

1 Los “vendedores” frecuentemente observan resultados del tipo Sí/No:

¿Comprarán los consumidores este producto?¿Querrá probar el coche antes de comprar?¿Responderán a campaña publicitaria?.

2 Todas estas clases de variables sólo tienen dos estados: Sí y No.3 Estos datos no los podemos modelizar utilizando la Regresión Lineal como

vimos con anterioridad.

Xavi Babrer (@umh1480 @XaviBarberUMH) Vender o no vender ese es el problema (II) 4 / 47

Page 5: Vender o no vender ese es el problema (II) - Reg ...umh1480.edu.umh.es/wp-content/uploads/sites/44/2013/02/tema_5_2.pdf · Centro de Investigación Operativa Universidad Miguel Hernández

Introducción

Las Bases del Modelo Logístico

El núcleo del modelo logístico es este:

Relacionar la probabilidad de una “outcome” a una función exponencial de unavariable predictora.Modelizar la probabilidad de una “outcome”, debe de cumplir:Estudiar una probabilidad o proporción de que los consumidores compren o no.Los valores de la variable estarán entre [0,1].

Xavi Babrer (@umh1480 @XaviBarberUMH) Vender o no vender ese es el problema (II) 5 / 47

Page 6: Vender o no vender ese es el problema (II) - Reg ...umh1480.edu.umh.es/wp-content/uploads/sites/44/2013/02/tema_5_2.pdf · Centro de Investigación Operativa Universidad Miguel Hernández

Introducción

El ejemploTenemos los datos de una encuesta a los visitantes de Terra Mítica. Los datoscontienen la siguiente información:

Si es o no visitante de fin de semana (weekend),Número de niños que le acompañan (num.cild),La distnacia desde su hogar al parque (ditance).Satisfacción general (overall),satisfacción con las atracciones(rides), juegos (games),tiempos de espera(wait) y limpieza (clean).

sat.df <- read.csv("http://goo.gl/HKnl74")head(sat.df)

## weekend num.child distance rides games wait clean overall## 1 yes 0 114.64826 87 73 60 89 47## 2 yes 2 27.01410 87 78 76 87 65## 3 no 1 63.30098 85 80 70 88 61## 4 yes 0 25.90993 88 72 66 89 37## 5 no 4 54.71831 84 87 74 87 68## 6 no 5 22.67934 81 79 48 79 27

Xavi Babrer (@umh1480 @XaviBarberUMH) Vender o no vender ese es el problema (II) 6 / 47

Page 7: Vender o no vender ese es el problema (II) - Reg ...umh1480.edu.umh.es/wp-content/uploads/sites/44/2013/02/tema_5_2.pdf · Centro de Investigación Operativa Universidad Miguel Hernández

Introducción

El ejemplo (II)

A estos datos anteriores le vamos a añadir otra base de datos referente a la ventade pases de temporada. Los datos consisten en Adquirir sí o no el pase sobre labase de dos factores:

El canal utilizado para recibir la oferta: Correo Electrónico, postal o enpersona en el parque.O si fue alguna promoción de pase de temporada + otras cosas (parkinggratuito, etc.).

pass.df <- read.csv("http://goo.gl/J8MH6A")pass.df$Promo <- factor(pass.df$Promo, levels=c("NoBundle", "Bundle"))summary(pass.df)

## Channel Promo Pass## Email: 633 NoBundle:1482 NoPass :1567## Mail :1328 Bundle :1674 YesPass:1589## Park :1195

Xavi Babrer (@umh1480 @XaviBarberUMH) Vender o no vender ese es el problema (II) 7 / 47

Page 8: Vender o no vender ese es el problema (II) - Reg ...umh1480.edu.umh.es/wp-content/uploads/sites/44/2013/02/tema_5_2.pdf · Centro de Investigación Operativa Universidad Miguel Hernández

Introducción

Ajustando el modelo logísticopass.m1 <- glm(Pass ~ Promo, data=pass.df, family=binomial)summary(pass.m1)

#### Call:## glm(formula = Pass ~ Promo, family = binomial, data = pass.df)#### Deviance Residuals:## Min 1Q Median 3Q Max## -1.262 -1.097 1.095 1.095 1.260#### Coefficients:## Estimate Std. Error z value Pr(>|z|)## (Intercept) -0.19222 0.05219 -3.683 0.000231 ***## PromoBundle 0.38879 0.07167 5.425 5.81e-08 ***## ---## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1#### (Dispersion parameter for binomial family taken to be 1)#### Null deviance: 4375.0 on 3155 degrees of freedom## Residual deviance: 4345.4 on 3154 degrees of freedom## AIC: 4349.4#### Number of Fisher Scoring iterations: 3Xavi Babrer (@umh1480 @XaviBarberUMH) Vender o no vender ese es el problema (II) 8 / 47

Page 9: Vender o no vender ese es el problema (II) - Reg ...umh1480.edu.umh.es/wp-content/uploads/sites/44/2013/02/tema_5_2.pdf · Centro de Investigación Operativa Universidad Miguel Hernández

Introducción

Ampliando el modelo

pass.m2 <- glm(Pass ~ Promo + Channel,data=pass.df, family=binomial)

stargazer(pass.m1,pass.m2,type = "latex", apply.coef=exp,ci =TRUE, report = "vcs*", header=FALSE)

Xavi Babrer (@umh1480 @XaviBarberUMH) Vender o no vender ese es el problema (II) 9 / 47

Page 10: Vender o no vender ese es el problema (II) - Reg ...umh1480.edu.umh.es/wp-content/uploads/sites/44/2013/02/tema_5_2.pdf · Centro de Investigación Operativa Universidad Miguel Hernández

Introducción

Table 1:

Dependent variable:Pass

(1) (2)PromoBundle 1.475 0.571

(1.335, 1.616)∗∗∗ (0.394, 0.748)∗∗∗

ChannelMail 8.813(8.525, 9.100)∗∗∗

ChannelPark 41.337(41.024, 41.650)∗∗∗

Constant 0.825 0.125(0.723, 0.927)∗∗∗ (−0.133, 0.383)

Observations 3,156 3,156Log Likelihood −2,172.713 −1,745.104Akaike Inf. Crit. 4,349.425 3,498.209

Note: ∗p<0.1; ∗∗p<0.05; ∗∗∗p<0.01

Xavi Babrer (@umh1480 @XaviBarberUMH) Vender o no vender ese es el problema (II) 10 / 47

Page 11: Vender o no vender ese es el problema (II) - Reg ...umh1480.edu.umh.es/wp-content/uploads/sites/44/2013/02/tema_5_2.pdf · Centro de Investigación Operativa Universidad Miguel Hernández

Introducción

Cambiando la categoría de referencia

Utilizaremos el comando relevel():

pass.df$Channel2<-relevel(pass.df$Channel, ref="Mail")pass.m2.b <- glm(Pass ~ Promo + Channel2,

data=pass.df, family=binomial)stargazer(pass.m1,pass.m2,pass.m2.b,type = "latex",

apply.coef=exp,ci =TRUE,report = "vcs*", header=FALSE)

Xavi Babrer (@umh1480 @XaviBarberUMH) Vender o no vender ese es el problema (II) 11 / 47

Page 12: Vender o no vender ese es el problema (II) - Reg ...umh1480.edu.umh.es/wp-content/uploads/sites/44/2013/02/tema_5_2.pdf · Centro de Investigación Operativa Universidad Miguel Hernández

Introducción

Table 2:

Dependent variable:Pass

(1) (2)PromoBundle 1.475 0.571

(1.335, 1.616)∗∗∗ (0.394, 0.748)∗∗∗

Channel2Email 0.113(−0.174, 0.401)

Channel2Park 4.691(4.510, 4.872)∗∗∗

Constant 0.825 1.102(0.723, 0.927)∗∗∗ (0.961, 1.244)∗∗∗

Observations 3,156 3,156Log Likelihood −2,172.713 −1,745.104Akaike Inf. Crit. 4,349.425 3,498.209

Note: ∗p<0.1; ∗∗p<0.05; ∗∗∗p<0.01

Xavi Babrer (@umh1480 @XaviBarberUMH) Vender o no vender ese es el problema (II) 12 / 47

Page 13: Vender o no vender ese es el problema (II) - Reg ...umh1480.edu.umh.es/wp-content/uploads/sites/44/2013/02/tema_5_2.pdf · Centro de Investigación Operativa Universidad Miguel Hernández

Bondad de Ajuste

Bondad de Ajuste

Xavi Babrer (@umh1480 @XaviBarberUMH) Vender o no vender ese es el problema (II) 13 / 47

Page 14: Vender o no vender ese es el problema (II) - Reg ...umh1480.edu.umh.es/wp-content/uploads/sites/44/2013/02/tema_5_2.pdf · Centro de Investigación Operativa Universidad Miguel Hernández

Bondad de Ajuste

Test Chi-Squared

Vamos a ver un test para poder analizar si incorporar una variable al modelo es o nosignificativa. Una variable sea significativa en alguna de sus categorías, pero lapregunta es: ¿Es la variable en conjunto significativa?

anova(pass.m1, pass.m2, test ="Chisq")

## Analysis of Deviance Table#### Model 1: Pass ~ Promo## Model 2: Pass ~ Promo + Channel## Resid. Df Resid. Dev Df Deviance Pr(>Chi)## 1 3154 4345.4## 2 3152 3490.2 2 855.22 < 2.2e-16 ***## ---## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Xavi Babrer (@umh1480 @XaviBarberUMH) Vender o no vender ese es el problema (II) 14 / 47

Page 15: Vender o no vender ese es el problema (II) - Reg ...umh1480.edu.umh.es/wp-content/uploads/sites/44/2013/02/tema_5_2.pdf · Centro de Investigación Operativa Universidad Miguel Hernández

Bondad de Ajuste

library(lmtest)lrtest(pass.m1, pass.m2)

## Likelihood ratio test#### Model 1: Pass ~ Promo## Model 2: Pass ~ Promo + Channel## #Df LogLik Df Chisq Pr(>Chisq)## 1 2 -2172.7## 2 4 -1745.1 2 855.22 < 2.2e-16 ***## ---## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Xavi Babrer (@umh1480 @XaviBarberUMH) Vender o no vender ese es el problema (II) 15 / 47

Page 16: Vender o no vender ese es el problema (II) - Reg ...umh1480.edu.umh.es/wp-content/uploads/sites/44/2013/02/tema_5_2.pdf · Centro de Investigación Operativa Universidad Miguel Hernández

Bondad de Ajuste

Pseudo Rˆ2

En la Regresión Logística no existe un valor que nos indique la “variabilidadexplicada” como en los modelos lineales. Sin embargo, existe un valor llamadoMcFadden Pseudo-R2 la cual se define como 1 − [ln(LM)/ln(L0)] donde ln(LM) isthe log-likelihood para el modelo ajustado y por otro lado ln(L0) es la log-likelihoodpara el modelo nulo (solo el intercept). El rango de esta medida va de 0 a 1, cuandomás cercano a 0 este el valor peor es el ajuste y peor es su capacidad predictiva.

library(pscl)pR2(pass.m2)

Xavi Babrer (@umh1480 @XaviBarberUMH) Vender o no vender ese es el problema (II) 16 / 47

Page 17: Vender o no vender ese es el problema (II) - Reg ...umh1480.edu.umh.es/wp-content/uploads/sites/44/2013/02/tema_5_2.pdf · Centro de Investigación Operativa Universidad Miguel Hernández

Bondad de Ajuste

llh -1745.1043921llhNull -2187.4958219G2 884.7828596McFadden 0.2022365r2ML 0.2444803r2CU 0.3259790

llh: The log-likelihood from the fitted model.llhNull: The log-likelihood from the intercept-only restricted model.G2: Minus two times the difference in the log-likelihoods.McFadden:McFadden’s pseudo r-squared.r2ML: Maximum likelihood pseudo r-squared.r2CU: Cragg and Uhler’s pseudo r-squared.Long, J. Scott. 1997. Regression Models for Categorical and Limited DependentVariables. Sage. pp104-106.

Xavi Babrer (@umh1480 @XaviBarberUMH) Vender o no vender ese es el problema (II) 17 / 47

Page 18: Vender o no vender ese es el problema (II) - Reg ...umh1480.edu.umh.es/wp-content/uploads/sites/44/2013/02/tema_5_2.pdf · Centro de Investigación Operativa Universidad Miguel Hernández

Bondad de Ajuste

Hosmer-Lemeshow Test

Otra aproximación para determinar la bondad del ajuste es a través delestadístico de Homer-Lemeshow, el cual se calcula dividiendo las observacionesen dos grupos basadas en valores similares de sus predicciones (probabilidades).

Éste examina que las proporciones de los eventos mediante una χ2:Pequeños valores con grandes p-valores indican un buen ajuste de losdatos,mientras que valores grandes y p-valores< 0.05 indican un ajuste pobre.

Este test está recomendado para modelos con variables continuas y categóricas.

Xavi Babrer (@umh1480 @XaviBarberUMH) Vender o no vender ese es el problema (II) 18 / 47

Page 19: Vender o no vender ese es el problema (II) - Reg ...umh1480.edu.umh.es/wp-content/uploads/sites/44/2013/02/tema_5_2.pdf · Centro de Investigación Operativa Universidad Miguel Hernández

Bondad de Ajuste

library(MKmisc)HLgof.test(fit = fitted(pass.m2), obs = pass.df$Pass)#library(ResourceSelection)#hoslem.test(pass.df$Pass, fitted(pass.m2))

#### Hosmer-Lemeshow H statistic#### data: fitted(pass.m2) and pass.df$Pass## X-squared = 3156, df = 8, p-value < 2.2e-16

Tanto una opción como la otra, parece que nos indican poco “bondad de ajuste”.Es decir, no es el mejor modelo para explicar la venta del pase.

Xavi Babrer (@umh1480 @XaviBarberUMH) Vender o no vender ese es el problema (II) 19 / 47

Page 20: Vender o no vender ese es el problema (II) - Reg ...umh1480.edu.umh.es/wp-content/uploads/sites/44/2013/02/tema_5_2.pdf · Centro de Investigación Operativa Universidad Miguel Hernández

Bondad de Ajuste

Test estadísticos para cada “X”

Se usa para evaluar la significación de cada uno de los coeficientes del modelo y secalcula tomando la ratio de los coeficientes al cuadrado en el modelo y el cuadradode los errores estándar. La idea es testear la hipótesis que el coeficiente de unavariable independiente es estadísticamente significativo distinto de cero.library(survey)regTermTest(pass.m2, "Channel")regTermTest(pass.m2, "Promo")

## Wald test for Channel## in glm(formula = Pass ~ Promo + Channel, family = binomial, data = pass.df)## F = 300.1816 on 2 and 3152 df: p= < 2.22e-16

## Wald test for Promo## in glm(formula = Pass ~ Promo + Channel, family = binomial, data = pass.df)## F = 38.47806 on 1 and 3152 df: p= 6.2588e-10

Una a una, las variables si son significativas para el analizar si un cliente se saca ono el pase.

Xavi Babrer (@umh1480 @XaviBarberUMH) Vender o no vender ese es el problema (II) 20 / 47

Page 21: Vender o no vender ese es el problema (II) - Reg ...umh1480.edu.umh.es/wp-content/uploads/sites/44/2013/02/tema_5_2.pdf · Centro de Investigación Operativa Universidad Miguel Hernández

Bondad de Ajuste

Variable ImportanceCon el fin de asegurar la importancia relativa de los predictores de forma individualen el modelo, podemos mirar el valor absoluto del estadístico t-statistic paracada parámetro.

library(caret)varImp(pass.m2)

## Overall## PromoBundle 6.203069## ChannelMail 14.853534## ChannelPark 23.313457

OverallPromoBundle 6.203069ChannelMail 14.853534ChannelPark 23.313457

Xavi Babrer (@umh1480 @XaviBarberUMH) Vender o no vender ese es el problema (II) 21 / 47

Page 22: Vender o no vender ese es el problema (II) - Reg ...umh1480.edu.umh.es/wp-content/uploads/sites/44/2013/02/tema_5_2.pdf · Centro de Investigación Operativa Universidad Miguel Hernández

Estudiando la capacidad Predictiva

Estudiando la capacidad Predictiva

Xavi Babrer (@umh1480 @XaviBarberUMH) Vender o no vender ese es el problema (II) 22 / 47

Page 23: Vender o no vender ese es el problema (II) - Reg ...umh1480.edu.umh.es/wp-content/uploads/sites/44/2013/02/tema_5_2.pdf · Centro de Investigación Operativa Universidad Miguel Hernández

Estudiando la capacidad Predictiva

Medidas de Validación de la Prediccíon

En distintos campos tras un ajuste de un modelo logístico se quiere dar algún valorque nos ayude a saber si un modelo bondadoso va o no a predecir bien.En concreto vamos a estudiar: - Sensibilidad - Especificidad - ValoresPredictivos Positivos - Valores Predictivos Negativos

pases<-factor(ifelse(pass.m2$fitted.values<0.5,"NoPass","YesPass"))predice<-table(pases,pass.df$Pass)

Table 5: Predicho vs. Observado

NoPass YesPassNoPass 1017 307YesPass 550 1282

Xavi Babrer (@umh1480 @XaviBarberUMH) Vender o no vender ese es el problema (II) 23 / 47

Page 24: Vender o no vender ese es el problema (II) - Reg ...umh1480.edu.umh.es/wp-content/uploads/sites/44/2013/02/tema_5_2.pdf · Centro de Investigación Operativa Universidad Miguel Hernández

Estudiando la capacidad Predictiva

Medidas de Validación de la Prediccíon

ObservadosNo Si

Predichos NO A BSi C D

A= “0” bien predichosB= “0” mal clasificadosC= “1” mal clasificadosD= “1” bien clasificados

Xavi Babrer (@umh1480 @XaviBarberUMH) Vender o no vender ese es el problema (II) 24 / 47

Page 25: Vender o no vender ese es el problema (II) - Reg ...umh1480.edu.umh.es/wp-content/uploads/sites/44/2013/02/tema_5_2.pdf · Centro de Investigación Operativa Universidad Miguel Hernández

Estudiando la capacidad Predictiva

Medidas de Validación de la Prediccíon

Observados TotalNo Si

Predichos NO A B A+BSi C D C+D

A+C B + D TOTAL=N

Sensibilidad= Probabilidad de predecir “1” cuando el observado es “1”

Especificidad = DB + D

Xavi Babrer (@umh1480 @XaviBarberUMH) Vender o no vender ese es el problema (II) 25 / 47

Page 26: Vender o no vender ese es el problema (II) - Reg ...umh1480.edu.umh.es/wp-content/uploads/sites/44/2013/02/tema_5_2.pdf · Centro de Investigación Operativa Universidad Miguel Hernández

Estudiando la capacidad Predictiva

Observados TotalNo Si

Predichos NO A B A+BSi C D C+D

A+C B + D TOTAL=N

Especificidad= Probabilidad de que la predicción sea “0” si la observación es “0”.

Sensibilidad = AA + C

***Observados Total

No SiPredichos NO A B A+B

Si C D C+DA+C B + D TOTAL=N

Valor predictivo positivo=Probabilidad de predecir “1” entre los observados.

VPN = CC + D

Xavi Babrer (@umh1480 @XaviBarberUMH) Vender o no vender ese es el problema (II) 26 / 47

Page 27: Vender o no vender ese es el problema (II) - Reg ...umh1480.edu.umh.es/wp-content/uploads/sites/44/2013/02/tema_5_2.pdf · Centro de Investigación Operativa Universidad Miguel Hernández

Estudiando la capacidad Predictiva

Observados TotalNo Si

Predichos NO A B A+BSi C D C+D

A+C B + D TOTAL=N

Valor predictivo negativo=Probabilidad de predecir “0” entre los observados.

VPP = AA + B

Xavi Babrer (@umh1480 @XaviBarberUMH) Vender o no vender ese es el problema (II) 27 / 47

Page 28: Vender o no vender ese es el problema (II) - Reg ...umh1480.edu.umh.es/wp-content/uploads/sites/44/2013/02/tema_5_2.pdf · Centro de Investigación Operativa Universidad Miguel Hernández

Estudiando la capacidad Predictiva

Observados TotalNo Si

Predichos NO A B A+BSi C D C+D

A+C B + D TOTAL=N

Razón de verosimilitud positiva (RVP)= Cuanto mayor es la RVP (sobre 1)más importante es la contribución de un resultado positivo del modelo en lacapacidad predictiva.

RVP = SENSIBILIDAD/ (1 − ESPECIFICIDAD)

Xavi Babrer (@umh1480 @XaviBarberUMH) Vender o no vender ese es el problema (II) 28 / 47

Page 29: Vender o no vender ese es el problema (II) - Reg ...umh1480.edu.umh.es/wp-content/uploads/sites/44/2013/02/tema_5_2.pdf · Centro de Investigación Operativa Universidad Miguel Hernández

Estudiando la capacidad Predictiva

Medidas de concordancia

Tradicionalmente se ha reconocido una fuente importante de error de medidaen la variabilidad entre observadores. Consecuentemente, un objetivo de losestudios de fiabilidad debe consistir en estimar el grado de dicha variabilidad.

El índice kappa:

κ = P0 − Pe1 − Pe

Siendo Po la proporcion de acuerdos y Pe la proporcion de acuerdos esperados en lahip´ótesis de independencia entr elos observados, es decir de acuerdos al azar(estudios de las “diagonales”).

Xavi Babrer (@umh1480 @XaviBarberUMH) Vender o no vender ese es el problema (II) 29 / 47

Page 30: Vender o no vender ese es el problema (II) - Reg ...umh1480.edu.umh.es/wp-content/uploads/sites/44/2013/02/tema_5_2.pdf · Centro de Investigación Operativa Universidad Miguel Hernández

Estudiando la capacidad Predictiva

Medidas de Validación de la PrediccíonconfusionMatrix(predice)

## Confusion Matrix and Statistics###### pases NoPass YesPass## NoPass 1017 307## YesPass 550 1282#### Accuracy : 0.7285## 95% CI : (0.7126, 0.7439)## No Information Rate : 0.5035## P-Value [Acc > NIR] : < 2.2e-16#### Kappa : 0.4563## Mcnemar's Test P-Value : < 2.2e-16#### Sensitivity : 0.6490## Specificity : 0.8068## Pos Pred Value : 0.7681## Neg Pred Value : 0.6998## Prevalence : 0.4965## Detection Rate : 0.3222## Detection Prevalence : 0.4195## Balanced Accuracy : 0.7279#### 'Positive' Class : NoPass##Xavi Babrer (@umh1480 @XaviBarberUMH) Vender o no vender ese es el problema (II) 30 / 47

Page 31: Vender o no vender ese es el problema (II) - Reg ...umh1480.edu.umh.es/wp-content/uploads/sites/44/2013/02/tema_5_2.pdf · Centro de Investigación Operativa Universidad Miguel Hernández

Curvas ROC

Curvas ROC

Xavi Babrer (@umh1480 @XaviBarberUMH) Vender o no vender ese es el problema (II) 31 / 47

Page 32: Vender o no vender ese es el problema (II) - Reg ...umh1480.edu.umh.es/wp-content/uploads/sites/44/2013/02/tema_5_2.pdf · Centro de Investigación Operativa Universidad Miguel Hernández

Curvas ROC

ROC: Receiver Operating Characteristic

Receiver Operating Characteristic(ROC) resume el rendimiento del modelomediante la evaluación de las soluciones entre tasa de verdaderos positivos(sensibilidad) y la tasa de falsos positivos (1- especificidad).Otra interpretación de este gráfico es la representación de la razón o ratio deverdaderos positivos (VPR = Razón de Verdaderos Positivos) frente a la razóno ratio de falsos positivos (FPR = Razón de Falsos Positivos) también segúnse varía el umbral de discriminación (valor a partir del cual decidimos que uncaso es un positivo).Como medida de discriminación se utiliza el área bajo la curva ROC querepresenta para todos los pares posibles de individuos formados por unindividuo en el que ocurrió el evento y otro en el que no, la proporción de losque el modelo predice una mayor probabilidad para el que tuvo el evento. Apartir de un área de 0,7 la discriminación del modelo se considera aceptable.

Xavi Babrer (@umh1480 @XaviBarberUMH) Vender o no vender ese es el problema (II) 32 / 47

Page 33: Vender o no vender ese es el problema (II) - Reg ...umh1480.edu.umh.es/wp-content/uploads/sites/44/2013/02/tema_5_2.pdf · Centro de Investigación Operativa Universidad Miguel Hernández

Curvas ROC

Curvas ROC

library(ROCR)predict <- predict(pass.m2, type = 'response')ROCRpred <- prediction(predict, pass.df$Pass)ROCRperf <- performance(ROCRpred, 'tpr','fpr')plot(ROCRperf, colorize = TRUE, text.adj = c(-0.2,1.7))

Xavi Babrer (@umh1480 @XaviBarberUMH) Vender o no vender ese es el problema (II) 33 / 47

Page 34: Vender o no vender ese es el problema (II) - Reg ...umh1480.edu.umh.es/wp-content/uploads/sites/44/2013/02/tema_5_2.pdf · Centro de Investigación Operativa Universidad Miguel Hernández

Curvas ROC

False positive rate

True

pos

itive

rat

e

0.0 0.2 0.4 0.6 0.8 1.0

0.0

0.6

0.07

0.62

Xavi Babrer (@umh1480 @XaviBarberUMH) Vender o no vender ese es el problema (II) 34 / 47

Page 35: Vender o no vender ese es el problema (II) - Reg ...umh1480.edu.umh.es/wp-content/uploads/sites/44/2013/02/tema_5_2.pdf · Centro de Investigación Operativa Universidad Miguel Hernández

Curvas ROC

Curvas ROC

library(pROC)## Intervalo de Confianza para el Umbralplot.roc(pass.df$Pass,predict,

main="Venta de Pases",percent=TRUE, ci=TRUE, of="thresholds", # compute AUC (of threshold)thresholds="best", # select the (best) threshold

print.thres="best", xlab="Especificidad", ylab="Sensibilidad") # also highlight this threshold on the plot

Xavi Babrer (@umh1480 @XaviBarberUMH) Vender o no vender ese es el problema (II) 35 / 47

Page 36: Vender o no vender ese es el problema (II) - Reg ...umh1480.edu.umh.es/wp-content/uploads/sites/44/2013/02/tema_5_2.pdf · Centro de Investigación Operativa Universidad Miguel Hernández

Curvas ROC

Venta de Pases

Especificidad

Sen

sibi

lidad

200 100 0 −100

020

6010

0

0.5 (64.9%, 80.7%)

Xavi Babrer (@umh1480 @XaviBarberUMH) Vender o no vender ese es el problema (II) 36 / 47

Page 37: Vender o no vender ese es el problema (II) - Reg ...umh1480.edu.umh.es/wp-content/uploads/sites/44/2013/02/tema_5_2.pdf · Centro de Investigación Operativa Universidad Miguel Hernández

Curvas ROC

Curvas ROC

Veamos los resultados gráficos:

roc1 <- roc(pass.df$Pass,predict,percent=TRUE,ci=TRUE, boot.n=100, ci.alpha=0.9, stratified=FALSE,plot=TRUE, auc.polygon=TRUE, max.auc.polygon=TRUE, grid=TRUE,print.auc=TRUE, show.thres=TRUE)

Xavi Babrer (@umh1480 @XaviBarberUMH) Vender o no vender ese es el problema (II) 37 / 47

Page 38: Vender o no vender ese es el problema (II) - Reg ...umh1480.edu.umh.es/wp-content/uploads/sites/44/2013/02/tema_5_2.pdf · Centro de Investigación Operativa Universidad Miguel Hernández

Curvas ROC

Specificity (%)

Sen

sitiv

ity (

%)

200 100 0 −100

020

6010

0

AUC: 78.5% (76.9%...80.0%)AUC: 78.5% (76.9%...80.0%)

Xavi Babrer (@umh1480 @XaviBarberUMH) Vender o no vender ese es el problema (II) 38 / 47

Page 39: Vender o no vender ese es el problema (II) - Reg ...umh1480.edu.umh.es/wp-content/uploads/sites/44/2013/02/tema_5_2.pdf · Centro de Investigación Operativa Universidad Miguel Hernández

Curvas ROC

Curvas ROC (II)

Y ahora los resultados numéricos:roc1ci.thresholds(roc1)

Xavi Babrer (@umh1480 @XaviBarberUMH) Vender o no vender ese es el problema (II) 39 / 47

Page 40: Vender o no vender ese es el problema (II) - Reg ...umh1480.edu.umh.es/wp-content/uploads/sites/44/2013/02/tema_5_2.pdf · Centro de Investigación Operativa Universidad Miguel Hernández

Curvas ROC

#### Call:## roc.default(response = pass.df$Pass, predictor = predict, percent = TRUE, ci = TRUE, plot = TRUE, boot.n = 100, ci.alpha = 0.9, stratified = FALSE, auc.polygon = TRUE, max.auc.polygon = TRUE, grid = TRUE, print.auc = TRUE, show.thres = TRUE)#### Data: predict in 1567 controls (pass.df$Pass NoPass) < 1589 cases (pass.df$Pass YesPass).## Area under the curve: 78.47%## 95% CI: 76.92%-80.03% (DeLong)

thresholds sp.low sp.median sp.high se.low se.median se.high-Inf 0.000 0.000 0.000 100.000 100.000 100.0000.0889380097453924 4.212 5.297 6.382 96.852 97.609 98.3640.248776484931383 34.014 36.248 38.736 94.902 95.909 96.8530.455366276407176 62.604 64.965 67.262 78.792 80.680 82.6310.635712350391374 80.855 82.706 84.556 55.632 58.087 60.5410.792507747208379 95.980 96.873 97.703 15.922 17.873 19.824Inf 100.000 100.000 100.000 0.000 0.000 0.000

Xavi Babrer (@umh1480 @XaviBarberUMH) Vender o no vender ese es el problema (II) 40 / 47

Page 41: Vender o no vender ese es el problema (II) - Reg ...umh1480.edu.umh.es/wp-content/uploads/sites/44/2013/02/tema_5_2.pdf · Centro de Investigación Operativa Universidad Miguel Hernández

Capacidad Predictiva de los modelos ajustados

Capacidad Predictiva de los modelos ajustados

Xavi Babrer (@umh1480 @XaviBarberUMH) Vender o no vender ese es el problema (II) 41 / 47

Page 42: Vender o no vender ese es el problema (II) - Reg ...umh1480.edu.umh.es/wp-content/uploads/sites/44/2013/02/tema_5_2.pdf · Centro de Investigación Operativa Universidad Miguel Hernández

Capacidad Predictiva de los modelos ajustados

Validación cruzada

Una delas técnicas más utilizadas para estudiar la capacidad predictiva de unmodelo, es la Validación Cruzada.Existen diferentes técnicas para realizar esto pero la más fácil es ajustarnuestro modelo sin la i-ésima observación, ver el valor predicho y compararlocon el real. Si hacemos esto para todos los datos obtendremos el error quecomete nuestro modelo al predecir.

-Otro posibilidad es guardarnos datos del conjunto de datos y meterlos en el modelopara comparar la respuesta real con la predicción.Particion <- createDataPartition(pass.df$Pass, p=0.7, list=FALSE)ajuste <- pass.df[ Particion, ]valida <- pass.df[ -Particion, ]ctrl<-trainControl(method = "repeatedcv", number = 10, savePredictions = TRUE)mod_fit<-train(Pass~Channel+Promo, data=ajuste,

method="glm", family="binomial",trControl=ctrl, tuneLength=5)

pred = predict(mod_fit, newdata=valida)confusionMatrix(data=pred, valida$Pass)

Xavi Babrer (@umh1480 @XaviBarberUMH) Vender o no vender ese es el problema (II) 42 / 47

Page 43: Vender o no vender ese es el problema (II) - Reg ...umh1480.edu.umh.es/wp-content/uploads/sites/44/2013/02/tema_5_2.pdf · Centro de Investigación Operativa Universidad Miguel Hernández

Capacidad Predictiva de los modelos ajustados

Validación cruzada

## Confusion Matrix and Statistics#### Reference## Prediction NoPass YesPass## NoPass 321 99## YesPass 149 377#### Accuracy : 0.7378## 95% CI : (0.7086, 0.7656)## No Information Rate : 0.5032## P-Value [Acc > NIR] : < 2.2e-16#### Kappa : 0.4753## Mcnemar's Test P-Value : 0.001861#### Sensitivity : 0.6830## Specificity : 0.7920## Pos Pred Value : 0.7643## Neg Pred Value : 0.7167## Prevalence : 0.4968## Detection Rate : 0.3393## Detection Prevalence : 0.4440## Balanced Accuracy : 0.7375#### 'Positive' Class : NoPass##

Xavi Babrer (@umh1480 @XaviBarberUMH) Vender o no vender ese es el problema (II) 43 / 47

Page 44: Vender o no vender ese es el problema (II) - Reg ...umh1480.edu.umh.es/wp-content/uploads/sites/44/2013/02/tema_5_2.pdf · Centro de Investigación Operativa Universidad Miguel Hernández

Capacidad Predictiva de los modelos ajustados

Validación cruzada

Una forma más artesanal sería:error<-(rep(NA,length(pass.df$Pass)))for(i in 1:length(pass.df$Pass)){fit1<- glm(Pass ~ Promo+Channel, data=pass.df[-i,], family=binomial)error[i]<-ifelse(predict(fit1,newdata=pass.df[i,])<0.5,"NoPass","YesPass")

}kable(table(error,pass.df$Pass))

NoPass YesPass

NoPass 1295 666YesPass 272 923

Xavi Babrer (@umh1480 @XaviBarberUMH) Vender o no vender ese es el problema (II) 44 / 47

Page 45: Vender o no vender ese es el problema (II) - Reg ...umh1480.edu.umh.es/wp-content/uploads/sites/44/2013/02/tema_5_2.pdf · Centro de Investigación Operativa Universidad Miguel Hernández

Capacidad Predictiva de los modelos ajustados

Validación cruzada

print(confusionMatrix(error,pass.df$Pass))

## Confusion Matrix and Statistics#### Reference## Prediction NoPass YesPass## NoPass 1295 666## YesPass 272 923#### Accuracy : 0.7028## 95% CI : (0.6865, 0.7187)## No Information Rate : 0.5035## P-Value [Acc > NIR] : < 2.2e-16#### Kappa : 0.4066## Mcnemar's Test P-Value : < 2.2e-16#### Sensitivity : 0.8264## Specificity : 0.5809## Pos Pred Value : 0.6604## Neg Pred Value : 0.7724## Prevalence : 0.4965## Detection Rate : 0.4103## Detection Prevalence : 0.6214## Balanced Accuracy : 0.7036#### 'Positive' Class : NoPass##

Xavi Babrer (@umh1480 @XaviBarberUMH) Vender o no vender ese es el problema (II) 45 / 47

Page 46: Vender o no vender ese es el problema (II) - Reg ...umh1480.edu.umh.es/wp-content/uploads/sites/44/2013/02/tema_5_2.pdf · Centro de Investigación Operativa Universidad Miguel Hernández

Ejercicio

Ejercicio

Xavi Babrer (@umh1480 @XaviBarberUMH) Vender o no vender ese es el problema (II) 46 / 47

Page 47: Vender o no vender ese es el problema (II) - Reg ...umh1480.edu.umh.es/wp-content/uploads/sites/44/2013/02/tema_5_2.pdf · Centro de Investigación Operativa Universidad Miguel Hernández

Ejercicio

Modelo LogísticoTenemos los datos de una encuesta a los visitantes de Terra Mítica. Los datoscontienen la siguiente información:

Si es o no visitante de fin de semana (weekend),Número de niños que le acompañan (num.cild),La distancia desde su hogar al parque (distance).Satisfacción general (overall),satisfacción con las atracciones(rides), juegos (games),tiempos de espera(wait) y limpieza (clean).

sat.df <- read.csv("http://goo.gl/HKnl74")str(sat.df)

## 'data.frame': 500 obs. of 8 variables:## $ weekend : Factor w/ 2 levels "no","yes": 2 2 1 2 1 1 2 1 1 2 ...## $ num.child: int 0 2 1 0 4 5 1 0 0 3 ...## $ distance : num 114.6 27 63.3 25.9 54.7 ...## $ rides : int 87 87 85 88 84 81 77 82 90 88 ...## $ games : int 73 78 80 72 87 79 73 70 88 86 ...## $ wait : int 60 76 70 66 74 48 58 70 79 55 ...## $ clean : int 89 87 88 89 87 79 85 83 95 88 ...## $ overall : int 47 65 61 37 68 27 40 30 58 36 ...

Xavi Babrer (@umh1480 @XaviBarberUMH) Vender o no vender ese es el problema (II) 47 / 47