Este documento contiene el desarrollo del Laboratorio 4 (Regresión lineal) en la asignatura Métodos Cuantitativos para el Análisis de la Información de la Maestría en Analítica e Inteligencia de Negocios de la Universidad del Valle. Aquí pueden consultar el enunciado del ejercicio y el código empleado para generar los resultados en el software R.

Ejercicio 1: Desempeño de discos duros

Con la intención de 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).

Se han realizado múltiples ensayos bajo ambas configuraciones y bajo variación de la carga del sistema.

Preparación de los datos:

  1. No se evidencia ningún dato faltante; los datos están completos.
  2. No hay datos atípicos según se observa en el diagrama boxplot
  3. El histograma muestra normalidad de los datos
  4. Adcional, se transforma la variable configuración en los tipos de disco SDD y HDD
## tibble [25 × 3] (S3: tbl_df/tbl/data.frame)
##  $ conf  : num [1:25] 1 0 1 0 1 1 0 0 0 1 ...
##  $ carga : num [1:25] 1 2 2.4 3.1 4 4.3 5.8 6.6 7.5 8 ...
##  $ tiempo: num [1:25] 0.9 0.3 2 0.8 2.7 2.6 2.5 3.2 3.7 3.9 ...

Correlaciones entre la carga de trabajo y tiempo de respuesta por tipo de disco duro:

## 
##  Pearson's product-moment correlation
## 
## data:  tiempo[conf == "SDD"] and carga[conf == "SDD"]
## t = 28.334, df = 10, p-value = 1
## alternative hypothesis: true correlation is less than 0
## 95 percent confidence interval:
##  -1.0000000  0.9979347
## sample estimates:
##       cor 
## 0.9938293
## 
##  Pearson's product-moment correlation
## 
## data:  tiempo[conf == "HDD"] and carga[conf == "HDD"]
## t = 12.024, df = 11, p-value = 1
## alternative hypothesis: true correlation is less than 0
## 95 percent confidence interval:
##  -1.0000000  0.9871297
## sample estimates:
##       cor 
## 0.9640003

    Disco duro tipo SDD:

    El valor de cor = 0.99 lo que nos indica una muy fuerte correlación positiva entre carga y tiempo para este tipo de disco duro, es decir, entre la variable carga aumenta, el tiempo también aumenta.

    Ahora bien, con respecto al p-valor=1 como es mayor al 0.05 no hay suficiente evidencia para rechazar la hipótesis nula, así que se acepta la hipótesis nula. Esto quiere decir que la probabilidad de observar una correlación tan fuerte por azar es muy alta.

    Disco duro tipo HDD:

    El valor de cor = 0.96 lo que nos indica una muy fuerte correlación positiva entre carga y tiempo para este tipo de disco duro, es decir, entre la variable carga aumenta, el tiempo también aumenta.

    Ahora bien, con respecto al p-valor=1 como es mayor al 0.05 no hay suficiente evidencia para rechazar la hipótesis nula, así que se acepta la hipótesis nula. Esto quiere decir que la probabilidad de observar una correlación tan fuerte por azar es muy alta.

    1. Ajuste 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. Evalúe la bondad de ajuste de este modelo e interprete los resultados obtenidos.

Modelo 1

## 
## Call:
## lm(formula = tiempo ~ carga, data = data)
## 
## Coefficients:
## (Intercept)        carga  
##     0.04838      0.49214
## Analysis of Variance Table
## 
## Response: tiempo
##           Df Sum Sq Mean Sq F value    Pr(>F)    
## carga      1 47.313  47.313  138.84 3.177e-11 ***
## Residuals 23  7.838   0.341                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Call:
## lm(formula = tiempo ~ carga, data = data)
## 
## 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

    Interpretación Modelo 1

    Se construye un primer modelo lineal que me indica el tiempo en función de la variable carga. El modelo de regresión lineal estimado es: tiempo= 0.04838 + 0.49214(carga)

    El coeficiente de la variable carga es 0.49214, lo que significa que por cada unidad de aumento en la carga, se espera un aumento de 0.49214 en el tiempo.

    Ahora bien, El ANOVA muestra que el modelo es significativo con un valor p muy pequeño; lo que indica que la variable carga tiene un efecto significativo sobre la variable respuesta de tiempo.

    Según la gráfica, el modelo funciona, es decir, se ajusta a un modelo lineal.

    Ahora se va a verificar la forma de los residuos para confirmar lo que dice el modelo.

    El valor p es muy pequeño, lo que indica un efecto significativo en la predicción de la variable respuesta (tiempo).

    El coeficiente de R-cuadrado ajustado es 0.8517, lo que sugiere que la variable tiempo puede ser explicada por el modelo.

