PUNTO 1

  1. Seleccionar 3 variables categóricas (distintas de rotación) y 3 variables cuantitativas, que consideren estén relacionadas con la rotación. Nota: Justificar por que estas variables están relacionadas y que tipo de relación se espera (Hipótesis). Ejemplo: Se espera que las horas extra se relacionen con la rotación ya que las personas podrían desgastarse mas al trabajar horas extra y descuidan aspectos personales. La hipótesis es que las personas que trabajan horas extra tienen mayor posibilidad de rotar que las que no trabajan extra. (serian 6, una por variable).
library(readxl)
datos_rotacion = read_excel("C:/Users/Luisa/Desktop/metodos estadisticos para toma de decisiones/Unidad 3/Datos_Rotación.xlsx")

attach(datos_rotacion)
names(datos_rotacion)
##  [1] "Rotación"                    "Edad"                       
##  [3] "Viaje de Negocios"           "Departamento"               
##  [5] "Distancia_Casa"              "Educación"                  
##  [7] "Campo_Educación"             "Satisfacción_Ambiental"     
##  [9] "Genero"                      "Cargo"                      
## [11] "Satisfación_Laboral"         "Estado_Civil"               
## [13] "Ingreso_Mensual"             "Trabajos_Anteriores"        
## [15] "Horas_Extra"                 "Porcentaje_aumento_salarial"
## [17] "Rendimiento_Laboral"         "Años_Experiencia"           
## [19] "Capacitaciones"              "Equilibrio_Trabajo_Vida"    
## [21] "Antigüedad"                  "Antigüedad_Cargo"           
## [23] "Años_ultima_promoción"       "Años_acargo_con_mismo_jefe"
# Categoricas

# 1.Viaje de Negocios:Si se viaja demasiado puede que haga que las personas quieran irse, ya que no permitiria para muchos tener vida social y en el caso de tener familias probablemente descuidarlas.
# 2.Horas Extras: la personas pueden estar rotando porque no tienen suficiente horas extras.
# 3.Estado civil: dependiendo del trabajo puede que una persona soltera que no tenga obligaciones decida rotar mas hasta que encuentre un lugar que le llame mas la atencion y cumpla con sus expectativas.


# Cuantitativas.

# 1.Distancia casa: si una persona vive muy lejos de la compañia y esta se gasta gran cantidad de tiempo en el viaje, ademas de que la empresa no le paga biaticos, entonces para una situacion de estas, puede existir bastante rotacion debido al costo-beneficio.
# 2.Ingreso mensual:probablemente el ingreso mensual no era suficiente para cubrir necesidades y decide irse a buscar mejores oportunidades.
# 3.% Aumento salarial: la persona lleva tiempo en la compañia y cuando revisa sus ingresos en diferentes años, nota que el aumento que ha tenido en su salario es muy poco para el trabajo que debe realizar.
  1. Realizar un análisis univariado (caracterización). Nota: Los indicadores o gráficos se usan dependiendo del tipo de variable (cuanti o cuali). Incluir interpretaciones de la rotación.
require(ggplot2)
require(ggpubr)

attach(datos_rotacion)



#Variables Caategoricas:

# Interpretacion: Logramos ver que en esta compañia, los empleados en su mayoria viajan raramente. Tambien que la mayoria no tiene horas extras y que una gran cantidad de trabajadores estan casados.

g1_viaje=ggplot(datos_rotacion,aes(x=`Viaje de Negocios`))+geom_bar()+theme_bw()+theme(axis.text.x = element_text(angle = 90))

g2_horas=ggplot(datos_rotacion,aes(x=Horas_Extra))+geom_bar()+theme_bw()

g3_estado=ggplot(datos_rotacion,aes(x=Estado_Civil))+geom_bar()+theme_bw()


graf_cat=ggarrange(g1_viaje, g2_horas, g3_estado,labels = c("A", "B","C"), ncol = 3, nrow = 1)

