A continuation se presenta el desarrollo del laboratorio N°4, que tiene como fin analizar dos casos independientemente y con el uso de analisis de regresión concluir comparaciones.
El primer caso busca comparar el desempeño de dos clases de discos duros (0 : SDD, 1: HDD). Este desempeño es medido a través de la variable Y: tiempo de respuesta del disco (segundos), la cual se relaciona, posiblemente bajo una dependencia no lineal, de X: la carga del sistema (Número de consultas por minuto).
Inicialmente se gráficamente la relación observada entre el tiempo de respuesta y la carga de trabajo, para los dos tipos de disco duro, en busca de una relación lineal, y determinar la fuerza de esta relación para ambos tipos de disco a través de los coeficientes de correlación:
## Loading required package: MASS
## Loading required package: visdat
## Loading required package: car
## Loading required package: carData
## Loading required package: caret
## Loading required package: ggplot2
## Loading required package: lattice
## Loading required package: pROC
## Type 'citation("pROC")' for a citation.
##
## Attaching package: 'pROC'
## The following objects are masked from 'package:stats':
##
## cov, smooth, var
## Loading required package: class
## All packages loaded successfully
## 'data.frame': 25 obs. of 3 variables:
## $ Conf : chr "1" "0" "1" "0" ...
## $ Carga : num 1 2 2.4 3.1 4 4.3 5.8 6.6 7.5 8 ...
## $ Tiempo: num 0.9 0.3 2 0.8 2.7 2.6 2.5 3.2 3.7 3.9 ...
## Factor w/ 2 levels "0","1": 2 1 2 1 2 2 1 1 1 2 ...
## `geom_smooth()` using formula = 'y ~ x'
Los coeficientes de correlaciones que presentan cada tipo de disco duro son:
## Coeficiente de correlación para SDD: 0.9938293
## Coeficiente de correlación para HDD: 0.9640003
Se genera un primer modelo de regresión simple (Modelo 1) que reproduzca la relación entre la carga y el tiempo de respuesta, sin incluir la configuración del disco duro. Tambien se evalua la bondad de ajuste de este modelo y se interpreta los resultados obtenidos.
modelo1<-lm(Tiempo~ Carga,data = discos)
summary(modelo1)
##
## Call:
## lm(formula = Tiempo ~ Carga, data = discos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.16824 -0.40281 -0.03945 0.43541 1.07627
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.04838 0.26321 0.184 0.856
## Carga 0.49214 0.04177 11.783 3.18e-11 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.5837 on 23 degrees of freedom
## Multiple R-squared: 0.8579, Adjusted R-squared: 0.8517
## F-statistic: 138.8 on 1 and 23 DF, p-value: 3.177e-11
Intercepto: El intercepto no es estadísticamente significativo. Por lo que se acepta la hipótesis nula Ho: parámetro = 0
Pendiente = 0.4221: Ante el aumento en un segundo en el tiempo de respuesta del disco, se espera que en promedio la carga del sistema, es decir, el número de consultas por minutos aumente en 0.4221
R-squared/Bondad de ajuste = 𝑅2 0.8579 (Alto) : El 85.79% de la variabilidad en el tiempo de respuesta se explica por la carga del sistema. Las variaciones de la variable dependiente están explicadas por el modelo de regresión
Error estándar residual: 0.5837, que es una medida de la dispersión de los residuos, relativamente bajo, indicando un buen ajuste del modelo.
Conclusión: El modelo tiene un buen ajuste, con un 𝑅2 relativamente alto y el coeficiente de la pendiente de Carga significativos. La carga del sistema tiene una influencia significativa en el tiempo de respuesta del disco, y esta relación es positiva.
### Verificando la forma de los residuos ###
library(car)
par(mfrow=c(1,2))
residualPlot(modelo1,variable="fitted",type = "rstudent",pch=20, col.quad= "hotpink2")
residualPlot(modelo1,variable="Carga",type = "rstudent",pch=20, col.quad = "greenyellow")
Se realiza la verificación de la forma de los residuos, utilizando rstudent y se obtiene del actual modelo una normalidad casi centralizada de sus residuos.
El modelo graficamente se ve representado:
# Gráfico del ajuste del modelo
ggplot(discos, aes(x = Carga, y = Tiempo)) +
theme_bw()+
geom_point() +
geom_smooth(method = "lm", se = FALSE, color = "purple") +
labs(title = "Modelo de Regresión Simple: Carga vs. Tiempo de Respuesta",
x = "Carga del sistema (consultas por minuto)",
y = "Tiempo de respuesta del disco (segundos)")
## `geom_smooth()` using formula = 'y ~ x'
Ahora se genera el segundo modelo de regresión simple (Modelo 2) que incluye el tipo de disco (Variable Dummy) y su relación entre la carga y el tiempo de respuesta. Tambien se evalua la bondad de ajuste de este modelo y se interpreta los coeficientes del modelo.
modelo2 <- lm(Tiempo ~ Carga*Conf, data=discos)
summary(modelo2)
##
## Call:
## lm(formula = Tiempo ~ Carga * Conf, data = discos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.68547 -0.11333 0.06881 0.15302 0.41807
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.37549 0.20902 -6.581 1.62e-06 ***
## Carga 0.71979 0.03367 21.376 9.88e-16 ***
## Conf1 2.26391 0.26520 8.536 2.86e-08 ***
## Carga:Conf1 -0.35734 0.04227 -8.454 3.36e-08 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.2844 on 21 degrees of freedom
## Multiple R-squared: 0.9692, Adjusted R-squared: 0.9648
## F-statistic: 220.2 on 3 and 21 DF, p-value: 5.042e-16
Intercepto: El intercepto es significativo y negativo.El valor p es extremadamente pequeño (1.62e-06), indicando que el intercepto es significativamente diferente de cero.
Pendiente = 0.71979: es significativa y positiva, indicando que a medida que la carga aumenta, el tiempo de respuesta también lo hace para los discos SDD.
R-squared/Bondad de ajuste = 𝑅2 0.9648 (Alto) : El 96.48% de la variabilidad en el tiempo de respuesta se explica por la carga del sistema. Las variaciones de la variable dependiente están explicadas por el modelo de regresión
Error estándar residual: 0.2844, que es una medida de la dispersión de los residuos, relativamente bajo, indicando un muy buen ajuste del modelo.
Respecto a los coeficientes:
discos$Carga: 0.71979 : Este es el incremento en Tiempo por cada unidad adicional de Carga para los discos de configuración 0 (SDD).
Conf1: 2.26391 : Este es el efecto adicional en Tiempo cuando la configuración del disco es 1 (HDD) comparado con 0 (SDD), cuando Carga es cero.
discos$Carga:Conf1: -0.35734 : Este es el efecto de la interacción entre Carga y Conf. Indica que la pendiente de Carga para discos con configuración 1 (HDD) es diferente de la pendiente para discos con configuración 0 (SDD) por -0.35734.
Conclusión: El modelo tiene un buen ajuste, con un 𝑅2 relativamente alto y el coeficiente de la pendiente de Carga significativos. La carga del sistema tiene una influencia significativa en el tiempo de respuesta del disco, y esta relación es positiva. En comparación con el anterior modelo, este presenta un mejor ajuste.
Se realiza el test ANOVA para pruebar que la inclusión de la variable cualitativa configuración del disco y su interacción con la carga mejora significativamente el ajuste del modelo.
anova(modelo1,modelo2)
## Analysis of Variance Table
##
## Model 1: Tiempo ~ Carga
## Model 2: Tiempo ~ Carga * Conf
## Res.Df RSS Df Sum of Sq F Pr(>F)
## 1 23 7.8375
## 2 21 1.6990 2 6.1386 37.938 1.067e-07 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Apartir del test se concluye que, la inclusión del tipo de disco y su interacción con la carga mejora significativamente el ajuste del modelo. Esto se evidencia por la gran reducción en la suma de cuadrados residuales y un valor F muy alto, respaldado por un valor p extremadamente bajo. Por lo tanto, se concluye que el Modelo 2 proporciona una representación significativamente mejor de los datos comparado con el Modelo 1, justificando la inclusión de las nuevas variables. El test ANOVA muestra que el modelo que incluye tanto el tipo de disco como su interacción con la carga proporciona un ajuste significativamente mejor en comparación con el modelo que solo incluye la carga. La significancia estadística del valor p extremadamente bajo confirma que esta mejora no es debida al azar.
Ambos modelos se observan de la siguiente forma. El modelos1 resulta completamente lineal mientras que el modelo2 depende del tipo de confirguración (1=, 0=)
ggplot(data = discos)+
geom_point(aes(x=Carga,y=Tiempo))+
geom_line(aes(x=Carga,y=predict(modelo1)),col= "purple", linewidth = 1)+
geom_line(aes(x=Carga,y=predict(modelo2)),col= "magenta", linewidth = 1)+
theme_bw()
Finalmente se realiza un test para validar el cumplimiento de los supuestos de ambos modelos:
## Loading required package: zoo
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
A nivel general Modelo 1:
par(mfrow=c(2,2))
plot(modelo1)
A nivel general Modelo 2:
par(mfrow=c(2,2))
plot(modelo2)
Resultados detallados:
t.test(residuos1, alternative="two.sided") # Test - Media cero
##
## One Sample t-test
##
## data: residuos1
## t = -0.015598, df = 24, p-value = 0.9877
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
## -0.4445302 0.4378615
## sample estimates:
## mean of x
## -0.003334343
t.test(residuos2, alternative="two.sided") # Test - Media cero
##
## One Sample t-test
##
## data: residuos2
## t = -0.14652, df = 24, p-value = 0.8847
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
## -0.4994321 0.4332192
## sample estimates:
## mean of x
## -0.03310641
Ambas pruebas t arrojan valores p significativamente altos (0.9877 y 0.8847 para residuos1 y residuos2 respectivamente), lo que indica que no hay evidencia suficiente para rechazar la hipótesis nula de que la media de los residuos es igual a cero en ambos casos. Los intervalos de confianza del 95% para ambos modelos incluyen el valor cero, lo que refuerza aún más la conclusión de que no hay una diferencia significativa entre las medias de los residuos y cero.
bptest(modelo1) # Test - Homogeneidad de varianza
##
## studentized Breusch-Pagan test
##
## data: modelo1
## BP = 0.43435, df = 1, p-value = 0.5099
bptest(modelo2) # Test - Homogeneidad de varianza
##
## studentized Breusch-Pagan test
##
## data: modelo2
## BP = 2.6825, df = 3, p-value = 0.4432
Ambas pruebas Breusch-Pagan arrojan valores p altos (0.5099 para modelo1 y 0.4432 para modelo2), lo que indica que no hay evidencia suficiente para rechazar la hipótesis nula de homocedasticidad en ambos modelos. En otras palabras, no se detecta una variación sistemática en la varianza de los residuos en función de las variables explicativas para ninguno de los dos modelos.
dwtest(modelo1) # Test - Independencia
##
## Durbin-Watson test
##
## data: modelo1
## DW = 2.365, p-value = 0.7755
## alternative hypothesis: true autocorrelation is greater than 0
dwtest(modelo2) # Test - Independencia
##
## Durbin-Watson test
##
## data: modelo2
## DW = 1.3285, p-value = 0.03421
## alternative hypothesis: true autocorrelation is greater than 0
Modelo 1: El valor de Durbin-Watson (2.365) está cercano a 2, lo que indica que no hay evidencia de autocorrelación en los residuos. El p-valor alto (0.7755) sugiere que no podemos rechazar la hipótesis nula de no autocorrelación en los residuos.
Modelo 2: El valor de Durbin-Watson (1.3285) está significativamente más alejado de 2, lo que sugiere la presencia de autocorrelación positiva en los residuos. El p-valor bajo (0.03421) indica que hay suficiente evidencia para rechazar la hipótesis nula y aceptar la hipótesis alternativa de que existe autocorrelación positiva en los residuos.
shapiro.test(residuos1) # Test - Normalidad
##
## Shapiro-Wilk normality test
##
## data: residuos1
## W = 0.99022, p-value = 0.9961
shapiro.test(residuos2) # Test - Normalidad
##
## Shapiro-Wilk normality test
##
## data: residuos2
## W = 0.92407, p-value = 0.06348
los residuos de modelo1 cumplen claramente con la suposición de normalidad, mientras que los residuos de modelo2 muestran una indicación de posible desviación de la normalidad, aunque no de forma concluyente al nivel de significancia del 5%.
Conclusiones:
A pesar de que Modelo 2 muestra algunos problemas estadísticos como la autocorrelación en los residuos y posibles indicios de no normalidad, es importante considerar el contexto y el propósito del análisis. Modelo 2 incluye la variable dummy que representa el tipo de disco y su interacción con la carga del sistema, proporcionando una visión más completa y detallada del desempeño de los discos duros bajo diferentes condiciones de carga.
La inclusión de estas variables adicionales permite a Modelo 2 capturar la variabilidad en el tiempo de respuesta que se debe al tipo de disco (SSD vs. HDD) y cómo esta relación cambia con la carga del sistema, algo que Modelo 1 no puede hacer. Este enfoque es crucial para entender mejor las diferencias de desempeño entre los tipos de discos duros y tomar decisiones más informadas en contextos prácticos.
En términos puramente estadísticos, Modelo 1 podría parecer mejor debido a la ausencia de autocorrelación y una mejor normalidad de los residuos. Sin embargo, dado el objetivo del análisis, Modelo 2 es el mejor modelo. La capacidad de Modelo 2 para incluir el tipo de disco y su interacción con la carga del sistema proporciona una comprensión más rica y aplicable del desempeño de los discos duros.
Una compañía de seguros de automó vil desea caracterizar la siniestralidad de sus asegurados durante el último año.Para ello dispone información de una muestra aleatoria de 35 asegurados con la siguiente información:
A continuación se presenta el desarrollo del análisis.
Inicialmente realizamos un análisis exploratorio, que incluye el calculo de algunos indicadores descriptivos y la representación gráfica de los datos.
## Acc Exp Edad Pot Sexo
## No:20 Min. : 1.000 Min. :20 Min. : 70.0 Mujer :21
## Si:15 1st Qu.: 6.500 1st Qu.:25 1st Qu.: 90.0 Hombre:14
## Median : 9.000 Median :29 Median : 95.0
## Mean : 9.543 Mean :31 Mean :101.6
## 3rd Qu.:12.000 3rd Qu.:36 3rd Qu.:110.0
## Max. :20.000 Max. :56 Max. :150.0
## tibble [35 × 5] (S3: tbl_df/tbl/data.frame)
## $ Acc : Factor w/ 2 levels "No","Si": 1 1 1 2 1 2 1 2 1 2 ...
## $ Exp : num [1:35] 10 15 7 1 10 2 8 20 18 4 ...
## $ Edad: num [1:35] 30 40 25 21 29 20 40 25 43 23 ...
## $ Pot : num [1:35] 90 85 95 145 70 120 95 135 85 110 ...
## $ Sexo: Factor w/ 2 levels "Mujer","Hombre": 1 1 1 2 1 2 1 2 1 2 ...
A continuación se realizan gráficos de cajas para cada una de las variables en función de la presencia o no de un accidente, con el fin de evaluar si existe alguna tendencia en la accidentalidad para cada una de las variables. Para el caso del sexo se decidió utilizar un diagrama de barras
De acuerdo con las gráficas se puede percibir que existe una mayor probabilidad de tener un accidente en los casos en los que la experiencia y la edad son bajas, por el contrario el tener un motor de mayor potencia puede conllevar a que haya mayor probabilidad de tener un accidente.Para el caso del sexo se presenta en mayor medida en las mujeres, sin embargo esto también puede estar relacionado a las otras variables predictoras.
Para empezar partiremos evaluando un modelo de regresión logística que tenga en cuenta únicamente la experiencia del conductor en función de la probabilidad de la ocurrencia o no de un accidente.
De acuerdo con la gráfica podemos ver que más o menos a partir de los 8 años de experiencia la probabilidad de tener un accidente empieza a ser menor que la probabilidad de ocurrencia de uno. Partiendo que el punto de corte sea de 0.5, es decir que si la probabilidad es superior a este punto podemos considerar la ocurrencia de un accidente. En resumen este sería del modelo planteado Modelo_RL1:
##
## Call:
## glm(formula = Acc ~ Exp, family = "binomial", data = datos)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 1.9419 0.9816 1.978 0.0479 *
## Exp -0.2456 0.1044 -2.354 0.0186 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 47.804 on 34 degrees of freedom
## Residual deviance: 40.006 on 33 degrees of freedom
## AIC: 44.006
##
## Number of Fisher Scoring iterations: 4
De acuerdo con esto partimos con los siguientes indicadores:
Así mismo con el intercepto y el coeficiente asociado a la variable Experiencia calculados, la fórmula de este primer modelo se vería representada así:
\(\frac{1}{1+e^{-(1.9-0.24 \cdot \text{Exp})}}\)
Ahora con esto aún no sabemos realmente si el modelo es bueno o no. Pasaremos a revisar los Odds Ratios y el test de razón de verosimilitud para ver qué información nos aporta la variable experiencia en el modelo planteado.
## Coef 2.5 % 97.5 %
## (Intercept) 1.941925 0.1848551 4.13862783
## Exp -0.245607 -0.4859059 -0.06601434
## e-beta 2.5 % 97.5 %
## (Intercept) 6.9721601 1.2030441 62.7167043
## Exp 0.7822295 0.6151397 0.9361174
De estos Odds Ratios podemos inferir lo siguiente:
## Analysis of Deviance Table
##
## Model: binomial, link: logit
##
## Response: Acc
##
## Terms added sequentially (first to last)
##
##
## Df Deviance Resid. Df Resid. Dev Pr(>Chi)
## NULL 34 47.804
## Exp 1 7.7977 33 40.006 0.005231 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## AIC deviance R2
## Modelo_RL1 44.00583 40.00583 0.1631205
El valor p de 0.005231 indica que la probabilidad de observar una reducción en la desviación tan grande como 7.798 (o mayor) solo por azar es muy baja (aproximadamente 0.52%). Dado que este valor es menor que el umbral común de 0.05, rechazamos la hipótesis nula.
En general la tabla ANOVA muestra que la variable “Experiencia” (Exp) tiene un efecto significativo en la probabilidad de que ocurra un accidente de tránsito. La reducción en la desviación es significativa (p = 0.005231), lo que sugiere que incluir la experiencia del conductor en el modelo mejora significativamente el ajuste del modelo.
Utilizamos la curva ROC para evaluar el punto de corte óptimo y a partir de este realizar la matriz de confusión del modelo con sus nuevos indicadores de referencia:
##
## Call:
## roc.default(response = datos$Acc, predictor = Prob_RL1, auc = TRUE, ci = TRUE)
##
## Data: Prob_RL1 in 20 controls (datos$Acc No) < 15 cases (datos$Acc Si).
## Area under the curve: 0.7983
## 95% CI: 0.6297-0.967 (DeLong)
A partir de esta gráfica podemos intuir el nuevo punto de corte, que se ubicaría en 0.404 con un AUC de 79.83%, a partir de este generamos la matriz de confusión la cual se vería así:
## Confusion Matrix and Statistics
##
## Reference
## Prediction No Si
## No 14 2
## Si 6 13
##
## Accuracy : 0.7714
## 95% CI : (0.5986, 0.8958)
## No Information Rate : 0.5714
## P-Value [Acc > NIR] : 0.01134
##
## Kappa : 0.5484
##
## Mcnemar's Test P-Value : 0.28884
##
## Sensitivity : 0.8667
## Specificity : 0.7000
## Pos Pred Value : 0.6842
## Neg Pred Value : 0.8750
## Prevalence : 0.4286
## Detection Rate : 0.3714
## Detection Prevalence : 0.5429
## Balanced Accuracy : 0.7833
##
## 'Positive' Class : Si
##
## Sensitivity Specificity Pos Pred Value
## 0.8666667 0.7000000 0.6842105
## Neg Pred Value Precision Recall
## 0.8750000 0.6842105 0.8666667
## F1 Prevalence Detection Rate
## 0.7647059 0.4285714 0.3714286
## Detection Prevalence Balanced Accuracy
## 0.5428571 0.7833333
Siendo así tendríamos una precisión del 77.14%, la cual tal vez se pueda mejorar con la inclusión de variables.
En cuanto a la especificidad y sensitividad podemos evidenciar que el modelo actual es bastante preciso en la identificación de los verdaderos positivos, con una sensitividad del 86.67%, sin embargo el valor predictivo de los verdaderos positivos es sólo del 68.42%, y para los intereses de la compañía en saber si alguien es propenso a un accidente podría resultar beneficioso elevar este porcentaje.
Finalmente nuestros valores de bondad con el modelo ajustado quedarían así:
## AIC deviance R2 AUC
## Modelo_RL1 44.00583 40.00583 0.1631205 0.7983333
Al desarrollar el segundo modelo incluimos el sexo como variable predictora para evaluar su utilidad en comparación con el propuesto incialmente.
##
## Call:
## glm(formula = Acc ~ Exp + Sexo, family = "binomial", data = datos)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 0.8890 1.2252 0.726 0.46808
## Exp -0.2400 0.1176 -2.040 0.04131 *
## SexoHombre 2.9866 1.0683 2.796 0.00518 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 47.804 on 34 degrees of freedom
## Residual deviance: 29.249 on 32 degrees of freedom
## AIC: 35.249
##
## Number of Fisher Scoring iterations: 5
En este nuevo modelo vemos que el AIC tuvo una disminución de 8,757 puntos en lo que corresponde al AIC, al igual que la desvianza residual que disminuyó de 40.006 hasta 29.249. Con esto podemos intuir que sí existe una mejora significativa en el modelo, la cual corroboraremos al final luego de tener este segundo modelo finalmente ajustado.
La ecuación asociada a este nuevo modelo sería la siguiente: \(\frac{1}{1+e^{-(0.88-0.24 \cdot \text{Exp} +2.98 \cdot \text{Sexo})}}\)
Verificamos si el nuevo modelo es mejor que el propuesto inicialmente:
## Coef 2.5 % 97.5 %
## (Intercept) 0.8890341 -1.3776790 3.64897083
## Exp -0.2399985 -0.5285605 -0.04017264
## SexoHombre 2.9865699 1.1292126 5.58840807
## e-beta 2.5 % 97.5 %
## (Intercept) 2.432779 0.2521631 38.4350894
## Exp 0.786629 0.5894529 0.9606236
## SexoHombre 19.817589 3.0932200 267.3097416
De estos nuevos Odds Ratios podemos concluir:
Ahora al pasar a calcular el punto de corte ideal para este modelo, de acuerdo con la curva ROC concluimos que se debe definir un nuevo punto de corte en 0.845, el cual cubre un área bajo la curva de 86.83%
##
## Call:
## roc.default(response = datos$Acc, predictor = Prob_RLM1, auc = TRUE, ci = TRUE)
##
## Data: Prob_RLM1 in 20 controls (datos$Acc No) < 15 cases (datos$Acc Si).
## Area under the curve: 0.8683
## 95% CI: 0.7507-0.986 (DeLong)
Con este valor definido pasamos a calcular la matriz de confusión para este nuevo modelo y así evaluar su efectividad para predecir los datos, comparados con los valores reales.
## Confusion Matrix and Statistics
##
## Reference
## Prediction No Si
## No 20 6
## Si 0 9
##
## Accuracy : 0.8286
## 95% CI : (0.6635, 0.9344)
## No Information Rate : 0.5714
## P-Value [Acc > NIR] : 0.001202
##
## Kappa : 0.6316
##
## Mcnemar's Test P-Value : 0.041227
##
## Sensitivity : 0.6000
## Specificity : 1.0000
## Pos Pred Value : 1.0000
## Neg Pred Value : 0.7692
## Prevalence : 0.4286
## Detection Rate : 0.2571
## Detection Prevalence : 0.2571
## Balanced Accuracy : 0.8000
##
## 'Positive' Class : Si
##
Con la matriz de confusión podemos ver en general que este nuevo modelo presenta mayor precisión que el inicial, pasando de 77.14% a 82.86%. Adicional el Kappa también aumento hasta un 63.16% lo que indica que el modelo actual tiene una mayor concordancia entre las predicciones y las observaciones reales después de ajustar por el azar.
Se puede evidenciar además que el nuevo modelo pierde un poco de sensitividad, pero permitiendo alcanzar un 100% de especificidad, aumentando la proporción de verdaderos negativos correctamente identificados, y aunque la sensitividad disminuye, aumentó a un 100% el Pos Pred Value, que representa la proporción de verdaderos positivos sobre todos los casos predichos como positivos.
Ahora si comparamos los valores de bondad de ambos modelos podemos evidenciar que sí hay una mejora significativa en el nuevo modelo al incluir la variable sexo, en comparación con el primer modelo planteado.
## AIC deviance R2 AUC
## Modelo_RL1 44.00583 40.00583 0.1631205 0.7983333
## Modelo_Mult1 35.24875 29.24875 0.3881471 0.8683333
Si evaluamos un tercer modelo que contenga todas las variables así se verían los valores de bondad.Para este caso incluir todas las variables predictoras en el modelo mejora significativamente la capacidad del modelo para explicar la variabilidad en la variable Accidentes, con una precisión del modelo del 94.29%
## Confusion Matrix and Statistics
##
## Reference
## Prediction No Si
## No 19 1
## Si 1 14
##
## Accuracy : 0.9429
## 95% CI : (0.8084, 0.993)
## No Information Rate : 0.5714
## P-Value [Acc > NIR] : 1.128e-06
##
## Kappa : 0.8833
##
## Mcnemar's Test P-Value : 1
##
## Sensitivity : 0.9333
## Specificity : 0.9500
## Pos Pred Value : 0.9333
## Neg Pred Value : 0.9500
## Prevalence : 0.4286
## Detection Rate : 0.4000
## Detection Prevalence : 0.4286
## Balanced Accuracy : 0.9417
##
## 'Positive' Class : Si
##
## AIC deviance R2 AUC
## Modelo_RL1 44.00583 40.00583 0.1631205 0.7983333
## Modelo_Mult1 35.24875 29.24875 0.3881471 0.8683333
## Modelo_MultSat 22.69953 12.69953 0.7343392 0.9666667
Para este tercer modelo donde se incluyen todas las variables es mucho más preciso en comparación con los dos anteriores. A pesar de que no se tienen valores de clasificación con 100%, es mucho más balanceado al momento de identificar verdaderos positivos y verdaderos negativos, disminuyendo significativamente tanto el AIC como la varianza.
##
## Call:
## glm(formula = Acc ~ ., family = "binomial", data = datos)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -19.97398 9.23723 -2.162 0.0306 *
## Exp -0.47952 0.33645 -1.425 0.1541
## Edad -0.02585 0.08801 -0.294 0.7689
## Pot 0.24687 0.10715 2.304 0.0212 *
## SexoHombre 3.04940 2.36426 1.290 0.1971
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 47.804 on 34 degrees of freedom
## Residual deviance: 12.700 on 30 degrees of freedom
## AIC: 22.7
##
## Number of Fisher Scoring iterations: 8
En este tercer modelo la ecuación sería la siguiente: \(\frac{1}{1+e^{-(-19.97-0.48 \cdot \text{Exp} -0.02 \cdot \text{Edad}-0.25 \cdot \text{Pot}+3.04 \cdot \text{Sexo})}}\)
Adicional a esto, revisando los valores P, podemos concluir que la variable Edad es la que menos información aporta al modelo en función de predecir la probabilidad de un siniestro, mientras que la variable de Potencia del motor es la más influyente en la siniestralidad según este modelo.