## [1] 47.94816
    1. Obtenga un nuevo modelo (Modelo 2) en el que incluya el tipo de disco (Variable Dummy) y su interacción con la carga del equipo. Evalué la bondad de ajuste del nuevo modelo, e interprete los coeficientes del Modelo 2. Recom. Note que la pendiente y el intercepto no son los mismos para los dos tipos de discos

    Modelo 2

## 
## Call:
## lm(formula = tiempo ~ carga * conf, data = data)
## 
## Coefficients:
##   (Intercept)          carga        confHDD  carga:confHDD  
##       -1.3755         0.7198         2.2639        -0.3573
## Analysis of Variance Table
## 
## Response: tiempo
##            Df Sum Sq Mean Sq  F value    Pr(>F)    
## carga       1 47.313  47.313 584.8051 < 2.2e-16 ***
## conf        1  0.357   0.357   4.4132   0.04791 *  
## carga:conf  1  5.782   5.782  71.4618 3.364e-08 ***
## Residuals  21  1.699   0.081                       
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Call:
## lm(formula = tiempo ~ carga * conf, data = data)
## 
## 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 ***
## confHDD        2.26391    0.26520   8.536 2.86e-08 ***
## carga:confHDD -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

    Interpretación Modelo 2

    Se construye unmodelo multivariado que indica la relación entre carga y tiempo cuando conf es 0, o sea, disco SDD.

    El modelo es: tiempo = -1.3755 + 0.7198(carga) + 2.2639 (conf) - 0.3573(carga*conf)

    Ahora bien, El ANOVA muestra que el modelo es significativo con un valor p muy pequeño para carga y carga x conf lo que indica que estas variables tienen un efecto significativo sobre la variable respuesta de tiempo. Ahora bien, el p-valor de conf si bien es menor 0.05 aporta en menor proporción que las dos variables anteriores

    Ahora se va a verificar la forma de los residuos para confirmar lo que dice el modelo.

    El valor p es muy pequeño para todas las variables del modelo, lo que indica un efecto significativo en la predicción de la variable respuesta (tiempo).

    El coeficiente de R-cuadrado ajustado es 0.96, lo que sugiere que la variable tiempo puede ser explicada por el modelo.

    1. Mediante el test ANOVA correspondiente, pruebe 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.
## 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

    Como se evidencia en el Test Anova al comparar los dos modelos el p-valor es pequeño; por tanto se rechaza la Ho y lo que indica que el modelo 2 explica mejor los datos que el modelo 1.

    1. Represente gráficamente el ajuste del Modelo 2 y evalúe el cumplimiento de los supuestos sobre el termino error.

## 
##  One Sample t-test
## 
## data:  residuos
## 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
## 
##  studentized Breusch-Pagan test
## 
## data:  Modelo2
## BP = 2.6825, df = 3, p-value = 0.4432
## 
##  Durbin-Watson test
## 
## data:  Modelo2
## DW = 1.3285, p-value = 0.03421
## alternative hypothesis: true autocorrelation is greater than 0
## 
##  Shapiro-Wilk normality test
## 
## data:  residuos
## W = 0.92407, p-value = 0.06348
## [1] 13.72568

    Según las gráficas y los resultados de p-valor para las diferentes pruebas de hipótesis se evidencia:

    1. Hay residuos sigue un patrón y otro datos con irregularidades. La media es diferente de 0.
    2. Hay poca homogeneidad de varianzas.Así que hay varianza en la predicción.
    3. Hay presencia de correlación.
    4. No hay errores atípicos significativos.

    Finalmente, al comparar los dos modelos: el AIC del modelo 2 es 13.72, en comparación al modelo 1 que es 47.94.

    1. Concluya de forma general.

    El modelo 2 tiene un coeficiente de R-cuadrado ajustado mejor con 0.96, o sea que explica mejor el modelo.

    Para estimar el rendimiento del tiempo según la carga es necesario incluir al tipo de disco. El tipo de disco que mejor respuesta tiene según el modelo es el HDD.