graf_cat

#Variables Cuantitativas:

# Interpretacion: para las variables cuantitativas, se noto que: Las personas que trabajan en la compañia viven en su mayoria cerca de la empresa y estas reciben aproximadamente de 0 a 15% de aumento en el salario. Ademas que en promedio los trabajodores ganan 6 millones y medio.

g1_distancia= ggplot(datos_rotacion,aes(x=Distancia_Casa))+geom_histogram()+theme_bw()

g2_ingreso= ggplot(datos_rotacion,aes(x=Ingreso_Mensual))+geom_histogram()+theme_bw()

ingreso_promedio= round(mean(datos_rotacion$Ingreso_Mensual),0)
ingreso_promedio
## [1] 6503
g3_aumento_salario= ggplot(datos_rotacion,aes(x=Porcentaje_aumento_salarial))+geom_histogram()+theme_bw()


graf_cual=ggarrange(g1_distancia, g2_ingreso, g3_aumento_salario,labels = c("D", "E","F"), ncol = 3, nrow = 1)

graf_cual

# Interpretacion: Para empezar podemos ver que dentro de la rotación,la cantidad de personas que rotaron fue mucho menor a las que no. En la tabla nos muestra que entre el total de las personas solo un 16% roto.

g_rotacion=ggplot(datos_rotacion,aes(x=Rotación))+geom_bar()+theme_bw()
g_rotacion

round(prop.table(table(datos_rotacion$Rotación))*100,digits = 0)
## 
## No Si 
## 84 16
  1. Realizar un análisis de bivariado en donde la variable respuesta sea la rotación codificada de la siguiente manera (y=1 es si rotación, y=0 es no rotación), con base en estos resultados identifique cuales son las variables determinantes de la rotación e interpretar el signo del coeficiente estimado. Compare estos resultados con la hipotesis planteada en el punto 2.
attach(datos_rotacion)

datos_rotacion$y=as.numeric(datos_rotacion$Rotación=="Si")

require(CGPfunctions)
require(ggpubr)
require(plotly)

#Variables Categoricas

# Interpretacion:


# 1. Se vio claramente que las personas que viajan mas son las que deciden rotar y esto se noto con la grafica donde se muestra como hay aumento en las rotaciones cuando hay mas viajes.
# 2.Se vio que las personas que si tienen horas extras tienden a rotar mas que las personas que no tienen las mismas.
# 3. Se vio que las personas solteras rotan mucho mas que las persona que estan casadas o divorcidas, ya que en estas dos ultimas no se encuentra una importante diferencia.


datos_rotacion$Viaje_de_Negocios=factor(datos_rotacion$`Viaje de Negocios`,levels = c("Frecuentemente","Raramente","No_Viaja"))

tabla1=table(datos_rotacion$`Viaje de Negocios`,datos_rotacion$Rotación)

round(prop.table(tabla1,margin = 1)*100,0)
##                 
##                  No Si
##   Frecuentemente 75 25
##   No_Viaja       92  8
##   Raramente      85 15
g1_rot_viaje=PlotXTabs2(datos_rotacion,`Viaje de Negocios`,  y, plottype = "percent" )
g2_rot_horas=PlotXTabs2(datos_rotacion,Horas_Extra,  y, plottype = "percent" )
g3_rot_estado=PlotXTabs2(datos_rotacion,Estado_Civil,  y, plottype = "percent" )

g1_rot_viaje

g2_rot_horas

g3_rot_estado  

#Variables Cuantitativas

# Interpretacion:

# 1.En el caso de la variable rotación contra la distancia en donde la persona vive, si se logro diferenciar que las personas entre mas lejos viven tambien deciden irse de la compañia.
# 2.se muestra como la variable de ingreso mensual, si influye en la decision de rotacion para las personas, ya que se ve que para quienes estan ganando menos, son quienes han rotado. Lo que comprueba la primera hipotesis que se realizo.
# 3.En caso de la variable rotación relacionada con el % en el aumento del salario, la hipotesis no se muestra claramente en la grafica, ya que las diferencias entre las personas que rotaron y no rotaron no es muy grande, lo que nos puede decir que para el caso de la rotación el porcentaje en el aumento salarial, no es una variable significativa en el analisis.



