Queremos automatizar el proceso de toma de decisiones para la aprobación de líneas de crédito con garantía hipotecaria.
Se creará un modelo de puntuación de crédito empíricamente derivado y estadísticamente sólido.
El modelo se basará en los datos recopilados de solicitantes recientes que recibieron crédito a través del proceso actual de suscripción de préstamos.
El modelo debe ser lo suficientemente interpretable para proporcionar una razón para cualquier acción adversa (rechazos).
Aqui preparamos los datos OJO ## Carga y primera revisión de los datos
Revisamos los datos
inspect_types(data)
## # A tibble: 3 x 4
## type cnt pcnt col_name
## <chr> <int> <dbl> <list>
## 1 integer 6 46.2 <chr [6]>
## 2 numeric 5 38.5 <chr [5]>
## 3 character 2 15.4 <chr [2]>
str(data)
## 'data.frame': 5960 obs. of 13 variables:
## $ BAD : int 1 1 1 1 0 1 1 1 1 1 ...
## $ LOAN : int 1100 1300 1500 1500 1700 1700 1800 1800 2000 2000 ...
## $ MORTDUE: num 25860 70053 13500 NA 97800 ...
## $ VALUE : num 39025 68400 16700 NA 112000 ...
## $ REASON : chr "HomeImp" "HomeImp" "HomeImp" NA ...
## $ JOB : chr "Other" "Other" "Other" NA ...
## $ YOJ : num 10.5 7 4 NA 3 9 5 11 3 16 ...
## $ DEROG : int 0 0 0 NA 0 0 3 0 0 0 ...
## $ DELINQ : int 0 2 0 NA 0 0 2 0 2 0 ...
## $ CLAGE : num 94.4 121.8 149.5 NA 93.3 ...
## $ NINQ : int 1 0 1 NA 0 1 1 0 1 0 ...
## $ CLNO : int 9 14 10 NA 14 8 17 8 12 13 ...
## $ DEBTINC: num NA NA NA NA NA ...
glimpse(data)
## Observations: 5,960
## Variables: 13
## $ BAD <int> 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0,...
## $ LOAN <int> 1100, 1300, 1500, 1500, 1700, 1700, 1800, 1800, 2000, 2000,...
## $ MORTDUE <dbl> 25860, 70053, 13500, NA, 97800, 30548, 48649, 28502, 32700,...
## $ VALUE <dbl> 39025, 68400, 16700, NA, 112000, 40320, 57037, 43034, 46740...
## $ REASON <chr> "HomeImp", "HomeImp", "HomeImp", NA, "HomeImp", "HomeImp", ...
## $ JOB <chr> "Other", "Other", "Other", NA, "Office", "Other", "Other", ...
## $ YOJ <dbl> 10.5, 7.0, 4.0, NA, 3.0, 9.0, 5.0, 11.0, 3.0, 16.0, 18.0, 1...
## $ DEROG <int> 0, 0, 0, NA, 0, 0, 3, 0, 0, 0, NA, 0, 0, 0, 0, 0, 2, NA, 0,...
## $ DELINQ <int> 0, 2, 0, NA, 0, 0, 2, 0, 2, 0, NA, 1, 0, 0, 1, 1, 6, NA, 0,...
## $ CLAGE <dbl> 94.36667, 121.83333, 149.46667, NA, 93.33333, 101.46600, 77...
## $ NINQ <int> 1, 0, 1, NA, 0, 1, 1, 0, 1, 0, NA, 1, 2, 0, 0, 0, 1, NA, 1,...
## $ CLNO <int> 9, 14, 10, NA, 14, 8, 17, 8, 12, 13, NA, 9, 25, 24, 16, 8, ...
## $ DEBTINC <dbl> NA, NA, NA, NA, NA, 37.113614, NA, 36.884894, NA, NA, NA, N...
head(data)
## BAD LOAN MORTDUE VALUE REASON JOB YOJ DEROG DELINQ CLAGE NINQ CLNO
## 1 1 1100 25860 39025 HomeImp Other 10.5 0 0 94.36667 1 9
## 2 1 1300 70053 68400 HomeImp Other 7.0 0 2 121.83333 0 14
## 3 1 1500 13500 16700 HomeImp Other 4.0 0 0 149.46667 1 10
## 4 1 1500 NA NA <NA> <NA> NA NA NA NA NA NA
## 5 0 1700 97800 112000 HomeImp Office 3.0 0 0 93.33333 0 14
## 6 1 1700 30548 40320 HomeImp Other 9.0 0 0 101.46600 1 8
## DEBTINC
## 1 NA
## 2 NA
## 3 NA
## 4 NA
## 5 NA
## 6 37.11361
tail(data)
## BAD LOAN MORTDUE VALUE REASON JOB YOJ DEROG DELINQ CLAGE NINQ CLNO
## 5955 0 88900 48919 93371 DebtCon Other 15 0 1 205.6502 0 15
## 5956 0 88900 57264 90185 DebtCon Other 16 0 0 221.8087 0 16
## 5957 0 89000 54576 92937 DebtCon Other 16 0 0 208.6921 0 15
## 5958 0 89200 54045 92924 DebtCon Other 15 0 0 212.2797 0 15
## 5959 0 89800 50370 91861 DebtCon Other 14 0 0 213.8927 0 16
## 5960 0 89900 48811 88934 DebtCon Other 15 0 0 219.6010 0 16
## DEBTINC
## 5955 34.81826
## 5956 36.11235
## 5957 35.85997
## 5958 35.55659
## 5959 34.34088
## 5960 34.57152
summary(data)
## BAD LOAN MORTDUE VALUE
## Min. :0.0000 Min. : 1100 Min. : 2063 Min. : 8000
## 1st Qu.:0.0000 1st Qu.:11100 1st Qu.: 46276 1st Qu.: 66076
## Median :0.0000 Median :16300 Median : 65019 Median : 89236
## Mean :0.1995 Mean :18608 Mean : 73761 Mean :101776
## 3rd Qu.:0.0000 3rd Qu.:23300 3rd Qu.: 91488 3rd Qu.:119824
## Max. :1.0000 Max. :89900 Max. :399550 Max. :855909
## NA's :518 NA's :112
## REASON JOB YOJ DEROG
## Length:5960 Length:5960 Min. : 0.000 Min. : 0.0000
## Class :character Class :character 1st Qu.: 3.000 1st Qu.: 0.0000
## Mode :character Mode :character Median : 7.000 Median : 0.0000
## Mean : 8.922 Mean : 0.2546
## 3rd Qu.:13.000 3rd Qu.: 0.0000
## Max. :41.000 Max. :10.0000
## NA's :515 NA's :708
## DELINQ CLAGE NINQ CLNO
## Min. : 0.0000 Min. : 0.0 Min. : 0.000 Min. : 0.0
## 1st Qu.: 0.0000 1st Qu.: 115.1 1st Qu.: 0.000 1st Qu.:15.0
## Median : 0.0000 Median : 173.5 Median : 1.000 Median :20.0
## Mean : 0.4494 Mean : 179.8 Mean : 1.186 Mean :21.3
## 3rd Qu.: 0.0000 3rd Qu.: 231.6 3rd Qu.: 2.000 3rd Qu.:26.0
## Max. :15.0000 Max. :1168.2 Max. :17.000 Max. :71.0
## NA's :580 NA's :308 NA's :510 NA's :222
## DEBTINC
## Min. : 0.5245
## 1st Qu.: 29.1400
## Median : 34.8183
## Mean : 33.7799
## 3rd Qu.: 39.0031
## Max. :203.3121
## NA's :1267
Observamos que REASON y JOB son variables categóricas. Reemplazaremos los valores NA por un string “MISSING”, para que cuando transformemos los valores a factores, quede un nivel para los valores faltantes.
data_original=data
data$REASON[is.na(data$REASON)]="Missing"
data$JOB[is.na(data$JOB)]="Missing"
data$REASON=as.factor(data$REASON)
data$JOB=as.factor(data$JOB)
####REVISAR:¿Hay outliers?
inspect_na(data_original)
## # A tibble: 13 x 3
## col_name cnt pcnt
## <chr> <int> <dbl>
## 1 DEBTINC 1267 21.3
## 2 DEROG 708 11.9
## 3 DELINQ 580 9.73
## 4 MORTDUE 518 8.69
## 5 YOJ 515 8.64
## 6 NINQ 510 8.56
## 7 CLAGE 308 5.17
## 8 JOB 279 4.68
## 9 REASON 252 4.23
## 10 CLNO 222 3.72
## 11 VALUE 112 1.88
## 12 BAD 0 0
## 13 LOAN 0 0
inspect_na(data)
## # A tibble: 13 x 3
## col_name cnt pcnt
## <chr> <int> <dbl>
## 1 DEBTINC 1267 21.3
## 2 DEROG 708 11.9
## 3 DELINQ 580 9.73
## 4 MORTDUE 518 8.69
## 5 YOJ 515 8.64
## 6 NINQ 510 8.56
## 7 CLAGE 308 5.17
## 8 CLNO 222 3.72
## 9 VALUE 112 1.88
## 10 BAD 0 0
## 11 LOAN 0 0
## 12 REASON 0 0
## 13 JOB 0 0
Observamos que 9 de las 13 variables presentan valores faltantes. Asimismo, 2445 casos presentan datos faltantes. Para las variables categóricas, el 4,22% de la variable REASON y el 4.68% de la variable JOB tenian datos faltantes. El caso de DEBTINC es especialmente preocupante, pues es un valor faltante en el 21,3% de los casos
missing = filter(inspect_na(data),cnt>0)
missmap(data, col= c('white','grey') , main ='missmap of data')
Tratamos de observar algun otro patron en los datos faltantes:
Se toma la decisión de generar una categoria para los valores faltantes en las variables categoricas, y en las numericas transformalas en categóricas usando WOE binning, con la libreria Scorecard.
bins=NULL
for(i in missing$col_name){
bins = append(bins,woebin(data[,c(i,"BAD")], y = 'BAD'))
}
## [INFO] creating woe binning ...
## [INFO] creating woe binning ...
## [INFO] creating woe binning ...
## [INFO] creating woe binning ...
## [INFO] creating woe binning ...
## [INFO] creating woe binning ...
## [INFO] creating woe binning ...
## [INFO] creating woe binning ...
## [INFO] creating woe binning ...
data_woe = woebin_ply(data[,c("MORTDUE","VALUE","YOJ","DEROG","DELINQ","CLAGE","NINQ","CLNO","DEBTINC","BAD", "LOAN","REASON","JOB")], bins ) %>% as_tibble()
## [INFO] converting into woe values ...
str(data_woe)
## Classes 'tbl_df', 'tbl' and 'data.frame': 5960 obs. of 13 variables:
## $ BAD : int 1 1 1 1 0 1 1 1 1 1 ...
## $ LOAN : int 1100 1300 1500 1500 1700 1700 1800 1800 2000 2000 ...
## $ REASON : Factor w/ 3 levels "DebtCon","HomeImp",..: 2 2 2 3 2 2 2 2 2 2 ...
## $ JOB : Factor w/ 7 levels "Mgr","Missing",..: 4 4 4 2 3 4 4 4 4 6 ...
## $ DEBTINC_woe: num 1.88 1.88 1.88 1.88 1.88 ...
## $ DEROG_woe : num -0.221 -0.221 -0.221 -0.576 -0.221 ...
## $ DELINQ_woe : num -0.43 1.673 -0.43 -0.564 -0.43 ...
## $ MORTDUE_woe: num 0.3715 0.0124 0.3715 0.0319 -0.3771 ...
## $ YOJ_woe : num 0.08 -0.333 0.245 -0.545 0.245 ...
## $ NINQ_woe : num -0.0626 -0.2954 -0.0626 -0.3684 -0.2954 ...
## $ CLAGE_woe : num 0.344 0.344 0.344 0.308 0.344 ...
## $ CLNO_woe : num 0.623 -0.141 -0.141 0.23 -0.141 ...
## $ VALUE_woe : num 0.7752 -0.0891 0.7752 4.0975 -0.4624 ...
## - attr(*, ".internal.selfref")=<externalptr>
inspect_na(data_woe)
## # A tibble: 13 x 3
## col_name cnt pcnt
## <chr> <int> <dbl>
## 1 BAD 0 0
## 2 LOAN 0 0
## 3 REASON 0 0
## 4 JOB 0 0
## 5 DEBTINC_woe 0 0
## 6 DEROG_woe 0 0
## 7 DELINQ_woe 0 0
## 8 MORTDUE_woe 0 0
## 9 YOJ_woe 0 0
## 10 NINQ_woe 0 0
## 11 CLAGE_woe 0 0
## 12 CLNO_woe 0 0
## 13 VALUE_woe 0 0
summary(data_woe)
## BAD LOAN REASON JOB
## Min. :0.0000 Min. : 1100 DebtCon:3928 Mgr : 767
## 1st Qu.:0.0000 1st Qu.:11100 HomeImp:1780 Missing: 279
## Median :0.0000 Median :16300 Missing: 252 Office : 948
## Mean :0.1995 Mean :18608 Other :2388
## 3rd Qu.:0.0000 3rd Qu.:23300 ProfExe:1276
## Max. :1.0000 Max. :89900 Sales : 109
## Self : 193
## DEBTINC_woe DEROG_woe DELINQ_woe MORTDUE_woe
## Min. :-1.5106 Min. :-0.57598 Min. :-0.5644 Min. :-0.37710
## 1st Qu.:-1.5106 1st Qu.:-0.22079 1st Qu.:-0.4299 1st Qu.:-0.19160
## Median :-1.1663 Median :-0.22079 Median :-0.4299 Median : 0.01237
## Mean :-0.4943 Mean :-0.07684 Mean :-0.1234 Mean :-0.01680
## 3rd Qu.: 0.7299 3rd Qu.:-0.22079 3rd Qu.:-0.4299 3rd Qu.: 0.03186
## Max. : 1.8805 Max. : 1.30940 Max. : 1.6729 Max. : 0.37149
##
## YOJ_woe NINQ_woe CLAGE_woe CLNO_woe
## Min. :-0.55033 Min. :-0.36841 Min. :-0.818391 Min. :-0.50266
## 1st Qu.:-0.33291 1st Qu.:-0.29536 1st Qu.:-0.303563 1st Qu.:-0.14080
## Median : 0.08002 Median :-0.29536 Median : 0.009838 Median :-0.14080
## Mean :-0.02641 Mean :-0.04212 Mean :-0.074206 Mean :-0.02595
## 3rd Qu.: 0.24523 3rd Qu.: 0.26795 3rd Qu.: 0.343828 3rd Qu.: 0.08780
## Max. : 0.24523 Max. : 1.11319 Max. : 0.945192 Max. : 0.62319
##
## VALUE_woe
## Min. :-1.01542
## 1st Qu.:-0.46238
## Median :-0.08914
## Mean :-0.05448
## 3rd Qu.: 0.05520
## Max. : 4.09749
##
glimpse(data_woe)
## Observations: 5,960
## Variables: 13
## $ BAD <int> 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1...
## $ LOAN <int> 1100, 1300, 1500, 1500, 1700, 1700, 1800, 1800, 2000, 2...
## $ REASON <fct> HomeImp, HomeImp, HomeImp, Missing, HomeImp, HomeImp, H...
## $ JOB <fct> Other, Other, Other, Missing, Office, Other, Other, Oth...
## $ DEBTINC_woe <dbl> 1.880533, 1.880533, 1.880533, 1.880533, 1.880533, -1.16...
## $ DEROG_woe <dbl> -0.2207900, -0.2207900, -0.2207900, -0.5759797, -0.2207...
## $ DELINQ_woe <dbl> -0.4299469, 1.6728610, -0.4299469, -0.5643720, -0.42994...
## $ MORTDUE_woe <dbl> 0.37148892, 0.01237060, 0.37148892, 0.03185905, -0.3770...
## $ YOJ_woe <dbl> 0.08001654, -0.33291270, 0.24523224, -0.54541700, 0.245...
## $ NINQ_woe <dbl> -0.06255769, -0.29536441, -0.06255769, -0.36841461, -0....
## $ CLAGE_woe <dbl> 0.3438278, 0.3438278, 0.3438278, 0.3080728, 0.3438278, ...
## $ CLNO_woe <dbl> 0.6231919, -0.1408016, -0.1408016, 0.2298365, -0.140801...
## $ VALUE_woe <dbl> 0.77522339, -0.08914024, 0.77522339, 4.09749351, -0.462...
MEJORAR: miramos la correlacion de las variables numericas, para los casos completos.
Revisar si hay multicolinealidad Sospecho de multicolinealidad entre mortdue y value
BAD es nuestra variable resultado: “1 = applicant defaulted on loan or seriously delinquent; 0 = applicant paid loan”.
Observamos que la ocurrencia de no pago del credito es aproximadamente del 20% de los casos en la muestra. Este desbalance puede causar algunos problemas de reducción de precision en los modelos, por lo que trataremos de balancear la muestra usando undersampling
table(data$BAD)
##
## 0 1
## 4771 1189
prop.table(table(data$BAD))
##
## 0 1
## 0.8005034 0.1994966
roc_auc_test <- function(model, data_test){
mod_predictions = predict(model, newdata=data_test, type="response") # Generar predicciones con el modelo
mod_rocpred = prediction(mod_predictions, data_test$BAD) # Comparar la prediccion con la data de TEST
mod_ROCRperf = performance(mod_rocpred, measure = "tpr", x.measure = "fpr") # Calcular el performance ROC
mod_AUCperf = performance(mod_rocpred, measure = "auc") # Calcular el performance AUC
mod_AUCperf = mod_AUCperf@y.values[[1]] # Extraer area bajo la curva
cat(c("AUC Performance: ", mod_AUCperf))
return(c(mod_ROCRperf,mod_AUCperf))
}
Entrenaremos un modelo con todas las variables, sin tratamiento de valores faltantes, para tener una referencia de un modelo a mejorar.
set.seed(1234)
do_complete=data_raw[complete.cases(data_raw),]
trainIndex = createDataPartition(do_complete$BAD, p=0.8, list=FALSE)
data_trainA = do_complete[trainIndex,]
data_testA = do_complete[-trainIndex,]
mod_complete_cases = glm(BAD~.,family=binomial,data=data_trainA)
mod_complete_cases[["terms"]][[3]]
## LOAN + MORTDUE + VALUE + REASON + JOB + YOJ + DEROG + DELINQ +
## CLAGE + NINQ + CLNO + DEBTINC
summary(mod_complete_cases)
##
## Call:
## glm(formula = BAD ~ ., family = binomial, data = data_trainA)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -1.8525 -0.3975 -0.2802 -0.1841 3.5823
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -4.845e+00 5.303e-01 -9.135 < 2e-16 ***
## LOAN -2.558e-05 9.809e-06 -2.608 0.00911 **
## MORTDUE -3.938e-06 3.917e-06 -1.005 0.31470
## VALUE 4.125e-06 3.374e-06 1.222 0.22158
## REASONHomeImp -1.565e-01 1.824e-01 -0.858 0.39092
## JOBOffice -7.314e-01 3.034e-01 -2.411 0.01592 *
## JOBOther -1.907e-01 2.315e-01 -0.824 0.40987
## JOBProfExe -2.410e-01 2.678e-01 -0.900 0.36817
## JOBSales 1.233e+00 4.877e-01 2.529 0.01145 *
## JOBSelf 5.676e-01 4.837e-01 1.173 0.24063
## YOJ -9.516e-03 1.157e-02 -0.822 0.41086
## DEROG 7.780e-01 1.169e-01 6.658 2.77e-11 ***
## DELINQ 7.789e-01 7.741e-02 10.063 < 2e-16 ***
## CLAGE -6.173e-03 1.250e-03 -4.938 7.88e-07 ***
## NINQ 1.311e-01 4.138e-02 3.168 0.00154 **
## CLNO -9.222e-03 9.091e-03 -1.014 0.31039
## DEBTINC 1.020e-01 1.157e-02 8.814 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 1641.4 on 2691 degrees of freedom
## Residual deviance: 1224.1 on 2675 degrees of freedom
## AIC: 1258.1
##
## Number of Fisher Scoring iterations: 6
roc_auc_test(mod_complete_cases, data_testA)
## AUC Performance: 0.730160601149254
## [[1]]
## An object of class "performance"
## Slot "x.name":
## [1] "False positive rate"
##
## Slot "y.name":
## [1] "True positive rate"
##
## Slot "alpha.name":
## [1] "Cutoff"
##
## Slot "x.values":
## [[1]]
## [1] 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
## [7] 0.000000000 0.001620746 0.003241491 0.003241491 0.004862237 0.006482982
## [13] 0.008103728 0.008103728 0.008103728 0.008103728 0.008103728 0.008103728
## [19] 0.009724473 0.009724473 0.009724473 0.009724473 0.011345219 0.012965964
## [25] 0.014586710 0.014586710 0.016207455 0.017828201 0.019448947 0.021069692
## [31] 0.022690438 0.024311183 0.025931929 0.027552674 0.027552674 0.029173420
## [37] 0.029173420 0.029173420 0.030794165 0.032414911 0.034035656 0.035656402
## [43] 0.037277147 0.038897893 0.040518639 0.042139384 0.043760130 0.045380875
## [49] 0.047001621 0.048622366 0.050243112 0.051863857 0.053484603 0.055105348
## [55] 0.056726094 0.056726094 0.058346840 0.059967585 0.061588331 0.061588331
## [61] 0.063209076 0.064829822 0.064829822 0.066450567 0.068071313 0.068071313
## [67] 0.069692058 0.071312804 0.072933549 0.074554295 0.076175041 0.077795786
## [73] 0.079416532 0.081037277 0.082658023 0.084278768 0.085899514 0.087520259
## [79] 0.089141005 0.090761750 0.092382496 0.094003241 0.095623987 0.097244733
## [85] 0.098865478 0.100486224 0.102106969 0.103727715 0.105348460 0.106969206
## [91] 0.108589951 0.110210697 0.111831442 0.113452188 0.115072934 0.116693679
## [97] 0.116693679 0.118314425 0.119935170 0.121555916 0.123176661 0.124797407
## [103] 0.126418152 0.128038898 0.129659643 0.129659643 0.129659643 0.131280389
## [109] 0.132901135 0.134521880 0.136142626 0.137763371 0.139384117 0.141004862
## [115] 0.142625608 0.142625608 0.144246353 0.145867099 0.147487844 0.149108590
## [121] 0.150729335 0.152350081 0.153970827 0.155591572 0.155591572 0.157212318
## [127] 0.158833063 0.160453809 0.162074554 0.163695300 0.165316045 0.166936791
## [133] 0.168557536 0.170178282 0.171799028 0.173419773 0.175040519 0.176661264
## [139] 0.178282010 0.179902755 0.181523501 0.183144246 0.184764992 0.186385737
## [145] 0.188006483 0.189627229 0.191247974 0.192868720 0.194489465 0.196110211
## [151] 0.197730956 0.199351702 0.200972447 0.202593193 0.204213938 0.205834684
## [157] 0.207455429 0.209076175 0.209076175 0.210696921 0.212317666 0.213938412
## [163] 0.215559157 0.217179903 0.217179903 0.218800648 0.220421394 0.222042139
## [169] 0.223662885 0.225283630 0.226904376 0.228525122 0.230145867 0.231766613
## [175] 0.231766613 0.233387358 0.235008104 0.236628849 0.238249595 0.239870340
## [181] 0.241491086 0.243111831 0.244732577 0.246353323 0.247974068 0.249594814
## [187] 0.251215559 0.252836305 0.254457050 0.256077796 0.257698541 0.259319287
## [193] 0.260940032 0.262560778 0.264181524 0.265802269 0.267423015 0.269043760
## [199] 0.270664506 0.272285251 0.273905997 0.275526742 0.277147488 0.278768233
## [205] 0.280388979 0.282009724 0.283630470 0.285251216 0.286871961 0.288492707
## [211] 0.290113452 0.290113452 0.291734198 0.293354943 0.294975689 0.296596434
## [217] 0.298217180 0.299837925 0.301458671 0.303079417 0.304700162 0.306320908
## [223] 0.307941653 0.309562399 0.311183144 0.312803890 0.314424635 0.316045381
## [229] 0.317666126 0.319286872 0.320907618 0.322528363 0.324149109 0.325769854
## [235] 0.327390600 0.329011345 0.330632091 0.332252836 0.333873582 0.335494327
## [241] 0.337115073 0.338735818 0.340356564 0.340356564 0.341977310 0.343598055
## [247] 0.345218801 0.346839546 0.348460292 0.350081037 0.351701783 0.353322528
## [253] 0.354943274 0.356564019 0.358184765 0.359805511 0.361426256 0.363047002
## [259] 0.364667747 0.366288493 0.366288493 0.367909238 0.367909238 0.369529984
## [265] 0.369529984 0.371150729 0.372771475 0.372771475 0.374392220 0.376012966
## [271] 0.377633712 0.379254457 0.380875203 0.382495948 0.384116694 0.385737439
## [277] 0.387358185 0.387358185 0.388978930 0.390599676 0.392220421 0.393841167
## [283] 0.395461912 0.397082658 0.397082658 0.397082658 0.398703404 0.400324149
## [289] 0.401944895 0.403565640 0.405186386 0.406807131 0.408427877 0.410048622
## [295] 0.411669368 0.413290113 0.414910859 0.416531605 0.418152350 0.419773096
## [301] 0.419773096 0.421393841 0.423014587 0.424635332 0.426256078 0.427876823
## [307] 0.429497569 0.431118314 0.432739060 0.434359806 0.435980551 0.437601297
## [313] 0.439222042 0.440842788 0.442463533 0.444084279 0.445705024 0.447325770
## [319] 0.448946515 0.450567261 0.452188006 0.453808752 0.455429498 0.457050243
## [325] 0.458670989 0.460291734 0.461912480 0.463533225 0.465153971 0.466774716
## [331] 0.466774716 0.468395462 0.470016207 0.471636953 0.473257699 0.474878444
## [337] 0.476499190 0.478119935 0.479740681 0.481361426 0.482982172 0.484602917
## [343] 0.486223663 0.487844408 0.487844408 0.489465154 0.491085900 0.492706645
## [349] 0.494327391 0.495948136 0.497568882 0.497568882 0.499189627 0.500810373
## [355] 0.502431118 0.504051864 0.504051864 0.504051864 0.505672609 0.507293355
## [361] 0.508914100 0.510534846 0.512155592 0.513776337 0.515397083 0.517017828
## [367] 0.518638574 0.520259319 0.521880065 0.523500810 0.523500810 0.525121556
## [373] 0.526742301 0.528363047 0.529983793 0.531604538 0.533225284 0.534846029
## [379] 0.536466775 0.538087520 0.539708266 0.541329011 0.542949757 0.544570502
## [385] 0.546191248 0.547811994 0.549432739 0.549432739 0.551053485 0.552674230
## [391] 0.554294976 0.555915721 0.557536467 0.559157212 0.560777958 0.562398703
## [397] 0.564019449 0.565640194 0.567260940 0.568881686 0.570502431 0.572123177
## [403] 0.573743922 0.575364668 0.576985413 0.578606159 0.580226904 0.581847650
## [409] 0.583468395 0.585089141 0.586709887 0.588330632 0.589951378 0.591572123
## [415] 0.593192869 0.594813614 0.596434360 0.598055105 0.599675851 0.601296596
## [421] 0.602917342 0.604538088 0.606158833 0.607779579 0.609400324 0.611021070
## [427] 0.612641815 0.614262561 0.615883306 0.617504052 0.619124797 0.620745543
## [433] 0.622366288 0.623987034 0.625607780 0.627228525 0.628849271 0.630470016
## [439] 0.632090762 0.633711507 0.635332253 0.636952998 0.638573744 0.640194489
## [445] 0.641815235 0.643435981 0.645056726 0.646677472 0.648298217 0.648298217
## [451] 0.649918963 0.651539708 0.653160454 0.654781199 0.656401945 0.658022690
## [457] 0.659643436 0.661264182 0.662884927 0.664505673 0.666126418 0.667747164
## [463] 0.669367909 0.670988655 0.672609400 0.674230146 0.675850891 0.677471637
## [469] 0.679092382 0.680713128 0.682333874 0.683954619 0.685575365 0.687196110
## [475] 0.688816856 0.690437601 0.692058347 0.693679092 0.695299838 0.696920583
## [481] 0.698541329 0.700162075 0.701782820 0.703403566 0.705024311 0.706645057
## [487] 0.708265802 0.709886548 0.711507293 0.713128039 0.714748784 0.716369530
## [493] 0.717990276 0.719611021 0.721231767 0.722852512 0.724473258 0.726094003
## [499] 0.727714749 0.729335494 0.730956240 0.732576985 0.734197731 0.735818476
## [505] 0.737439222 0.739059968 0.740680713 0.742301459 0.742301459 0.743922204
## [511] 0.745542950 0.747163695 0.748784441 0.750405186 0.752025932 0.753646677
## [517] 0.755267423 0.756888169 0.758508914 0.760129660 0.760129660 0.761750405
## [523] 0.763371151 0.764991896 0.766612642 0.768233387 0.769854133 0.771474878
## [529] 0.773095624 0.774716370 0.776337115 0.777957861 0.779578606 0.781199352
## [535] 0.782820097 0.784440843 0.786061588 0.787682334 0.789303079 0.790923825
## [541] 0.792544571 0.794165316 0.795786062 0.797406807 0.799027553 0.800648298
## [547] 0.802269044 0.803889789 0.805510535 0.807131280 0.808752026 0.810372771
## [553] 0.811993517 0.813614263 0.815235008 0.816855754 0.818476499 0.820097245
## [559] 0.821717990 0.823338736 0.824959481 0.826580227 0.828200972 0.829821718
## [565] 0.831442464 0.833063209 0.834683955 0.836304700 0.837925446 0.839546191
## [571] 0.841166937 0.842787682 0.844408428 0.846029173 0.847649919 0.849270665
## [577] 0.850891410 0.852512156 0.854132901 0.855753647 0.857374392 0.858995138
## [583] 0.860615883 0.862236629 0.863857374 0.863857374 0.865478120 0.867098865
## [589] 0.868719611 0.870340357 0.871961102 0.873581848 0.875202593 0.876823339
## [595] 0.878444084 0.880064830 0.881685575 0.883306321 0.884927066 0.886547812
## [601] 0.888168558 0.889789303 0.891410049 0.893030794 0.894651540 0.896272285
## [607] 0.897893031 0.899513776 0.901134522 0.901134522 0.902755267 0.904376013
## [613] 0.905996759 0.907617504 0.909238250 0.910858995 0.912479741 0.914100486
## [619] 0.915721232 0.917341977 0.918962723 0.920583468 0.922204214 0.923824959
## [625] 0.925445705 0.927066451 0.927066451 0.928687196 0.930307942 0.931928687
## [631] 0.933549433 0.935170178 0.936790924 0.938411669 0.940032415 0.941653160
## [637] 0.943273906 0.944894652 0.946515397 0.948136143 0.949756888 0.951377634
## [643] 0.952998379 0.954619125 0.956239870 0.957860616 0.959481361 0.961102107
## [649] 0.962722853 0.964343598 0.965964344 0.967585089 0.969205835 0.970826580
## [655] 0.972447326 0.974068071 0.975688817 0.977309562 0.978930308 0.980551053
## [661] 0.982171799 0.983792545 0.985413290 0.987034036 0.988654781 0.990275527
## [667] 0.991896272 0.993517018 0.995137763 0.996758509 0.998379254 1.000000000
## [673] 1.000000000
##
##
## Slot "y.values":
## [[1]]
## [1] 0.00000000 0.01818182 0.03636364 0.05454545 0.07272727 0.09090909
## [7] 0.10909091 0.10909091 0.10909091 0.12727273 0.12727273 0.12727273
## [13] 0.12727273 0.14545455 0.16363636 0.18181818 0.20000000 0.21818182
## [19] 0.21818182 0.23636364 0.25454545 0.27272727 0.27272727 0.27272727
## [25] 0.27272727 0.29090909 0.29090909 0.29090909 0.29090909 0.29090909
## [31] 0.29090909 0.29090909 0.29090909 0.29090909 0.30909091 0.30909091
## [37] 0.32727273 0.34545455 0.34545455 0.34545455 0.34545455 0.34545455
## [43] 0.34545455 0.34545455 0.34545455 0.34545455 0.34545455 0.34545455
## [49] 0.34545455 0.34545455 0.34545455 0.34545455 0.34545455 0.34545455
## [55] 0.34545455 0.36363636 0.36363636 0.36363636 0.36363636 0.38181818
## [61] 0.38181818 0.38181818 0.40000000 0.40000000 0.40000000 0.41818182
## [67] 0.41818182 0.41818182 0.41818182 0.41818182 0.41818182 0.41818182
## [73] 0.41818182 0.41818182 0.41818182 0.41818182 0.41818182 0.41818182
## [79] 0.41818182 0.41818182 0.41818182 0.41818182 0.41818182 0.41818182
## [85] 0.41818182 0.41818182 0.41818182 0.41818182 0.41818182 0.41818182
## [91] 0.41818182 0.41818182 0.41818182 0.41818182 0.41818182 0.41818182
## [97] 0.43636364 0.43636364 0.43636364 0.43636364 0.43636364 0.43636364
## [103] 0.43636364 0.43636364 0.43636364 0.45454545 0.47272727 0.47272727
## [109] 0.47272727 0.47272727 0.47272727 0.47272727 0.47272727 0.47272727
## [115] 0.47272727 0.49090909 0.49090909 0.49090909 0.49090909 0.49090909
## [121] 0.49090909 0.49090909 0.49090909 0.49090909 0.50909091 0.50909091
## [127] 0.50909091 0.50909091 0.50909091 0.50909091 0.50909091 0.50909091
## [133] 0.50909091 0.50909091 0.50909091 0.50909091 0.50909091 0.50909091
## [139] 0.50909091 0.50909091 0.50909091 0.50909091 0.50909091 0.50909091
## [145] 0.50909091 0.50909091 0.50909091 0.50909091 0.50909091 0.50909091
## [151] 0.50909091 0.50909091 0.50909091 0.50909091 0.50909091 0.50909091
## [157] 0.50909091 0.50909091 0.52727273 0.52727273 0.52727273 0.52727273
## [163] 0.52727273 0.52727273 0.54545455 0.54545455 0.54545455 0.54545455
## [169] 0.54545455 0.54545455 0.54545455 0.54545455 0.54545455 0.54545455
## [175] 0.56363636 0.56363636 0.56363636 0.56363636 0.56363636 0.56363636
## [181] 0.56363636 0.56363636 0.56363636 0.56363636 0.56363636 0.56363636
## [187] 0.56363636 0.56363636 0.56363636 0.56363636 0.56363636 0.56363636
## [193] 0.56363636 0.56363636 0.56363636 0.56363636 0.56363636 0.56363636
## [199] 0.56363636 0.56363636 0.56363636 0.56363636 0.56363636 0.56363636
## [205] 0.56363636 0.56363636 0.56363636 0.56363636 0.56363636 0.56363636
## [211] 0.56363636 0.58181818 0.58181818 0.58181818 0.58181818 0.58181818
## [217] 0.58181818 0.58181818 0.58181818 0.58181818 0.58181818 0.58181818
## [223] 0.58181818 0.58181818 0.58181818 0.58181818 0.58181818 0.58181818
## [229] 0.58181818 0.58181818 0.58181818 0.58181818 0.58181818 0.58181818
## [235] 0.58181818 0.58181818 0.58181818 0.58181818 0.58181818 0.58181818
## [241] 0.58181818 0.58181818 0.58181818 0.60000000 0.60000000 0.60000000
## [247] 0.60000000 0.60000000 0.60000000 0.60000000 0.60000000 0.60000000
## [253] 0.60000000 0.60000000 0.60000000 0.60000000 0.60000000 0.60000000
## [259] 0.60000000 0.60000000 0.61818182 0.61818182 0.63636364 0.63636364
## [265] 0.65454545 0.65454545 0.65454545 0.67272727 0.67272727 0.67272727
## [271] 0.67272727 0.67272727 0.67272727 0.67272727 0.67272727 0.67272727
## [277] 0.67272727 0.69090909 0.69090909 0.69090909 0.69090909 0.69090909
## [283] 0.69090909 0.69090909 0.70909091 0.72727273 0.72727273 0.72727273
## [289] 0.72727273 0.72727273 0.72727273 0.72727273 0.72727273 0.72727273
## [295] 0.72727273 0.72727273 0.72727273 0.72727273 0.72727273 0.72727273
## [301] 0.74545455 0.74545455 0.74545455 0.74545455 0.74545455 0.74545455
## [307] 0.74545455 0.74545455 0.74545455 0.74545455 0.74545455 0.74545455
## [313] 0.74545455 0.74545455 0.74545455 0.74545455 0.74545455 0.74545455
## [319] 0.74545455 0.74545455 0.74545455 0.74545455 0.74545455 0.74545455
## [325] 0.74545455 0.74545455 0.74545455 0.74545455 0.74545455 0.74545455
## [331] 0.76363636 0.76363636 0.76363636 0.76363636 0.76363636 0.76363636
## [337] 0.76363636 0.76363636 0.76363636 0.76363636 0.76363636 0.76363636
## [343] 0.76363636 0.76363636 0.78181818 0.78181818 0.78181818 0.78181818
## [349] 0.78181818 0.78181818 0.78181818 0.80000000 0.80000000 0.80000000
## [355] 0.80000000 0.80000000 0.81818182 0.83636364 0.83636364 0.83636364
## [361] 0.83636364 0.83636364 0.83636364 0.83636364 0.83636364 0.83636364
## [367] 0.83636364 0.83636364 0.83636364 0.83636364 0.85454545 0.85454545
## [373] 0.85454545 0.85454545 0.85454545 0.85454545 0.85454545 0.85454545
## [379] 0.85454545 0.85454545 0.85454545 0.85454545 0.85454545 0.85454545
## [385] 0.85454545 0.85454545 0.85454545 0.87272727 0.87272727 0.87272727
## [391] 0.87272727 0.87272727 0.87272727 0.87272727 0.87272727 0.87272727
## [397] 0.87272727 0.87272727 0.87272727 0.87272727 0.87272727 0.87272727
## [403] 0.87272727 0.87272727 0.87272727 0.87272727 0.87272727 0.87272727
## [409] 0.87272727 0.87272727 0.87272727 0.87272727 0.87272727 0.87272727
## [415] 0.87272727 0.87272727 0.87272727 0.87272727 0.87272727 0.87272727
## [421] 0.87272727 0.87272727 0.87272727 0.87272727 0.87272727 0.87272727
## [427] 0.87272727 0.87272727 0.87272727 0.87272727 0.87272727 0.87272727
## [433] 0.87272727 0.87272727 0.87272727 0.87272727 0.87272727 0.87272727
## [439] 0.87272727 0.87272727 0.87272727 0.87272727 0.87272727 0.87272727
## [445] 0.87272727 0.87272727 0.87272727 0.87272727 0.87272727 0.89090909
## [451] 0.89090909 0.89090909 0.89090909 0.89090909 0.89090909 0.89090909
## [457] 0.89090909 0.89090909 0.89090909 0.89090909 0.89090909 0.89090909
## [463] 0.89090909 0.89090909 0.89090909 0.89090909 0.89090909 0.89090909
## [469] 0.89090909 0.89090909 0.89090909 0.89090909 0.89090909 0.89090909
## [475] 0.89090909 0.89090909 0.89090909 0.89090909 0.89090909 0.89090909
## [481] 0.89090909 0.89090909 0.89090909 0.89090909 0.89090909 0.89090909
## [487] 0.89090909 0.89090909 0.89090909 0.89090909 0.89090909 0.89090909
## [493] 0.89090909 0.89090909 0.89090909 0.89090909 0.89090909 0.89090909
## [499] 0.89090909 0.89090909 0.89090909 0.89090909 0.89090909 0.89090909
## [505] 0.89090909 0.89090909 0.89090909 0.89090909 0.90909091 0.90909091
## [511] 0.90909091 0.90909091 0.90909091 0.90909091 0.90909091 0.90909091
## [517] 0.90909091 0.90909091 0.90909091 0.90909091 0.92727273 0.92727273
## [523] 0.92727273 0.92727273 0.92727273 0.92727273 0.92727273 0.92727273
## [529] 0.92727273 0.92727273 0.92727273 0.92727273 0.92727273 0.92727273
## [535] 0.92727273 0.92727273 0.92727273 0.92727273 0.92727273 0.92727273
## [541] 0.92727273 0.92727273 0.92727273 0.92727273 0.92727273 0.92727273
## [547] 0.92727273 0.92727273 0.92727273 0.92727273 0.92727273 0.92727273
## [553] 0.92727273 0.92727273 0.92727273 0.92727273 0.92727273 0.92727273
## [559] 0.92727273 0.92727273 0.92727273 0.92727273 0.92727273 0.92727273
## [565] 0.92727273 0.92727273 0.92727273 0.92727273 0.92727273 0.92727273
## [571] 0.92727273 0.92727273 0.92727273 0.92727273 0.92727273 0.92727273
## [577] 0.92727273 0.92727273 0.92727273 0.92727273 0.92727273 0.92727273
## [583] 0.92727273 0.92727273 0.92727273 0.94545455 0.94545455 0.94545455
## [589] 0.94545455 0.94545455 0.94545455 0.94545455 0.94545455 0.94545455
## [595] 0.94545455 0.94545455 0.94545455 0.94545455 0.94545455 0.94545455
## [601] 0.94545455 0.94545455 0.94545455 0.94545455 0.94545455 0.94545455
## [607] 0.94545455 0.94545455 0.94545455 0.96363636 0.96363636 0.96363636
## [613] 0.96363636 0.96363636 0.96363636 0.96363636 0.96363636 0.96363636
## [619] 0.96363636 0.96363636 0.96363636 0.96363636 0.96363636 0.96363636
## [625] 0.96363636 0.96363636 0.98181818 0.98181818 0.98181818 0.98181818
## [631] 0.98181818 0.98181818 0.98181818 0.98181818 0.98181818 0.98181818
## [637] 0.98181818 0.98181818 0.98181818 0.98181818 0.98181818 0.98181818
## [643] 0.98181818 0.98181818 0.98181818 0.98181818 0.98181818 0.98181818
## [649] 0.98181818 0.98181818 0.98181818 0.98181818 0.98181818 0.98181818
## [655] 0.98181818 0.98181818 0.98181818 0.98181818 0.98181818 0.98181818
## [661] 0.98181818 0.98181818 0.98181818 0.98181818 0.98181818 0.98181818
## [667] 0.98181818 0.98181818 0.98181818 0.98181818 0.98181818 0.98181818
## [673] 1.00000000
##
##
## Slot "alpha.values":
## [[1]]
## [1] Inf 0.9999293221 0.9721298168 0.9667121870 0.9277615222
## [6] 0.8816243564 0.8484769858 0.7406981538 0.6910705076 0.6858129079
## [11] 0.6709038699 0.6494059255 0.6247875874 0.6149127323 0.6053373724
## [16] 0.5770214058 0.5724456419 0.5627020927 0.5482299852 0.4932567950
## [21] 0.4767996881 0.4092757001 0.4073887639 0.4071465683 0.4053019068
## [26] 0.3903691098 0.3837766042 0.3773918412 0.3588321807 0.3577447071
## [31] 0.3538475688 0.3485958431 0.3432111402 0.3378683504 0.3247552201
## [36] 0.3065368097 0.2983874978 0.2885987018 0.2866362389 0.2851727434
## [41] 0.2669234226 0.2654967284 0.2641416232 0.2620796134 0.2592932053
## [46] 0.2493175926 0.2369871020 0.2319574498 0.2287026689 0.2282189184
## [51] 0.2254231678 0.2210638750 0.2167219857 0.2114396420 0.2060955543
## [56] 0.2038605278 0.2001587578 0.1976238971 0.1951065498 0.1927402476
## [61] 0.1855776114 0.1839163428 0.1819823088 0.1752000792 0.1737208380
## [66] 0.1727952588 0.1653509078 0.1594456386 0.1590432298 0.1579834407
## [71] 0.1574444552 0.1574346149 0.1534926936 0.1516375795 0.1500387015
## [76] 0.1475994941 0.1456720030 0.1452050024 0.1426162942 0.1412688322
## [81] 0.1381125987 0.1377487186 0.1376808903 0.1373504377 0.1373069332
## [86] 0.1303904877 0.1302985799 0.1301876562 0.1293499739 0.1287362082
## [91] 0.1285359623 0.1275379443 0.1272229849 0.1266548867 0.1259246133
## [96] 0.1256079982 0.1251760445 0.1242735696 0.1229335891 0.1216058956
## [101] 0.1188992864 0.1177046060 0.1154196672 0.1147582185 0.1132343825
## [106] 0.1131286747 0.1130462985 0.1127414460 0.1122807205 0.1120149665
## [111] 0.1104071404 0.1103609778 0.1092932549 0.1078711431 0.1077767384
## [116] 0.1068144788 0.1065859444 0.1063347577 0.1062225739 0.1060384207
## [121] 0.1053206816 0.1050642771 0.1044504076 0.1041547274 0.1009533283
## [126] 0.1001999482 0.1000451546 0.0999741113 0.0992482348 0.0990456502
## [131] 0.0989251230 0.0974613484 0.0974463083 0.0970082690 0.0958342666
## [136] 0.0958316873 0.0956779147 0.0954988640 0.0947714527 0.0945194123
## [141] 0.0944646965 0.0943736012 0.0940756386 0.0924945261 0.0921954389
## [146] 0.0917664826 0.0917442721 0.0917288534 0.0915096996 0.0913507257
## [151] 0.0911225036 0.0903409416 0.0903299155 0.0896869381 0.0895802212
## [156] 0.0894991463 0.0889519143 0.0882542561 0.0881109899 0.0880678790
## [161] 0.0879377614 0.0877677053 0.0866360707 0.0860851573 0.0860464898
## [166] 0.0857824672 0.0857221148 0.0850125944 0.0849499905 0.0845303781
## [171] 0.0838096956 0.0837626903 0.0831617873 0.0825491273 0.0823924716
## [176] 0.0823795194 0.0821067751 0.0818455747 0.0815007279 0.0812797126
## [181] 0.0811781486 0.0810062309 0.0808660745 0.0808236881 0.0802553028
## [186] 0.0799083742 0.0792955282 0.0791397898 0.0789955920 0.0788005188
## [191] 0.0786596292 0.0786273008 0.0779040715 0.0777139756 0.0776173622
## [196] 0.0772654600 0.0772310227 0.0769890850 0.0767589963 0.0766663553
## [201] 0.0764379946 0.0760559553 0.0759980210 0.0758551760 0.0755613239
## [206] 0.0754975741 0.0752331494 0.0751748728 0.0749548749 0.0747520505
## [211] 0.0746540150 0.0742830012 0.0738446660 0.0737210561 0.0735842467
## [216] 0.0733837447 0.0727997240 0.0727770798 0.0726507726 0.0726304048
## [221] 0.0725346997 0.0723334687 0.0722566655 0.0720918113 0.0714070927
## [226] 0.0712741934 0.0708528758 0.0707643811 0.0707589739 0.0702878207
## [231] 0.0693071051 0.0692164503 0.0687690408 0.0683589380 0.0680479974
## [236] 0.0674891930 0.0674328256 0.0672048800 0.0670039818 0.0668222949
## [241] 0.0660984700 0.0658892132 0.0658677187 0.0655687938 0.0652172000
## [246] 0.0652053554 0.0643692979 0.0640040695 0.0637481052 0.0635733588
## [251] 0.0635666090 0.0632994464 0.0631925301 0.0630980677 0.0629992295
## [256] 0.0628187493 0.0627794853 0.0623603626 0.0620888639 0.0619839343
## [261] 0.0614727957 0.0612840703 0.0606918101 0.0600687028 0.0600601210
## [266] 0.0596712258 0.0595988295 0.0594544589 0.0593572586 0.0593530471
## [271] 0.0588965185 0.0586466327 0.0584006262 0.0583232554 0.0582818163
## [276] 0.0580992164 0.0577105602 0.0575716891 0.0574898363 0.0569777671
## [281] 0.0569151935 0.0566649375 0.0565758935 0.0565679207 0.0564147672
## [286] 0.0561870725 0.0560438218 0.0556032347 0.0551827364 0.0550130981
## [291] 0.0546311200 0.0546156254 0.0543010437 0.0539565812 0.0535246547
## [296] 0.0533173751 0.0531793522 0.0528770984 0.0522600514 0.0512164282
## [301] 0.0511360693 0.0509632326 0.0508600915 0.0504487893 0.0500594191
## [306] 0.0498254970 0.0497103281 0.0496899413 0.0495130554 0.0494988585
## [311] 0.0493389907 0.0492973902 0.0492169408 0.0492084457 0.0489044070
## [316] 0.0484438256 0.0481205462 0.0478094489 0.0468237970 0.0464916079
## [321] 0.0464291267 0.0463270092 0.0462715376 0.0462506940 0.0460571566
## [326] 0.0459167092 0.0458589683 0.0458542541 0.0458372801 0.0454967219
## [331] 0.0454100972 0.0454090261 0.0453187255 0.0452480166 0.0451890516
## [336] 0.0450943120 0.0450284718 0.0449286327 0.0449040013 0.0447853326
## [341] 0.0446316156 0.0442055437 0.0441667547 0.0440731740 0.0437643287
## [346] 0.0436399033 0.0435548424 0.0435537800 0.0435511746 0.0435037088
## [351] 0.0434603825 0.0433746047 0.0432393721 0.0431118902 0.0421011632
## [356] 0.0419775103 0.0419452283 0.0418805975 0.0415977316 0.0415263554
## [361] 0.0415183932 0.0414203131 0.0413024982 0.0409186420 0.0407739718
## [366] 0.0407638706 0.0407343371 0.0405551719 0.0405450176 0.0402309936
## [371] 0.0402011442 0.0398316746 0.0398253234 0.0397827513 0.0396872654
## [376] 0.0393733784 0.0392954418 0.0392947247 0.0385890514 0.0384385696
## [381] 0.0381279997 0.0379098508 0.0378084512 0.0377952517 0.0377260363
## [386] 0.0377144136 0.0376835898 0.0376761814 0.0375341613 0.0375099054
## [391] 0.0374652621 0.0373104077 0.0372982039 0.0370674588 0.0369367311
## [396] 0.0368450246 0.0367028320 0.0366934243 0.0364533692 0.0362736807
## [401] 0.0359452445 0.0359110425 0.0358046739 0.0353390371 0.0352559549
## [406] 0.0352477404 0.0350068353 0.0347874083 0.0346048022 0.0345844002
## [411] 0.0345140219 0.0344262037 0.0343893672 0.0343265347 0.0342401296
## [416] 0.0341673131 0.0335623744 0.0334190338 0.0332818988 0.0330423205
## [421] 0.0325460385 0.0322854554 0.0322788090 0.0322577784 0.0321385401
## [426] 0.0321337941 0.0320589098 0.0319913550 0.0319464923 0.0318039810
## [431] 0.0317272375 0.0316374828 0.0315844537 0.0314726178 0.0310653190
## [436] 0.0310506598 0.0308869070 0.0305959277 0.0305846454 0.0305608673
## [441] 0.0304913556 0.0304822369 0.0304484393 0.0304011450 0.0298976192
## [446] 0.0298580820 0.0297970553 0.0297514921 0.0296825856 0.0296495633
## [451] 0.0296035519 0.0295764528 0.0295268537 0.0294541308 0.0294007795
## [456] 0.0293024479 0.0292716044 0.0292640713 0.0287405396 0.0286157766
## [461] 0.0285358227 0.0285225505 0.0282513391 0.0280699532 0.0280315078
## [466] 0.0279431516 0.0279216592 0.0278216363 0.0276678975 0.0276223543
## [471] 0.0273556185 0.0271193193 0.0270315752 0.0269798075 0.0269247753
## [476] 0.0268000858 0.0266900974 0.0266726290 0.0265493788 0.0263076926
## [481] 0.0262572722 0.0260611986 0.0260504185 0.0259352040 0.0255793905
## [486] 0.0251249078 0.0251141765 0.0250903626 0.0246558046 0.0246352146
## [491] 0.0246340137 0.0245660969 0.0245205389 0.0245108000 0.0244466939
## [496] 0.0242677403 0.0239827208 0.0239342462 0.0236276084 0.0236063472
## [501] 0.0235432290 0.0234693470 0.0232223376 0.0232144358 0.0231931821
## [506] 0.0231680811 0.0231435832 0.0231399385 0.0228947325 0.0227942155
## [511] 0.0227423894 0.0227259876 0.0227205715 0.0226668927 0.0225678840
## [516] 0.0225437027 0.0224340420 0.0222531840 0.0221640005 0.0220433546
## [521] 0.0219744314 0.0219713590 0.0216349177 0.0215414479 0.0214508904
## [526] 0.0213547971 0.0213154939 0.0212710036 0.0208047143 0.0204382762
## [531] 0.0202218312 0.0200379206 0.0199919569 0.0199601468 0.0199335259
## [536] 0.0196708242 0.0194979297 0.0194308547 0.0189914219 0.0186772667
## [541] 0.0186337165 0.0186261526 0.0185342713 0.0185226285 0.0184673994
## [546] 0.0181085130 0.0180895588 0.0179754260 0.0178035750 0.0177019861
## [551] 0.0177006656 0.0174142940 0.0173155029 0.0171304772 0.0171005880
## [556] 0.0169886910 0.0167977968 0.0162285055 0.0162158300 0.0161359608
## [561] 0.0161130577 0.0159825148 0.0159667213 0.0159528574 0.0158912462
## [566] 0.0158193529 0.0157435673 0.0156684196 0.0155640010 0.0154973044
## [571] 0.0154613858 0.0153376885 0.0152607338 0.0152551316 0.0151096800
## [576] 0.0147649409 0.0146891730 0.0145807991 0.0145639674 0.0144835640
## [581] 0.0144681749 0.0142306420 0.0139695543 0.0135692941 0.0135526685
## [586] 0.0132317080 0.0130931737 0.0130545994 0.0129097333 0.0127149217
## [591] 0.0124396629 0.0121063059 0.0119829828 0.0119303155 0.0118910747
## [596] 0.0117945212 0.0116461663 0.0114799916 0.0114370025 0.0113547358
## [601] 0.0112163106 0.0108401220 0.0107627221 0.0106289061 0.0106217607
## [606] 0.0103912891 0.0103723508 0.0103105010 0.0102695511 0.0102302005
## [611] 0.0102071544 0.0101666456 0.0099785924 0.0098558982 0.0097446100
## [616] 0.0097173808 0.0096613522 0.0094842716 0.0093687606 0.0093619625
## [621] 0.0093322688 0.0092563303 0.0092054703 0.0092023875 0.0090914127
## [626] 0.0089001790 0.0088027528 0.0087452028 0.0087290834 0.0086960311
## [631] 0.0083462498 0.0082533779 0.0082099804 0.0079858328 0.0079216532
## [636] 0.0079109397 0.0077352727 0.0077137049 0.0076471380 0.0075562382
## [641] 0.0072867583 0.0071876208 0.0070643460 0.0069651641 0.0069053504
## [646] 0.0068890716 0.0067358315 0.0066541425 0.0066180822 0.0063323322
## [651] 0.0061992435 0.0060590994 0.0058285451 0.0057818172 0.0055806622
## [656] 0.0054926878 0.0052643749 0.0052112495 0.0049823739 0.0048910020
## [661] 0.0048490361 0.0044145800 0.0040883528 0.0039897091 0.0036595090
## [666] 0.0034415582 0.0031016719 0.0030629909 0.0010952773 0.0005104153
## [671] 0.0004230532 0.0004093324 0.0002251355
##
##
##
## [[2]]
## [1] 0.7301606
Hacemos selección de variables por inspección, eliminando iterativamente aquellas que no son (menor o igual a 0.05)
mod_ajustado1 = glm(BAD~LOAN + JOB + DEROG + DELINQ + CLAGE + NINQ + DEBTINC,family=binomial,data=data_trainA)
summary(mod_ajustado1)
##
## Call:
## glm(formula = BAD ~ LOAN + JOB + DEROG + DELINQ + CLAGE + NINQ +
## DEBTINC, family = binomial, data = data_trainA)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -1.7804 -0.3972 -0.2769 -0.1852 3.5719
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -4.994e+00 5.121e-01 -9.752 < 2e-16 ***
## LOAN -2.256e-05 8.769e-06 -2.573 0.01008 *
## JOBOffice -6.648e-01 2.980e-01 -2.231 0.02570 *
## JOBOther -1.388e-01 2.280e-01 -0.609 0.54261
## JOBProfExe -2.019e-01 2.627e-01 -0.769 0.44215
## JOBSales 1.264e+00 4.872e-01 2.595 0.00945 **
## JOBSelf 5.755e-01 4.719e-01 1.220 0.22258
## DEROG 7.584e-01 1.146e-01 6.615 3.72e-11 ***
## DELINQ 7.512e-01 7.406e-02 10.143 < 2e-16 ***
## CLAGE -6.550e-03 1.202e-03 -5.451 5.02e-08 ***
## NINQ 1.326e-01 4.059e-02 3.268 0.00108 **
## DEBTINC 9.997e-02 1.135e-02 8.808 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 1641.4 on 2691 degrees of freedom
## Residual deviance: 1228.4 on 2680 degrees of freedom
## AIC: 1252.4
##
## Number of Fisher Scoring iterations: 6
anova(mod_complete_cases,mod_ajustado1,test='Chi')
## Analysis of Deviance Table
##
## Model 1: BAD ~ LOAN + MORTDUE + VALUE + REASON + JOB + YOJ + DEROG + DELINQ +
## CLAGE + NINQ + CLNO + DEBTINC
## Model 2: BAD ~ LOAN + JOB + DEROG + DELINQ + CLAGE + NINQ + DEBTINC
## Resid. Df Resid. Dev Df Deviance Pr(>Chi)
## 1 2675 1224.1
## 2 2680 1228.4 -5 -4.3633 0.4984
Ahora construiremos un modelo para la data donde hemos: 1) creado un valor “Missing” para los factores con valores faltantes; y 2) apolicado Woe Binning para las variables númericas.
data_trainB = data_woe[trainIndex,]
data_testB = data_woe[-trainIndex,]
modB_completo = glm(BAD~.,family=binomial,data=data_trainB)
modB_completo[["terms"]][[3]]
## LOAN + REASON + JOB + DEBTINC_woe + DEROG_woe + DELINQ_woe +
## MORTDUE_woe + YOJ_woe + NINQ_woe + CLAGE_woe + CLNO_woe +
## VALUE_woe
summary(modB_completo)
##
## Call:
## glm(formula = BAD ~ ., family = binomial, data = data_trainB)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -3.14463 -0.40268 -0.21875 -0.08064 3.07447
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -9.643e-01 2.996e-01 -3.219 0.001287 **
## LOAN -1.087e-05 1.876e-05 -0.580 0.562163
## REASONHomeImp -3.094e-02 1.504e-01 -0.206 0.837003
## REASONMissing -2.538e-01 4.826e-01 -0.526 0.599004
## JOBMissing -2.435e+00 5.378e-01 -4.527 5.99e-06 ***
## JOBOffice -8.364e-01 2.681e-01 -3.120 0.001809 **
## JOBOther -7.984e-02 2.117e-01 -0.377 0.706040
## JOBProfExe -1.620e-01 2.414e-01 -0.671 0.502173
## JOBSales 1.184e-01 4.396e-01 0.269 0.787708
## JOBSelf 1.314e-01 4.270e-01 0.308 0.758330
## DEBTINC_woe 9.782e-01 4.683e-02 20.890 < 2e-16 ***
## DEROG_woe 8.472e-01 1.190e-01 7.117 1.10e-12 ***
## DELINQ_woe 7.854e-01 8.687e-02 9.041 < 2e-16 ***
## MORTDUE_woe 1.100e+00 3.196e-01 3.441 0.000579 ***
## YOJ_woe 7.477e-01 2.538e-01 2.946 0.003222 **
## NINQ_woe 1.968e-01 1.863e-01 1.057 0.290677
## CLAGE_woe 1.266e+00 1.442e-01 8.781 < 2e-16 ***
## CLNO_woe 9.583e-01 2.228e-01 4.301 1.70e-05 ***
## VALUE_woe 1.060e+00 1.378e-01 7.690 1.47e-14 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 2881.2 on 2691 degrees of freedom
## Residual deviance: 1505.6 on 2673 degrees of freedom
## AIC: 1543.6
##
## Number of Fisher Scoring iterations: 6
Hacemos seleccion de atributos con un método de selección step-wise, en ambas direcciones.
modB_nulo = glm(BAD~1,family=binomial,data=data_trainB)
step(modB_nulo,scope=list(upper=modB_completo), data=data_trainB, direction="both")
## Start: AIC=2883.15
## BAD ~ 1
##
## Df Deviance AIC
## + DEBTINC_woe 1 1993.8 1997.8
## + DELINQ_woe 1 2675.2 2679.2
## + VALUE_woe 1 2686.9 2690.9
## + DEROG_woe 1 2714.4 2718.4
## + CLAGE_woe 1 2755.5 2759.5
## + JOB 6 2792.3 2806.3
## + MORTDUE_woe 1 2809.0 2813.0
## + LOAN 1 2816.8 2820.8
## + NINQ_woe 1 2816.9 2820.9
## + CLNO_woe 1 2848.7 2852.7
## + YOJ_woe 1 2865.7 2869.7
## + REASON 2 2872.4 2878.4
## <none> 2881.2 2883.2
##
## Step: AIC=1997.84
## BAD ~ DEBTINC_woe
##
## Df Deviance AIC
## + DELINQ_woe 1 1880.8 1886.8
## + VALUE_woe 1 1881.7 1887.7
## + CLAGE_woe 1 1895.2 1901.2
## + DEROG_woe 1 1915.5 1921.5
## + JOB 6 1937.1 1953.1
## + MORTDUE_woe 1 1958.5 1964.5
## + CLNO_woe 1 1959.5 1965.5
## + YOJ_woe 1 1975.8 1981.8
## + NINQ_woe 1 1981.7 1987.7
## + LOAN 1 1986.7 1992.7
## + REASON 2 1989.1 1997.1
## <none> 1993.8 1997.8
## - DEBTINC_woe 1 2881.2 2883.2
##
## Step: AIC=1886.76
## BAD ~ DEBTINC_woe + DELINQ_woe
##
## Df Deviance AIC
## + VALUE_woe 1 1770.2 1778.2
## + CLAGE_woe 1 1772.4 1780.4
## + CLNO_woe 1 1833.3 1841.3
## + DEROG_woe 1 1833.3 1841.3
## + JOB 6 1832.0 1850.0
## + MORTDUE_woe 1 1843.1 1851.1
## + YOJ_woe 1 1864.1 1872.1
## + LOAN 1 1873.7 1881.7
## + NINQ_woe 1 1873.8 1881.8
## <none> 1880.8 1886.8
## + REASON 2 1877.4 1887.4
## - DELINQ_woe 1 1993.8 1997.8
## - DEBTINC_woe 1 2675.2 2679.2
##
## Step: AIC=1778.21
## BAD ~ DEBTINC_woe + DELINQ_woe + VALUE_woe
##
## Df Deviance AIC
## + CLAGE_woe 1 1669.6 1679.6
## + DEROG_woe 1 1708.8 1718.8
## + JOB 6 1709.7 1729.7
## + CLNO_woe 1 1737.4 1747.4
## + YOJ_woe 1 1744.5 1754.5
## + REASON 2 1755.9 1767.9
## + MORTDUE_woe 1 1758.5 1768.5
## + NINQ_woe 1 1760.4 1770.4
## + LOAN 1 1767.7 1777.7
## <none> 1770.2 1778.2
## - VALUE_woe 1 1880.8 1886.8
## - DELINQ_woe 1 1881.7 1887.7
## - DEBTINC_woe 1 2487.0 2493.0
##
## Step: AIC=1679.57
## BAD ~ DEBTINC_woe + DELINQ_woe + VALUE_woe + CLAGE_woe
##
## Df Deviance AIC
## + DEROG_woe 1 1606.2 1618.2
## + JOB 6 1606.3 1628.3
## + CLNO_woe 1 1646.3 1658.3
## + YOJ_woe 1 1653.0 1665.0
## + MORTDUE_woe 1 1654.3 1666.3
## + REASON 2 1655.2 1669.2
## + NINQ_woe 1 1663.0 1675.0
## <none> 1669.6 1679.6
## + LOAN 1 1669.3 1681.3
## - CLAGE_woe 1 1770.2 1778.2
## - VALUE_woe 1 1772.4 1780.4
## - DELINQ_woe 1 1789.0 1797.0
## - DEBTINC_woe 1 2363.7 2371.7
##
## Step: AIC=1618.17
## BAD ~ DEBTINC_woe + DELINQ_woe + VALUE_woe + CLAGE_woe + DEROG_woe
##
## Df Deviance AIC
## + JOB 6 1548.3 1572.3
## + CLNO_woe 1 1586.1 1600.1
## + MORTDUE_woe 1 1591.2 1605.2
## + YOJ_woe 1 1594.2 1608.2
## + REASON 2 1593.2 1609.2
## + NINQ_woe 1 1603.2 1617.2
## <none> 1606.2 1618.2
## + LOAN 1 1605.7 1619.7
## - DEROG_woe 1 1669.6 1679.6
## - DELINQ_woe 1 1693.2 1703.2
## - CLAGE_woe 1 1708.8 1718.8
## - VALUE_woe 1 1723.7 1733.7
## - DEBTINC_woe 1 2242.0 2252.0
##
## Step: AIC=1572.29
## BAD ~ DEBTINC_woe + DELINQ_woe + VALUE_woe + CLAGE_woe + DEROG_woe +
## JOB
##
## Df Deviance AIC
## + CLNO_woe 1 1527.5 1553.5
## + MORTDUE_woe 1 1537.5 1563.5
## + YOJ_woe 1 1539.1 1565.1
## <none> 1548.3 1572.3
## + NINQ_woe 1 1547.3 1573.3
## + LOAN 1 1547.8 1573.8
## + REASON 2 1547.0 1575.0
## - JOB 6 1606.2 1618.2
## - DEROG_woe 1 1606.3 1628.3
## - DELINQ_woe 1 1625.4 1647.4
## - CLAGE_woe 1 1653.1 1675.1
## - VALUE_woe 1 1682.0 1704.0
## - DEBTINC_woe 1 2159.6 2181.6
##
## Step: AIC=1553.47
## BAD ~ DEBTINC_woe + DELINQ_woe + VALUE_woe + CLAGE_woe + DEROG_woe +
## JOB + CLNO_woe
##
## Df Deviance AIC
## + MORTDUE_woe 1 1517.3 1545.3
## + YOJ_woe 1 1520.0 1548.0
## <none> 1527.5 1553.5
## + NINQ_woe 1 1525.8 1553.8
## + LOAN 1 1526.8 1554.8
## + REASON 2 1526.4 1556.4
## - CLNO_woe 1 1548.3 1572.3
## - JOB 6 1586.1 1600.1
## - DEROG_woe 1 1583.1 1607.1
## - DELINQ_woe 1 1611.7 1635.7
## - CLAGE_woe 1 1623.9 1647.9
## - VALUE_woe 1 1646.4 1670.4
## - DEBTINC_woe 1 2144.3 2168.3
##
## Step: AIC=1545.34
## BAD ~ DEBTINC_woe + DELINQ_woe + VALUE_woe + CLAGE_woe + DEROG_woe +
## JOB + CLNO_woe + MORTDUE_woe
##
## Df Deviance AIC
## + YOJ_woe 1 1507.5 1537.5
## <none> 1517.3 1545.3
## + NINQ_woe 1 1515.7 1545.7
## + LOAN 1 1517.1 1547.1
## + REASON 2 1516.4 1548.4
## - MORTDUE_woe 1 1527.5 1553.5
## - CLNO_woe 1 1537.5 1563.5
## - JOB 6 1573.0 1589.0
## - DEROG_woe 1 1573.7 1599.7
## - DELINQ_woe 1 1602.2 1628.2
## - VALUE_woe 1 1610.5 1636.5
## - CLAGE_woe 1 1616.7 1642.7
## - DEBTINC_woe 1 2120.7 2146.7
##
## Step: AIC=1537.46
## BAD ~ DEBTINC_woe + DELINQ_woe + VALUE_woe + CLAGE_woe + DEROG_woe +
## JOB + CLNO_woe + MORTDUE_woe + YOJ_woe
##
## Df Deviance AIC
## <none> 1507.5 1537.5
## + NINQ_woe 1 1506.3 1538.3
## + LOAN 1 1507.3 1539.3
## + REASON 2 1507.0 1541.0
## - YOJ_woe 1 1517.3 1545.3
## - MORTDUE_woe 1 1520.0 1548.0
## - CLNO_woe 1 1525.6 1553.6
## - JOB 6 1559.5 1577.5
## - DEROG_woe 1 1560.4 1588.4
## - DELINQ_woe 1 1593.3 1621.3
## - CLAGE_woe 1 1596.9 1624.9
## - VALUE_woe 1 1601.5 1629.5
## - DEBTINC_woe 1 2110.9 2138.9
##
## Call: glm(formula = BAD ~ DEBTINC_woe + DELINQ_woe + VALUE_woe + CLAGE_woe +
## DEROG_woe + JOB + CLNO_woe + MORTDUE_woe + YOJ_woe, family = binomial,
## data = data_trainB)
##
## Coefficients:
## (Intercept) DEBTINC_woe DELINQ_woe VALUE_woe CLAGE_woe DEROG_woe
## -1.11734 0.98918 0.79374 1.05244 1.28796 0.85495
## JOBMissing JOBOffice JOBOther JOBProfExe JOBSales JOBSelf
## -2.52369 -0.84130 -0.06617 -0.16659 0.12591 0.12786
## CLNO_woe MORTDUE_woe YOJ_woe
## 0.93919 1.12142 0.78138
##
## Degrees of Freedom: 2691 Total (i.e. Null); 2677 Residual
## Null Deviance: 2881
## Residual Deviance: 1507 AIC: 1537
modB_stepwise = glm(formula = BAD ~ DEBTINC_woe + DELINQ_woe + VALUE_woe + CLAGE_woe +
DEROG_woe + JOB + CLNO_woe + MORTDUE_woe + YOJ_woe, family = binomial,
data = data_trainB)
summary(modB_stepwise)
##
## Call:
## glm(formula = BAD ~ DEBTINC_woe + DELINQ_woe + VALUE_woe + CLAGE_woe +
## DEROG_woe + JOB + CLNO_woe + MORTDUE_woe + YOJ_woe, family = binomial,
## data = data_trainB)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -3.06296 -0.40091 -0.21940 -0.07617 3.06704
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -1.11734 0.18759 -5.956 2.58e-09 ***
## DEBTINC_woe 0.98918 0.04574 21.624 < 2e-16 ***
## DELINQ_woe 0.79374 0.08667 9.159 < 2e-16 ***
## VALUE_woe 1.05244 0.13429 7.837 4.61e-15 ***
## CLAGE_woe 1.28796 0.14316 8.997 < 2e-16 ***
## DEROG_woe 0.85495 0.11828 7.228 4.90e-13 ***
## JOBMissing -2.52369 0.51870 -4.865 1.14e-06 ***
## JOBOffice -0.84130 0.26783 -3.141 0.001683 **
## JOBOther -0.06617 0.21069 -0.314 0.753470
## JOBProfExe -0.16659 0.24119 -0.691 0.489764
## JOBSales 0.12591 0.43641 0.289 0.772955
## JOBSelf 0.12786 0.42361 0.302 0.762782
## CLNO_woe 0.93919 0.22101 4.250 2.14e-05 ***
## MORTDUE_woe 1.12142 0.31779 3.529 0.000417 ***
## YOJ_woe 0.78138 0.25191 3.102 0.001923 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 2881.2 on 2691 degrees of freedom
## Residual deviance: 1507.5 on 2677 degrees of freedom
## AIC: 1537.5
##
## Number of Fisher Scoring iterations: 6
ggplot(data = data, aes(x = factor(BAD), y = ..count.., fill = factor(BAD))) +
geom_bar() +
scale_fill_manual(values = c("gray50", "orangered2")) +
labs(title = "BAD (1 = Con mora; 0 = Préstamo pagado)") +
theme_bw() +
theme(legend.position = "bottom")
# Down sampling
data_woe.no = data_woe[data_woe$BAD==0,] #MUESTRA TODOS LOS VALORES BAD=0, sin BAD=1
muestra = sample(nrow(data_woe.no),nrow(data_woe[data_woe$BAD==1,]))
data_woe.no = data_woe.no[muestra, ]
data_woe_balanceado = rbind(data_woe[data_woe$BAD==1,], data_woe.no)
Queda balanceado
ggplot(data = data_woe_balanceado, aes(x = factor(BAD), y = ..count.., fill = factor(BAD))) +
geom_bar() +
scale_fill_manual(values = c("gray50", "orangered2")) +
labs(title = "BAD (1 = Con mora; 0 = Préstamo pagado)") +
theme_bw() +
theme(legend.position = "bottom")
trainIndexC = createDataPartition(data_woe_balanceado$BAD, p=0.8, list=FALSE)
data_trainC = data_woe_balanceado[trainIndexC,]
data_testC = data_woe_balanceado[-trainIndexC,]
modC_completo = glm(BAD~.,family=binomial,data=data_trainC)
summary(modC_completo)
##
## Call:
## glm(formula = BAD ~ ., family = binomial, data = data_trainC)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -3.05331 -0.51526 -0.06198 0.47455 2.69823
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 1.749e-01 2.331e-01 0.750 0.453156
## LOAN -1.176e-05 6.374e-06 -1.845 0.065061 .
## REASONHomeImp 2.255e-03 1.551e-01 0.015 0.988397
## REASONMissing 2.271e-01 4.351e-01 0.522 0.601809
## JOBMissing -9.058e-01 4.994e-01 -1.814 0.069719 .
## JOBOffice -6.567e-01 2.631e-01 -2.496 0.012551 *
## JOBOther 2.196e-01 2.185e-01 1.005 0.314891
## JOBProfExe 2.537e-01 2.419e-01 1.049 0.294257
## JOBSales 1.773e+00 5.366e-01 3.304 0.000953 ***
## JOBSelf 3.667e-01 4.140e-01 0.886 0.375708
## DEBTINC_woe 9.601e-01 4.935e-02 19.455 < 2e-16 ***
## DEROG_woe 6.057e-01 1.208e-01 5.014 5.33e-07 ***
## DELINQ_woe 9.870e-01 9.976e-02 9.894 < 2e-16 ***
## MORTDUE_woe 4.129e-01 3.178e-01 1.299 0.193866
## YOJ_woe 1.248e+00 2.544e-01 4.905 9.33e-07 ***
## NINQ_woe 2.880e-01 1.705e-01 1.689 0.091236 .
## CLAGE_woe 1.027e+00 1.456e-01 7.052 1.76e-12 ***
## CLNO_woe 1.004e+00 2.331e-01 4.308 1.65e-05 ***
## VALUE_woe 9.923e-01 1.549e-01 6.407 1.49e-10 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 2639.5 on 1903 degrees of freedom
## Residual deviance: 1385.7 on 1885 degrees of freedom
## AIC: 1423.7
##
## Number of Fisher Scoring iterations: 6
Hacemos seleccion de atributos con un método de selección step-wise, en ambas direcciones.
modC_nulo = glm(BAD~1,family=binomial,data=data_trainC)
step(modC_nulo,scope=list(upper=modC_completo), data=data_trainC, direction="both")
## Start: AIC=2641.5
## BAD ~ 1
##
## Df Deviance AIC
## + DEBTINC_woe 1 1798.8 1802.8
## + DELINQ_woe 1 2392.9 2396.9
## + VALUE_woe 1 2462.8 2466.8
## + DEROG_woe 1 2505.4 2509.4
## + CLAGE_woe 1 2509.5 2513.5
## + JOB 6 2576.9 2590.9
## + NINQ_woe 1 2589.4 2593.4
## + CLNO_woe 1 2595.0 2599.0
## + YOJ_woe 1 2599.3 2603.3
## + LOAN 1 2611.7 2615.7
## + MORTDUE_woe 1 2623.2 2627.2
## <none> 2639.5 2641.5
## + REASON 2 2636.0 2642.0
##
## Step: AIC=1802.78
## BAD ~ DEBTINC_woe
##
## Df Deviance AIC
## + DELINQ_woe 1 1681.6 1687.6
## + VALUE_woe 1 1695.5 1701.5
## + DEROG_woe 1 1734.7 1740.7
## + CLAGE_woe 1 1734.8 1740.8
## + CLNO_woe 1 1766.9 1772.9
## + YOJ_woe 1 1769.3 1775.3
## + JOB 6 1768.7 1784.7
## + LOAN 1 1785.1 1791.1
## + MORTDUE_woe 1 1786.2 1792.2
## + NINQ_woe 1 1790.3 1796.3
## <none> 1798.8 1802.8
## + REASON 2 1798.2 1806.2
## - DEBTINC_woe 1 2639.5 2641.5
##
## Step: AIC=1687.57
## BAD ~ DEBTINC_woe + DELINQ_woe
##
## Df Deviance AIC
## + VALUE_woe 1 1588.6 1596.6
## + CLAGE_woe 1 1596.3 1604.3
## + CLNO_woe 1 1639.9 1647.9
## + DEROG_woe 1 1645.0 1653.0
## + YOJ_woe 1 1647.3 1655.3
## + JOB 6 1643.7 1661.7
## + MORTDUE_woe 1 1668.8 1676.8
## + LOAN 1 1669.0 1677.0
## + NINQ_woe 1 1677.1 1685.1
## <none> 1681.6 1687.6
## + REASON 2 1681.1 1691.1
## - DELINQ_woe 1 1798.8 1802.8
## - DEBTINC_woe 1 2392.9 2396.9
##
## Step: AIC=1596.57
## BAD ~ DEBTINC_woe + DELINQ_woe + VALUE_woe
##
## Df Deviance AIC
## + CLAGE_woe 1 1512.3 1522.3
## + YOJ_woe 1 1550.8 1560.8
## + DEROG_woe 1 1551.5 1561.5
## + JOB 6 1547.3 1567.3
## + CLNO_woe 1 1557.9 1567.9
## + LOAN 1 1578.6 1588.6
## + NINQ_woe 1 1582.1 1592.1
## <none> 1588.6 1596.6
## + MORTDUE_woe 1 1587.4 1597.4
## + REASON 2 1588.5 1600.5
## - VALUE_woe 1 1681.6 1687.6
## - DELINQ_woe 1 1695.5 1701.5
## - DEBTINC_woe 1 2235.1 2241.1
##
## Step: AIC=1522.33
## BAD ~ DEBTINC_woe + DELINQ_woe + VALUE_woe + CLAGE_woe
##
## Df Deviance AIC
## + DEROG_woe 1 1480.0 1492.0
## + JOB 6 1471.8 1493.8
## + YOJ_woe 1 1483.2 1495.2
## + CLNO_woe 1 1491.6 1503.6
## + LOAN 1 1507.0 1519.0
## + NINQ_woe 1 1507.3 1519.3
## <none> 1512.3 1522.3
## + MORTDUE_woe 1 1511.1 1523.1
## + REASON 2 1512.2 1526.2
## - CLAGE_woe 1 1588.6 1596.6
## - VALUE_woe 1 1596.3 1604.3
## - DELINQ_woe 1 1637.1 1645.1
## - DEBTINC_woe 1 2090.4 2098.4
##
## Step: AIC=1491.95
## BAD ~ DEBTINC_woe + DELINQ_woe + VALUE_woe + CLAGE_woe + DEROG_woe
##
## Df Deviance AIC
## + JOB 6 1441.1 1465.1
## + YOJ_woe 1 1452.5 1466.5
## + CLNO_woe 1 1458.7 1472.7
## + LOAN 1 1474.5 1488.5
## + NINQ_woe 1 1477.8 1491.8
## <none> 1480.0 1492.0
## + MORTDUE_woe 1 1479.1 1493.1
## + REASON 2 1479.6 1495.6
## - DEROG_woe 1 1512.3 1522.3
## - CLAGE_woe 1 1551.5 1561.5
## - VALUE_woe 1 1563.4 1573.4
## - DELINQ_woe 1 1577.2 1587.2
## - DEBTINC_woe 1 2030.3 2040.3
##
## Step: AIC=1465.11
## BAD ~ DEBTINC_woe + DELINQ_woe + VALUE_woe + CLAGE_woe + DEROG_woe +
## JOB
##
## Df Deviance AIC
## + YOJ_woe 1 1412.6 1438.6
## + CLNO_woe 1 1420.0 1446.0
## + LOAN 1 1435.8 1461.8
## + NINQ_woe 1 1439.0 1465.0
## <none> 1441.1 1465.1
## + MORTDUE_woe 1 1440.0 1466.0
## + REASON 2 1440.6 1468.6
## - JOB 6 1480.0 1492.0
## - DEROG_woe 1 1471.8 1493.8
## - CLAGE_woe 1 1512.5 1534.5
## - VALUE_woe 1 1530.2 1552.2
## - DELINQ_woe 1 1544.0 1566.0
## - DEBTINC_woe 1 1963.8 1985.8
##
## Step: AIC=1438.57
## BAD ~ DEBTINC_woe + DELINQ_woe + VALUE_woe + CLAGE_woe + DEROG_woe +
## JOB + YOJ_woe
##
## Df Deviance AIC
## + CLNO_woe 1 1393.5 1421.5
## + LOAN 1 1408.8 1436.8
## + MORTDUE_woe 1 1410.3 1438.3
## <none> 1412.6 1438.6
## + NINQ_woe 1 1411.3 1439.3
## + REASON 2 1412.0 1442.0
## - DEROG_woe 1 1440.9 1464.9
## - YOJ_woe 1 1441.1 1465.1
## - JOB 6 1452.5 1466.5
## - CLAGE_woe 1 1474.4 1498.4
## - VALUE_woe 1 1503.2 1527.2
## - DELINQ_woe 1 1521.7 1545.7
## - DEBTINC_woe 1 1929.2 1953.2
##
## Step: AIC=1421.54
## BAD ~ DEBTINC_woe + DELINQ_woe + VALUE_woe + CLAGE_woe + DEROG_woe +
## JOB + YOJ_woe + CLNO_woe
##
## Df Deviance AIC
## + LOAN 1 1390.5 1420.5
## + NINQ_woe 1 1391.4 1421.4
## <none> 1393.5 1421.5
## + MORTDUE_woe 1 1391.7 1421.7
## + REASON 2 1393.2 1425.2
## - CLNO_woe 1 1412.6 1438.6
## - YOJ_woe 1 1420.0 1446.0
## - DEROG_woe 1 1422.2 1448.2
## - JOB 6 1432.6 1448.6
## - CLAGE_woe 1 1448.8 1474.8
## - VALUE_woe 1 1474.3 1500.3
## - DELINQ_woe 1 1507.7 1533.7
## - DEBTINC_woe 1 1905.2 1931.2
##
## Step: AIC=1420.51
## BAD ~ DEBTINC_woe + DELINQ_woe + VALUE_woe + CLAGE_woe + DEROG_woe +
## JOB + YOJ_woe + CLNO_woe + LOAN
##
## Df Deviance AIC
## + NINQ_woe 1 1387.7 1419.7
## <none> 1390.5 1420.5
## + MORTDUE_woe 1 1388.8 1420.8
## - LOAN 1 1393.5 1421.5
## + REASON 2 1390.2 1424.2
## - CLNO_woe 1 1408.8 1436.8
## - YOJ_woe 1 1415.5 1443.5
## - DEROG_woe 1 1419.2 1447.2
## - JOB 6 1429.2 1447.2
## - CLAGE_woe 1 1443.3 1471.3
## - VALUE_woe 1 1470.0 1498.0
## - DELINQ_woe 1 1502.6 1530.6
## - DEBTINC_woe 1 1899.4 1927.4
##
## Step: AIC=1419.73
## BAD ~ DEBTINC_woe + DELINQ_woe + VALUE_woe + CLAGE_woe + DEROG_woe +
## JOB + YOJ_woe + CLNO_woe + LOAN + NINQ_woe
##
## Df Deviance AIC
## <none> 1387.7 1419.7
## + MORTDUE_woe 1 1386.0 1420.0
## - NINQ_woe 1 1390.5 1420.5
## - LOAN 1 1391.4 1421.4
## + REASON 2 1387.4 1423.4
## - CLNO_woe 1 1407.1 1437.1
## - YOJ_woe 1 1411.6 1441.6
## - DEROG_woe 1 1414.1 1444.1
## - JOB 6 1426.5 1446.5
## - CLAGE_woe 1 1440.0 1470.0
## - VALUE_woe 1 1468.0 1498.0
## - DELINQ_woe 1 1496.9 1526.9
## - DEBTINC_woe 1 1880.8 1910.8
##
## Call: glm(formula = BAD ~ DEBTINC_woe + DELINQ_woe + VALUE_woe + CLAGE_woe +
## DEROG_woe + JOB + YOJ_woe + CLNO_woe + LOAN + NINQ_woe, family = binomial,
## data = data_trainC)
##
## Coefficients:
## (Intercept) DEBTINC_woe DELINQ_woe VALUE_woe CLAGE_woe DEROG_woe
## 1.684e-01 9.592e-01 9.868e-01 1.055e+00 1.023e+00 6.101e-01
## JOBMissing JOBOffice JOBOther JOBProfExe JOBSales JOBSelf
## -7.846e-01 -6.428e-01 2.547e-01 2.620e-01 1.755e+00 4.070e-01
## YOJ_woe CLNO_woe LOAN NINQ_woe
## 1.217e+00 1.015e+00 -1.198e-05 2.822e-01
##
## Degrees of Freedom: 1903 Total (i.e. Null); 1888 Residual
## Null Deviance: 2640
## Residual Deviance: 1388 AIC: 1420
modC_stepwise = glm(formula = BAD ~ DEBTINC_woe + DELINQ_woe + VALUE_woe + CLAGE_woe +
DEROG_woe + JOB + CLNO_woe + MORTDUE_woe + YOJ_woe, family = binomial,
data = data_trainB)
summary(modC_stepwise)
##
## Call:
## glm(formula = BAD ~ DEBTINC_woe + DELINQ_woe + VALUE_woe + CLAGE_woe +
## DEROG_woe + JOB + CLNO_woe + MORTDUE_woe + YOJ_woe, family = binomial,
## data = data_trainB)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -3.06296 -0.40091 -0.21940 -0.07617 3.06704
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -1.11734 0.18759 -5.956 2.58e-09 ***
## DEBTINC_woe 0.98918 0.04574 21.624 < 2e-16 ***
## DELINQ_woe 0.79374 0.08667 9.159 < 2e-16 ***
## VALUE_woe 1.05244 0.13429 7.837 4.61e-15 ***
## CLAGE_woe 1.28796 0.14316 8.997 < 2e-16 ***
## DEROG_woe 0.85495 0.11828 7.228 4.90e-13 ***
## JOBMissing -2.52369 0.51870 -4.865 1.14e-06 ***
## JOBOffice -0.84130 0.26783 -3.141 0.001683 **
## JOBOther -0.06617 0.21069 -0.314 0.753470
## JOBProfExe -0.16659 0.24119 -0.691 0.489764
## JOBSales 0.12591 0.43641 0.289 0.772955
## JOBSelf 0.12786 0.42361 0.302 0.762782
## CLNO_woe 0.93919 0.22101 4.250 2.14e-05 ***
## MORTDUE_woe 1.12142 0.31779 3.529 0.000417 ***
## YOJ_woe 0.78138 0.25191 3.102 0.001923 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 2881.2 on 2691 degrees of freedom
## Residual deviance: 1507.5 on 2677 degrees of freedom
## AIC: 1537.5
##
## Number of Fisher Scoring iterations: 6
mod_complete_cases[["terms"]][[3]]
## LOAN + MORTDUE + VALUE + REASON + JOB + YOJ + DEROG + DELINQ +
## CLAGE + NINQ + CLNO + DEBTINC
modB_completo[["terms"]][[3]]
## LOAN + REASON + JOB + DEBTINC_woe + DEROG_woe + DELINQ_woe +
## MORTDUE_woe + YOJ_woe + NINQ_woe + CLAGE_woe + CLNO_woe +
## VALUE_woe
modB_stepwise[["terms"]][[3]]
## DEBTINC_woe + DELINQ_woe + VALUE_woe + CLAGE_woe + DEROG_woe +
## JOB + CLNO_woe + MORTDUE_woe + YOJ_woe
modC_completo[["terms"]][[3]]
## LOAN + REASON + JOB + DEBTINC_woe + DEROG_woe + DELINQ_woe +
## MORTDUE_woe + YOJ_woe + NINQ_woe + CLAGE_woe + CLNO_woe +
## VALUE_woe
modC_stepwise[["terms"]][[3]]
## DEBTINC_woe + DELINQ_woe + VALUE_woe + CLAGE_woe + DEROG_woe +
## JOB + CLNO_woe + MORTDUE_woe + YOJ_woe
ROC_M1=roc_auc_test(mod_complete_cases, data_testA)
## AUC Performance: 0.730160601149254
ROC_M2=roc_auc_test(modB_completo, data_testB)
## AUC Performance: 0.902133106733698
ROC_M3=roc_auc_test(modB_stepwise, data_testB)
## AUC Performance: 0.901244499595681
ROC_M4=roc_auc_test(modC_stepwise, data_testC)
## AUC Performance: 0.916911463618723
plot(ROC_M1[[1]])
abline(0,1)
plot(ROC_M2[[1]], add = T, col = 2)
plot(ROC_M3[[1]], add = T, col = 3)
plot(ROC_M4[[1]], add = T, col = 4)
legend(0.2, 0.3,
legend=c(paste("Modelo 1 (AUC:",round(ROC_M1[[2]],3),")"),
paste("Modelo 2 (AUC:",round(ROC_M2[[2]],3),")"),
paste("Modelo 3 (AUC:",round(ROC_M3[[2]],3),")"),
paste("Modelo 4 (AUC:",round(ROC_M4[[2]],3),")")),
col= c(1,2,3,4),
lty=1:2, cex=0.8)
hoslem.test(mod_complete_cases$y,fitted(mod_complete_cases),g=10)
##
## Hosmer and Lemeshow goodness of fit (GOF) test
##
## data: mod_complete_cases$y, fitted(mod_complete_cases)
## X-squared = 17.942, df = 8, p-value = 0.02166
hoslem.test(modB_completo$y,fitted(modB_completo),g=10)
##
## Hosmer and Lemeshow goodness of fit (GOF) test
##
## data: modB_completo$y, fitted(modB_completo)
## X-squared = 17.987, df = 8, p-value = 0.02133
hoslem.test(modB_stepwise$y,fitted(modB_stepwise),g=10)
##
## Hosmer and Lemeshow goodness of fit (GOF) test
##
## data: modB_stepwise$y, fitted(modB_stepwise)
## X-squared = 11.53, df = 8, p-value = 0.1734
hoslem.test(modC_stepwise$y,fitted(modC_stepwise),g=10)
##
## Hosmer and Lemeshow goodness of fit (GOF) test
##
## data: modC_stepwise$y, fitted(modC_stepwise)
## X-squared = 11.53, df = 8, p-value = 0.1734