Ejercicio 2: Seguros

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 (accidentes.xlsx): Acc : Exp : Edad : Pot : Sexo : haber tenido algún accidente en el último año (0:no; 1:sí). años de experiencia. edad del conductor. potencia del motor. 1 (mujer), 2 (hombre).

  1. Con herramientas del análisis exploratorio, estudie la asociación entre la siniestralidad y el conjunto de variables predictoras (Edad, Experiencia, Potencia del motor y Sexo).

Análisis exploratorio

## [[1]]
## NULL
## 
## [[2]]
## NULL
## 
## [[3]]
## NULL

    1. Utilice la función glm, del software R, para ajustar los siguientes modelos de regresión logística: Modelo 1: Acc ~ Exp Modelo 2: Acc ~ Exp + genero Represente gráficamente el ajuste de los 2 modelos (observados vs predichos).

  1. Escriba las ecuaciones de pronóstico asociadas a los 2 modelos.
## 
## Call:
## glm(formula = Acc ~ Exp, family = "binomial")
## 
## 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
## 
## Call:
## glm(formula = Acc ~ Exp + Sexo, family = "binomial")
## 
## 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 * 
## SexoM         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
  1. A través de indicadores de bondad de ajuste (incluyendo Deviance, AIC, la curva ROC, el AUC y los test de razón de verosimilitud correspondientes), evalúe y compare el ajuste de los 2 modelos anteriores.
##                AIC deviance        R2
## Modelo1_2 44.00583 40.00583 0.1631205
##                AIC deviance        R2
## Modelo2_2 35.24875 29.24875 0.3881471
## 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
## 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 **
## Sexo  1  10.7571        32     29.249 0.001039 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Setting levels: control = No, case = Sí
## Setting direction: controls < cases
## 
## Call:
## roc.default(response = data2$Acc, predictor = Prob1_2, auc = TRUE,     ci = TRUE)
## 
## Data: Prob1_2 in 20 controls (data2$Acc No) < 15 cases (data2$Acc Sí).
## Area under the curve: 0.7983
## 95% CI: 0.6297-0.967 (DeLong)

## Setting levels: control = No, case = Sí
## Setting direction: controls < cases
## 
## Call:
## roc.default(response = data2$Acc, predictor = Prob2_2, auc = TRUE,     ci = TRUE)
## 
## Data: Prob2_2 in 20 controls (data2$Acc No) < 15 cases (data2$Acc Sí).
## Area under the curve: 0.8683
## 95% CI: 0.7507-0.986 (DeLong)

El modelo 2 con AIC (35.24) disminuye con respecto al modelo 1 (44.00).

En cuanto al ROC, el AUC del modelo 2 (0.86) también es mejor que del model 1 (0.79)

En el test de verosimilitud al analizar los p-valor, para cada modelo se rechaza la hipótesis nula; lo que permite afirmar que los datos para cada modelo tiene similitud y los datos se adecuan al modelo.

Por tanto, se selecciona el modelo 2.

  1. Seleccione el mejor de los modelos anteriores, interprete los coeficientes estimados y valide su significancia.
## Waiting for profiling to be done...
##                   Coef      2.5 %      97.5 %
## (Intercept)  0.8890341 -1.3776790  3.64897083
## Exp         -0.2399985 -0.5285605 -0.04017264
## SexoM        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
## SexoM       19.817589 3.0932200 267.3097416