g1_rot_distancia=ggplot(datos_rotacion,aes(x=y, y=Distancia_Casa, fill=Rotación))+geom_boxplot()+theme_bw()

g2_rot_ingreso=ggplot(datos_rotacion,aes(x=y, y=Ingreso_Mensual, fill=Rotación))+geom_boxplot()+theme_bw()

g3_rot_salario=ggplot(datos_rotacion,aes(x=y, y=Porcentaje_aumento_salarial, fill=Rotación))+geom_boxplot()+theme_bw()+ylab("%Aumento salario")

g1_rot_distancia

g2_rot_ingreso

g3_rot_salario

4.Realizar la estimación de un modelo de regresión logistico en el cual la variable respuesta es rotación (y=1 es si rotación, y=0 es no rotación) y las covariables las 6 seleccionadas. Interprete los coeficientes del modelo y la significancia de los parametros.

attach(datos_rotacion)

#Variables Cuantitativas
# Interpretacion: 

# 1.Si la distancia es mas grande entonces hay mayor posibilidad de rotar. 
# 2.A mayor ingreso hay menos posibilidad que los empleados roten.
# 3.Si el aumento del salario es mayor, la posibilidad de rotacion es menor.

#Variables Categoricas
# Interpretacion:

# 1.Si el trabajador no viaja o viaja raramente, es mas probable que este no rote.
# 2. Si los trabajadores tienen mas horas extra, la probabilidad de que estos roten es mayor.
# 3. Si el trabajador esta divorciado hay mas posibilidades de que este decida no rotar.
# 4. Si el trabajador es soltero hay mayor posibilidad de que el mismo rote.

mod1_rotacion=glm(y~Distancia_Casa+Ingreso_Mensual+Porcentaje_aumento_salarial+Viaje_de_Negocios+Horas_Extra+Estado_Civil,data = datos_rotacion,family = "binomial")
mod1_rotacion
## 
## Call:  glm(formula = y ~ Distancia_Casa + Ingreso_Mensual + Porcentaje_aumento_salarial + 
##     Viaje_de_Negocios + Horas_Extra + Estado_Civil, family = "binomial", 
##     data = datos_rotacion)
## 
## Coefficients:
##                 (Intercept)               Distancia_Casa  
##                  -1.3386232                    0.0320273  
##             Ingreso_Mensual  Porcentaje_aumento_salarial  
##                  -0.0001335                   -0.0132273  
##  Viaje_de_NegociosRaramente    Viaje_de_NegociosNo_Viaja  
##                  -0.6033788                   -1.3049766  
##               Horas_ExtraSi       Estado_CivilDivorciado  
##                   1.4460795                   -0.2726669  
##         Estado_CivilSoltero  
##                   0.9115714  
## 
## Degrees of Freedom: 1469 Total (i.e. Null);  1461 Residual
## Null Deviance:       1299 
## Residual Deviance: 1095  AIC: 1113
#Interpretacion significancia de paramentros: Se logro ver que todas las variables son significantivas a excepcion de la variable de aumento salarial y el estado civil de divorciado.
summary(mod1_rotacion)
## 
## Call:
## glm(formula = y ~ Distancia_Casa + Ingreso_Mensual + Porcentaje_aumento_salarial + 
##     Viaje_de_Negocios + Horas_Extra + Estado_Civil, family = "binomial", 
##     data = datos_rotacion)
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -1.4747  -0.5981  -0.4068  -0.2390   3.0773  
## 
## Coefficients:
##                               Estimate Std. Error z value Pr(>|z|)    
## (Intercept)                 -1.339e+00  4.020e-01  -3.330 0.000869 ***
## Distancia_Casa               3.203e-02  9.198e-03   3.482 0.000498 ***
## Ingreso_Mensual             -1.335e-04  2.309e-05  -5.782 7.37e-09 ***
## Porcentaje_aumento_salarial -1.323e-02  2.121e-02  -0.624 0.532887    
## Viaje_de_NegociosRaramente  -6.034e-01  1.791e-01  -3.370 0.000753 ***
## Viaje_de_NegociosNo_Viaja   -1.305e+00  3.501e-01  -3.728 0.000193 ***
## Horas_ExtraSi                1.446e+00  1.569e-01   9.219  < 2e-16 ***
## Estado_CivilDivorciado      -2.727e-01  2.293e-01  -1.189 0.234361    
## Estado_CivilSoltero          9.116e-01  1.702e-01   5.356 8.50e-08 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 1298.6  on 1469  degrees of freedom
## Residual deviance: 1095.4  on 1461  degrees of freedom
## AIC: 1113.4
## 
## Number of Fisher Scoring iterations: 5
  1. Evaluar el poder predictivo del modelo con base en la curva ROC y el AUC.
attach(datos_rotacion)

#ROC

library(ROCR)

prediccion_1= predict.glm(mod1_rotacion, newdata = datos_rotacion, type = "response")
resultado_1=table(datos_rotacion$y, ifelse(prediccion_1>0.2,1,0))
resultado_1
##    
##       0   1
##   0 971 262
##   1  86 151
prediccion_rotacion= ROCR::prediction(prediccion_1,datos_rotacion$y)
perf= performance(prediction.obj = prediccion_rotacion, "tpr", "fpr")

plot(perf)
abline(a = 0, b = 1,col="red")
grid()

#AUC

AUC_1= performance(prediccion_rotacion,measure = "auc")@y.values[[1]]
cat("AUC: ",AUC_1,"n")
## AUC:  0.7666492 n
#Interpretacion: El Área bajo la curva de 0.77 indica que el modelo es aceptable y puede servir para predecir.
  1. Predeccir la probabilidad de que un individuo (hipotetico) rote y defina un corte para decidir si se debe intervenir a este empleado o no (posible estrategia para motivar al empleado).
attach(datos_rotacion)

# Viaja: Frecuentemente.
# Horas extras: si.
# Estado civil: Soltero.
# Distancia casa: 30.
# Ingreso mensual: 2000.
# %Aumento salarial:11


nueva_data1 <- data.frame(Viaje_de_Negocios= "Frecuentemente", Horas_Extra= "Si", Estado_Civil="Soltero", Distancia_Casa=30, Ingreso_Mensual=2000, Porcentaje_aumento_salarial=11 )
nueva_data1$Probabilidad <- predict(mod1_rotacion, newdata = nueva_data1, type = "response")
nueva_data1
Viaje_de_Negocios Horas_Extra Estado_Civil Distancia_Casa Ingreso_Mensual Porcentaje_aumento_salarial Probabilidad
Frecuentemente Si Soltero 30 2000 11 0.8273979
# Interpretacion: El corte que defini para mi modelo es el del 60% por lo que se debe intervenir al empleado para motivar al mismo y que este decida no rotar, es decir que con las condiciones propuestas anteriormente nos da una probabilidad del 83% aproximadamente. Lo que nos asegura que el empleado decida rotar. Para este caso se deben realizar ajustes al mismo para mejorar su condicion laboral.

#Estrategias


# Brindar la opcion de trabajo remoto para que esta persona no tenga que viajar largas distancias. 
# Ofrecerle mejores beneficios en cuanto a ingresos y distribuir la carga laboral de una mejor manera.
# Aumento de capacitaciones para que esta persona crezca personal y profesionalmente, creando asi un sentido de pertenencia con la compañia.
# Brindarle la oportunidad de participar en actividades recreativas.
  1. En las conclusiones se discute sobre cual seria la estrategia para disminuir la rotación en la empresa (con base en las variables que resultaron significativas en el punto 3). Ejemplo: Mejorar el ambiente laboral, los incentivos económicos, distribuir la carga de horas extra (menos turnos y mas personal).