Como se observa los e-beta de Exp están entre 0.58 y 0.96, es decir, que son menores a 1. Por tanto, el incremento en x lleva a un disminución en la probabilidad de y. En otras palabras, el incremento en la edad para cualquiera de los dos sexos lleva a una disminución de la probabilidad de acciedentes.

  1. Para el modelo seleccionado en el punto v. evalúe los indicadores de bondad de clasificación (luego de identificar el mejor punto de corte).
## Setting levels: control = No, case = Sí
## Setting direction: controls < cases
## 
## Call:
## roc.default(response = data2$Acc, predictor = Prob2_2, auc = TRUE,     ci = TRUE)
## 
## Data: Prob2_2 in 20 controls (data2$Acc No) < 15 cases (data2$Acc Sí).
## Area under the curve: 0.8683
## 95% CI: 0.7507-0.986 (DeLong)

## Confusion Matrix and Statistics
## 
##           Reference
## Prediction No Sí
##         No 20  6
##         Sí  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 : Sí              
## 

El punto de corte del modelo 2 despúes de realizar el ROC y AUC es 0.845.

El modelo me indica que tiene: Especificidad de 1, por tanto es capaz de clasificar perfectamente los verdaderos negativos, es decir, lo que no se accidentan de acuerdo con la experiencia y sexo. Sensibilidad del 0.6, es capaza de clasificar en un 60% los verdaderos positivos, es decir, los que que si se accidentan de acuerdo con experiencia y sexo.

Por tanto, es un modelo más específico que sensible.

  1. Determine si existe una mejora significativa en el modelo seleccionado, cuando se adicionan las variables edad y potencia del motor.

Realmente las variables entre sí no tienen una relación signficativa.

## The following objects are masked from data2 (pos = 3):
## 
##     Acc, Edad, Exp, Pot, Sexo
## 
## Call:
## glm(formula = Acc ~ ., family = "binomial", data = data2)
## 
## 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 *
## SexoM         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
## Analysis of Deviance Table
## 
## Model 1: Acc ~ Exp + Sexo
## Model 2: Acc ~ Exp + Edad + Pot + Sexo
##   Resid. Df Resid. Dev Df Deviance  Pr(>Chi)    
## 1        32     29.249                          
## 2        30     12.700  2   16.549 0.0002549 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Setting levels: control = No, case = Sí
## Setting direction: controls < cases
## 
## Call:
## roc.default(response = data2$Acc, predictor = Prob_SAT, auc = TRUE,     ci = TRUE)
## 
## Data: Prob_SAT in 20 controls (data2$Acc No) < 15 cases (data2$Acc Sí).
## Area under the curve: 0.9667
## 95% CI: 0.9054-1 (DeLong)

## Confusion Matrix and Statistics
## 
##           Reference
## Prediction No Sí
##         No 19  1
##         Sí  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 : Sí             
## 

Teniendo en cuenta los resultados del modelo saturado, se puede concluir que este es mejor que el modelo 2, puesto que: AIC disminuye a 22.7, en el Anova el p-valor es pequeño, por tanto se rechaza Ho.

Además,los indicadores de bonda de clasificación del modelo saturado son: Especificidad de 0.95, por tanto es capaz de clasificar casi perfectamente los verdaderos negativos, es decir, los que no se accidentan de acuerdo con la experiencia, sexo, edad y potencia. Sensibilidad del 0.93, es capaza de clasificar en un 93% los verdaderos positivos, es decir, los que que sí se accidentan de acuerdo con todas las variables:experiencia, sexo, edad y potencia.

  1. Haciendo uso de sus habilidades de modelación, genera un breve reporte de sus hallazgos en el cual oriente a la compañía sobre los factores que afectan la siniestralidad.

Los hallazgos prinicipales para al Compañía de seguros son: 1. La potencia del motor es la variable que según el análisis exploratorio y el modelo saturado explica mejor la accidentalidad. 2.Si bien la edad y la experiencia tienen relación entre ellas, no explican por completo la accidentalidad, pues presentan varios datos atípicos. 3. Finalmente, las mujeres tienden a accidentarse menos que los hombres según el modelo y el análisis exploratorio.