##ESTRATEGIAS.

# Redistribución de carga laboral.
# Creación de modelo de trabajo remoto para personas que viven alejadas a la compañia.
# Mejores incentivos economicos.
# Aumento de capacitaciones para que las personas crezcan personal y profesionalmente, creando asi un sentido de pertenencia con la compañia.
# Creación de actividades recreativas para los trabajadores.

Punto 2

Con base en los datos de créditos proponga un modelo de regresión logístico múltiple que permita predecir el riesgo de default en función de las covariables que considere importantes y seleccionándolas de acuerdo con un proceso adecuado. Tenga en cuenta realizar una evaluación de la significancia de los parámetros, interpretación y proponga un método de evaluación por medio de validación cruzada. Presente métricas apropiadas como el AUC y la curva ROC.

library(readxl)
datos_credito <- read_excel("C:/Users/Luisa/Desktop/metodos estadisticos para toma de decisiones/Unidad 3/Datos_Creditos.xlsx")

datos_credito$DEFAULT = as.factor(datos_credito$DEFAULT)

attach(datos_credito)

#Modelo de Regresión Logistico Multiple.

mod1_credito=glm(DEFAULT~EDAD+INGRESOS+ANTIUEDAD+CUOTA_TOTAL,data = datos_credito,family = "binomial")
mod1_credito
## 
## Call:  glm(formula = DEFAULT ~ EDAD + INGRESOS + ANTIUEDAD + CUOTA_TOTAL, 
##     family = "binomial", data = datos_credito)
## 
## Coefficients:
## (Intercept)         EDAD     INGRESOS    ANTIUEDAD  CUOTA_TOTAL  
##  -3.193e+00    2.229e-02   -2.615e-07   -4.616e-02    1.013e-06  
## 
## Degrees of Freedom: 779 Total (i.e. Null);  775 Residual
## Null Deviance:       309.7 
## Residual Deviance: 287.5     AIC: 297.5
summary(mod1_credito)
## 
## Call:
## glm(formula = DEFAULT ~ EDAD + INGRESOS + ANTIUEDAD + CUOTA_TOTAL, 
##     family = "binomial", data = datos_credito)
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -0.9181  -0.3672  -0.2873  -0.1917   3.1332  
## 
## Coefficients:
##               Estimate Std. Error z value Pr(>|z|)    
## (Intercept) -3.193e+00  9.306e-01  -3.431 0.000601 ***
## EDAD         2.229e-02  1.932e-02   1.154 0.248641    
## INGRESOS    -2.615e-07  1.057e-07  -2.474 0.013348 *  
## ANTIUEDAD   -4.616e-02  2.353e-02  -1.961 0.049849 *  
## CUOTA_TOTAL  1.013e-06  2.473e-07   4.098 4.16e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 309.68  on 779  degrees of freedom
## Residual deviance: 287.49  on 775  degrees of freedom
## AIC: 297.49
## 
## Number of Fisher Scoring iterations: 6
# Interpretacion:

# 1. Según lo visto con el modelo, podemos decir que la unica variable que no es significativa es la de la edad, lo mismo que la antiguedad. Por otro lado, nos muestra que aunque los ingresos son importantes, lo que es mas determinante dentro del modelo es la cuota que las personas pagan por el credito.

# 2. Se puede decir tambien que: si la edad es mayor, el riesgo de default seria mas alto. Entre mas alto sean los ingresos hay menos posibilidad de default, lo mismo con la antiguedad, entre mas antiguedad menor posibilidad de default. En cuanto a la cuota, entre esta sea mas alta, hay mayor probabilidad de default.


#Correlacion

library(GGally)
library(dplyr)

ggpairs(select_if(datos_credito, is.numeric), lower = list(continuous = "smooth"), diag = list(continuous = "barDiag"), axisLabels = "none")

# Interpretacion: De acuerdo a la correlacion podemos ver que puede existir multicolinealidad entre la variable de edad y antiguedad, por lo que se realizara un analisis para saber que variable no deberia estar dentro del modelo.



# Modelo mejorado
mod1_credito_mejorado = step(mod1_credito)
## Start:  AIC=297.49
## DEFAULT ~ EDAD + INGRESOS + ANTIUEDAD + CUOTA_TOTAL
## 
##               Df Deviance    AIC
## - EDAD         1   288.79 296.79
## <none>             287.49 297.49
## - ANTIUEDAD    1   291.28 299.28
## - INGRESOS     1   294.76 302.76
## - CUOTA_TOTAL  1   304.34 312.34
## 
## Step:  AIC=296.78
## DEFAULT ~ INGRESOS + ANTIUEDAD + CUOTA_TOTAL
## 
##               Df Deviance    AIC
## <none>             288.79 296.79
## - ANTIUEDAD    1   291.37 297.37
## - INGRESOS     1   295.61 301.61
## - CUOTA_TOTAL  1   304.95 310.95
mod1_credito_mejorado
## 
## Call:  glm(formula = DEFAULT ~ INGRESOS + ANTIUEDAD + CUOTA_TOTAL, family = "binomial", 
##     data = datos_credito)
## 
## Coefficients:
## (Intercept)     INGRESOS    ANTIUEDAD  CUOTA_TOTAL  
##  -2.244e+00   -2.542e-07   -2.817e-02    9.860e-07  
## 
## Degrees of Freedom: 779 Total (i.e. Null);  776 Residual
## Null Deviance:       309.7 
## Residual Deviance: 288.8     AIC: 296.8
summary(mod1_credito_mejorado)
## 
## Call:
## glm(formula = DEFAULT ~ INGRESOS + ANTIUEDAD + CUOTA_TOTAL, family = "binomial", 
##     data = datos_credito)
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -0.8147  -0.3724  -0.2868  -0.1938   3.1088  
## 
## Coefficients:
##               Estimate Std. Error z value Pr(>|z|)    
## (Intercept) -2.244e+00  3.933e-01  -5.707 1.15e-08 ***
## INGRESOS    -2.542e-07  1.059e-07  -2.400   0.0164 *  
## ANTIUEDAD   -2.817e-02  1.803e-02  -1.562   0.1183    
## CUOTA_TOTAL  9.860e-07  2.456e-07   4.014 5.96e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 309.68  on 779  degrees of freedom
## Residual deviance: 288.78  on 776  degrees of freedom
## AIC: 296.78
## 
## Number of Fisher Scoring iterations: 6
# Interpretacion: De acuerdo a lo que nos muestra el modelo mejorado debemos sacar la variable de edad ya que puede que exista multicolinealidad entre la variable de antiguedad y la de edad.
#Graficos
attach(datos_credito)
require(CGPfunctions)
require(ggpubr)
require(plotly)

#GRAFICO DEFAULT
g_default=ggplot(datos_credito,aes(x=DEFAULT))+geom_bar()+theme_bw()
g_default

round(prop.table(table(datos_credito$DEFAULT))*100,digits = 0)
## 
##  0  1 
## 95  5
# Interpretacion:Para empezar podemos ver que dentro del riesgo de default,la cantidad de personas con mayor riesgo son menores que las de menor riesgo. En la tabla nos muestra que entre el total de las personas solo un 5% tiene riesgo de default.



#GRAFICO ANALISIS UNIVARIADO

g1_edad= ggplot(datos_credito,aes(x=EDAD))+geom_histogram()+theme_bw()
g2_ingreso_c= ggplot(datos_credito,aes(x=INGRESOS))+geom_histogram()+theme_bw()

ingreso_promedio_credito= round(mean(datos_credito$INGRESOS),0)
ingreso_promedio_credito
## [1] 5366430
summary(INGRESOS)
##     Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
##   633825  3583324  5038962  5366430  6844098 22197021
g3_antiguedad= ggplot(datos_credito,aes(x=ANTIUEDAD))+geom_histogram()+theme_bw()

summary(ANTIUEDAD)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.2548  7.3767 15.1192 18.0353 30.6637 37.3178
g4_cuota= ggplot(datos_credito,aes(x=CUOTA_TOTAL))+geom_histogram()+theme_bw()

summary(CUOTA_TOTAL)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##     387  328516  694460  885206 1244126 6664588
graf_variables=ggarrange(g1_edad, g2_ingreso_c, g3_antiguedad,g4_cuota,labels = c("A", "B","C","D"), ncol = 2, nrow = 2)
graf_variables

# Interpretacion:

# 1.Para empezar podemos ver que, las personas con credito se encuentran en su mayoria en un rango de edad de entre 50 a 70 años.
# 2. Los ingresos promedio de las personas con credito son de $5.366.430.
# 3. La cuota total promedio de las personas es de $885.206.
# 4. En cuanto a la antiguedad con el credito se logra ver que en promedio las personas llevan con ellos 18 años.




#GRAFICO ANALISIS BIVARIADO.

g1_credito_ingresos=ggplot(datos_credito,aes(x=DEFAULT, y=INGRESOS, fill=DEFAULT))+geom_boxplot(outlier.colour = "red", outlier.shape = 1)+theme_bw()+geom_jitter(width = 0.1)
g1_credito_ingresos

g2_credito_antiguedad=ggplot(datos_credito,aes(x=DEFAULT, y=ANTIUEDAD, fill=DEFAULT))+geom_boxplot(outlier.colour = "red", outlier.shape = 1)+theme_bw()+geom_jitter(width = 0.1)
g2_credito_antiguedad

g3_credito_cuota=ggplot(datos_credito,aes(x=DEFAULT, y=CUOTA_TOTAL, fill=DEFAULT))+geom_boxplot(outlier.colour = "red", outlier.shape = 1)+theme_bw()+geom_jitter(width = 0.1)
g3_credito_cuota

g4_credito_edad=ggplot(datos_credito,aes(x=DEFAULT, y=EDAD, fill=DEFAULT))+geom_boxplot(outlier.colour = "red", outlier.shape = 1)+theme_bw()+geom_jitter(width = 0.1)
g4_credito_edad

# Interpretacion: Lo que nos muestran los graficos es que claramente el ingreso y la antiguedad si son bastante significativos, ya que entre menor sea el ingreso existe mayor default y entre mayor sea la antiguedad hay menor default.

ROC Y AUC

attach(datos_credito)

#ROC

library(ROCR)

prediccion_1credito= predict.glm(mod1_credito_mejorado, newdata = datos_credito, type = "response")
resultado_1credito=table(datos_credito$DEFAULT, ifelse(prediccion_1credito>0.2,1,0))
resultado_1credito
##    
##       0   1
##   0 738   3
##   1  38   1
prediccion_default= ROCR::prediction(prediccion_1credito,datos_credito$DEFAULT)
perf_credito= performance(prediction.obj = prediccion_default, "tpr", "fpr")

plot(perf_credito)
abline(a = 0, b = 1,col="red")
grid()

#AUC

AUC_1credito= performance(prediccion_default,measure = "auc")@y.values[[1]]
cat("AUC: ",AUC_1credito,"n")
## AUC:  0.6922385 n
#Interpretacion: <0.6 malo, 0.6-0.7 regular,0.7-0.8 aceptable, 0.8-0.9 bueno, y 1 es muy bueno.
# De acuerdo con el Área bajo la curva de 0.69 indica que el modelo es regular y no se recomendaría para realizar predicciones.