ARBOLES DE DESICION

diabetes=read.csv("https://raw.githubusercontent.com/VictorGuevaraP/Mineria-de-datos-2019-2/master/diabetes_m.csv", sep = ";")

summary(diabetes)
##        n         NumeroEmbarazos  Concentrac.blucosa.plama
##  Min.   :  1.0   Min.   : 0.000   Min.   :  0.0           
##  1st Qu.:192.8   1st Qu.: 1.000   1st Qu.: 99.0           
##  Median :384.5   Median : 3.000   Median :117.0           
##  Mean   :384.5   Mean   : 3.845   Mean   :120.9           
##  3rd Qu.:576.2   3rd Qu.: 6.000   3rd Qu.:140.2           
##  Max.   :768.0   Max.   :17.000   Max.   :199.0           
##                                                           
##  Presión.arterial.diastólica Tríceps.espesor.del.pliegue.cutáneo
##  Min.   :  0.00              Min.   : 0.00                      
##  1st Qu.: 62.00              1st Qu.: 0.00                      
##  Median : 72.00              Median :23.00                      
##  Mean   : 69.05              Mean   :20.41                      
##  3rd Qu.: 80.00              3rd Qu.:32.00                      
##  Max.   :122.00              Max.   :99.00                      
##  NA's   :84                  NA's   :66                         
##  X2.horas.suero.insulina Índice.de.masa.corporal
##  Min.   :  0.00          Min.   : 0.00          
##  1st Qu.:  0.00          1st Qu.:27.30          
##  Median : 24.00          Median :32.00          
##  Mean   : 78.23          Mean   :31.99          
##  3rd Qu.:127.75          3rd Qu.:36.60          
##  Max.   :680.00          Max.   :67.10          
##  NA's   :70                                     
##  Función.pedigrí.de.la.diabetes      edad          resultado  
##  Min.   :0.0780                 Min.   :21.00   Negativo:500  
##  1st Qu.:0.2437                 1st Qu.:24.00   Positivo:268  
##  Median :0.3725                 Median :29.00                 
##  Mean   :0.4719                 Mean   :33.24                 
##  3rd Qu.:0.6262                 3rd Qu.:41.00                 
##  Max.   :2.4200                 Max.   :81.00                 
## 
library(Amelia)
library(rpart)
library(VIM)


# se propone como metodo de correccion 
# vecinos mas cercanos


library(DMwR)
diabetes_im=knnImputation(diabetes)
summary(diabetes_im)
##        n         NumeroEmbarazos  Concentrac.blucosa.plama
##  Min.   :  1.0   Min.   : 0.000   Min.   :  0.0           
##  1st Qu.:192.8   1st Qu.: 1.000   1st Qu.: 99.0           
##  Median :384.5   Median : 3.000   Median :117.0           
##  Mean   :384.5   Mean   : 3.845   Mean   :120.9           
##  3rd Qu.:576.2   3rd Qu.: 6.000   3rd Qu.:140.2           
##  Max.   :768.0   Max.   :17.000   Max.   :199.0           
##  Presión.arterial.diastólica Tríceps.espesor.del.pliegue.cutáneo
##  Min.   :  0.00              Min.   : 0.00                      
##  1st Qu.: 63.34              1st Qu.: 0.00                      
##  Median : 71.26              Median :22.93                      
##  Mean   : 68.89              Mean   :20.48                      
##  3rd Qu.: 78.15              3rd Qu.:32.00                      
##  Max.   :122.00              Max.   :99.00                      
##  X2.horas.suero.insulina Índice.de.masa.corporal
##  Min.   :  0.00          Min.   : 0.00          
##  1st Qu.:  0.00          1st Qu.:27.30          
##  Median : 42.78          Median :32.00          
##  Mean   : 79.21          Mean   :31.99          
##  3rd Qu.:127.55          3rd Qu.:36.60          
##  Max.   :680.00          Max.   :67.10          
##  Función.pedigrí.de.la.diabetes      edad          resultado  
##  Min.   :0.0780                 Min.   :21.00   Negativo:500  
##  1st Qu.:0.2437                 1st Qu.:24.00   Positivo:268  
##  Median :0.3725                 Median :29.00                 
##  Mean   :0.4719                 Mean   :33.24                 
##  3rd Qu.:0.6262                 3rd Qu.:41.00                 
##  Max.   :2.4200                 Max.   :81.00
missmap(diabetes_im)

##############################


set.seed(111)
library(caret)
particio=createDataPartition(y=diabetes_im$resultado, p=0.7, list = F, times = 1)
train=diabetes_im[particio,]
test=diabetes_im[-particio,]
dim(diabetes_im)
## [1] 768  10
dim(train)
## [1] 538  10
dim(test)
## [1] 230  10
###############################

#Modelo arbol
set.seed(111)
modelo1 = rpart(resultado~.,data=train,method = "class")
modelo1
## n= 538 
## 
## node), split, n, loss, yval, (yprob)
##       * denotes terminal node
## 
##   1) root 538 188 Negativo (0.65055762 0.34944238)  
##     2) Concentrac.blucosa.plama< 129.5 360  72 Negativo (0.80000000 0.20000000)  
##       4) edad< 28.5 191  17 Negativo (0.91099476 0.08900524) *
##       5) edad>=28.5 169  55 Negativo (0.67455621 0.32544379)  
##        10) Índice.de.masa.corporal< 26.35 35   2 Negativo (0.94285714 0.05714286) *
##        11) Índice.de.masa.corporal>=26.35 134  53 Negativo (0.60447761 0.39552239)  
##          22) Concentrac.blucosa.plama< 100.5 44   8 Negativo (0.81818182 0.18181818) *
##          23) Concentrac.blucosa.plama>=100.5 90  45 Negativo (0.50000000 0.50000000)  
##            46) Función.pedigrí.de.la.diabetes< 0.528 59  22 Negativo (0.62711864 0.37288136)  
##              92) Función.pedigrí.de.la.diabetes< 0.2 15   2 Negativo (0.86666667 0.13333333) *
##              93) Función.pedigrí.de.la.diabetes>=0.2 44  20 Negativo (0.54545455 0.45454545)  
##               186) edad>=44.5 14   3 Negativo (0.78571429 0.21428571) *
##               187) edad< 44.5 30  13 Positivo (0.43333333 0.56666667)  
##                 374) Tríceps.espesor.del.pliegue.cutáneo>=10.62486 19   8 Negativo (0.57894737 0.42105263) *
##                 375) Tríceps.espesor.del.pliegue.cutáneo< 10.62486 11   2 Positivo (0.18181818 0.81818182) *
##            47) Función.pedigrí.de.la.diabetes>=0.528 31   8 Positivo (0.25806452 0.74193548)  
##              94) Tríceps.espesor.del.pliegue.cutáneo< 11 8   3 Negativo (0.62500000 0.37500000) *
##              95) Tríceps.espesor.del.pliegue.cutáneo>=11 23   3 Positivo (0.13043478 0.86956522) *
##     3) Concentrac.blucosa.plama>=129.5 178  62 Positivo (0.34831461 0.65168539)  
##       6) Índice.de.masa.corporal< 29.85 49  16 Negativo (0.67346939 0.32653061)  
##        12) NumeroEmbarazos< 1.5 13   0 Negativo (1.00000000 0.00000000) *
##        13) NumeroEmbarazos>=1.5 36  16 Negativo (0.55555556 0.44444444)  
##          26) edad>=59.5 7   1 Negativo (0.85714286 0.14285714) *
##          27) edad< 59.5 29  14 Positivo (0.48275862 0.51724138)  
##            54) n< 119.5 9   2 Negativo (0.77777778 0.22222222) *
##            55) n>=119.5 20   7 Positivo (0.35000000 0.65000000)  
##             110) n>=499.5 8   3 Negativo (0.62500000 0.37500000) *
##             111) n< 499.5 12   2 Positivo (0.16666667 0.83333333) *
##       7) Índice.de.masa.corporal>=29.85 129  29 Positivo (0.22480620 0.77519380)  
##        14) Función.pedigrí.de.la.diabetes< 0.397 59  21 Positivo (0.35593220 0.64406780)  
##          28) Concentrac.blucosa.plama< 158 34  17 Negativo (0.50000000 0.50000000)  
##            56) Índice.de.masa.corporal< 41.35 24   9 Negativo (0.62500000 0.37500000) *
##            57) Índice.de.masa.corporal>=41.35 10   2 Positivo (0.20000000 0.80000000) *
##          29) Concentrac.blucosa.plama>=158 25   4 Positivo (0.16000000 0.84000000) *
##        15) Función.pedigrí.de.la.diabetes>=0.397 70   8 Positivo (0.11428571 0.88571429) *
library(partykit)
plot(as.party(modelo1))

##
predichos = predict(modelo1, test, type = "class")
predichos
##        4        5       14       16       18       21       25       26 
## Negativo Positivo Positivo Negativo Positivo Negativo Negativo Negativo 
##       28       29       30       31       32       37       41       42 
## Negativo Negativo Positivo Positivo Positivo Positivo Positivo Positivo 
##       46       49       55       56       57       69       74       89 
## Positivo Negativo Positivo Negativo Positivo Negativo Negativo Negativo 
##       93       98      103      104      105      107      110      113 
## Negativo Negativo Negativo Negativo Negativo Negativo Negativo Negativo 
##      115      119      124      126      127      128      129      133 
## Positivo Negativo Negativo Negativo Negativo Negativo Negativo Positivo 
##      134      136      138      143      150      151      152      154 
## Negativo Negativo Negativo Negativo Negativo Positivo Negativo Positivo 
##      158      163      167      169      173      180      181      185 
## Negativo Negativo Negativo Positivo Negativo Positivo Negativo Positivo 
##      190      196      198      199      202      203      210      221 
## Negativo Positivo Negativo Negativo Negativo Positivo Positivo Positivo 
##      225      227      233      234      236      240      248      250 
## Negativo Negativo Negativo Positivo Positivo Negativo Positivo Negativo 
##      260      274      279      280      286      287      291      293 
## Positivo Negativo Negativo Negativo Positivo Positivo Negativo Positivo 
##      294      295      296      299      300      306      307      311 
## Negativo Negativo Positivo Negativo Negativo Negativo Positivo Negativo 
##      316      322      323      325      327      331      348      349 
## Negativo Negativo Negativo Negativo Positivo Negativo Negativo Negativo 
##      358      359      372      373      377      378      379      380 
## Negativo Negativo Negativo Negativo Negativo Negativo Positivo Negativo 
##      382      391      392      395      401      402      405      407 
## Negativo Negativo Positivo Positivo Negativo Positivo Positivo Negativo 
##      410      413      419      420      422      423      428      431 
## Positivo Positivo Negativo Negativo Negativo Negativo Positivo Negativo 
##      434      438      442      444      445      449      450      455 
## Positivo Positivo Negativo Negativo Negativo Negativo Negativo Negativo 
##      456      462      469      470      474      476      479      481 
## Positivo Negativo Negativo Positivo Negativo Negativo Negativo Positivo 
##      485      489      494      496      498      501      502      505 
## Positivo Negativo Positivo Negativo Negativo Negativo Negativo Negativo 
##      508      515      516      517      522      523      528      529 
## Negativo Negativo Positivo Positivo Negativo Negativo Negativo Negativo 
##      531      535      536      543      548      549      554      557 
## Negativo Negativo Negativo Negativo Negativo Positivo Negativo Negativo 
##      560      562      563      564      572      582      585      587 
## Negativo Positivo Negativo Negativo Negativo Negativo Positivo Negativo 
##      590      593      595      598      601      602      603      604 
## Negativo Positivo Positivo Negativo Negativo Negativo Negativo Positivo 
##      605      609      611      612      620      624      626      628 
## Negativo Positivo Negativo Positivo Negativo Negativo Negativo Negativo 
##      631      637      639      647      648      650      652      655 
## Negativo Negativo Negativo Negativo Positivo Negativo Negativo Negativo 
##      656      659      668      673      674      679      680      684 
## Negativo Negativo Negativo Negativo Negativo Negativo Negativo Negativo 
##      686      687      692      699      700      705      711      712 
## Negativo Negativo Positivo Negativo Negativo Negativo Positivo Negativo 
##      716      717      721      723      724      726      728      731 
## Positivo Positivo Negativo Negativo Negativo Negativo Positivo Negativo 
##      734      735      737      738      743      745      747      750 
## Negativo Negativo Negativo Negativo Negativo Positivo Positivo Negativo 
##      752      753      754      756      761      767 
## Negativo Negativo Positivo Positivo Negativo Negativo 
## Levels: Negativo Positivo
#Matriz de confusion
table(predichos, test$resultado)
##           
## predichos  Negativo Positivo
##   Negativo      123       39
##   Positivo       27       41
#indicadores
library(caret)
str(test$resultado)
##  Factor w/ 2 levels "Negativo","Positivo": 1 2 2 2 2 1 2 2 1 1 ...
str(predichos)
##  Factor w/ 2 levels "Negativo","Positivo": 1 2 2 1 2 1 1 1 1 1 ...
##  - attr(*, "names")= chr [1:230] "4" "5" "14" "16" ...
test$resultado = as.factor(test$resultado)
indicadores=confusionMatrix(predichos, test$resultado)
indicadores
## Confusion Matrix and Statistics
## 
##           Reference
## Prediction Negativo Positivo
##   Negativo      123       39
##   Positivo       27       41
##                                           
##                Accuracy : 0.713           
##                  95% CI : (0.6499, 0.7706)
##     No Information Rate : 0.6522          
##     P-Value [Acc > NIR] : 0.02944         
##                                           
##                   Kappa : 0.3446          
##                                           
##  Mcnemar's Test P-Value : 0.17573         
##                                           
##             Sensitivity : 0.8200          
##             Specificity : 0.5125          
##          Pos Pred Value : 0.7593          
##          Neg Pred Value : 0.6029          
##              Prevalence : 0.6522          
##          Detection Rate : 0.5348          
##    Detection Prevalence : 0.7043          
##       Balanced Accuracy : 0.6663          
##                                           
##        'Positive' Class : Negativo        
## 

REDES NEURONALES

library(ggplot2)
library(DMwR)
head(diabetes_im)
##   n NumeroEmbarazos Concentrac.blucosa.plama Presión.arterial.diastólica
## 1 1               6                      148                    72.00000
## 2 2               1                       85                    66.00000
## 3 3               8                      183                    64.00000
## 4 4               1                       89                    63.76161
## 5 5               0                      137                    40.00000
## 6 6               5                      116                    74.00000
##   Tríceps.espesor.del.pliegue.cutáneo X2.horas.suero.insulina
## 1                            35.00000                       0
## 2                            29.00000                       0
## 3                             0.00000                       0
## 4                            23.00000                      94
## 5                            27.75491                     168
## 6                             0.00000                       0
##   Índice.de.masa.corporal Función.pedigrí.de.la.diabetes edad resultado
## 1                    33.6                          0.627   50  Positivo
## 2                    26.6                          0.351   31  Negativo
## 3                    23.3                          0.672   32  Positivo
## 4                    28.1                          0.167   21  Negativo
## 5                    43.1                          2.288   33  Positivo
## 6                    25.6                          0.201   30  Negativo
str(diabetes_im)
## 'data.frame':    768 obs. of  10 variables:
##  $ n                                  : int  1 2 3 4 5 6 7 8 9 10 ...
##  $ NumeroEmbarazos                    : int  6 1 8 1 0 5 3 10 2 8 ...
##  $ Concentrac.blucosa.plama           : int  148 85 183 89 137 116 78 115 197 125 ...
##  $ Presión.arterial.diastólica        : num  72 66 64 63.8 40 ...
##  $ Tríceps.espesor.del.pliegue.cutáneo: num  35 29 0 23 27.8 ...
##  $ X2.horas.suero.insulina            : num  0 0 0 94 168 0 88 0 543 0 ...
##  $ Índice.de.masa.corporal            : num  33.6 26.6 23.3 28.1 43.1 25.6 31 35.3 30.5 0 ...
##  $ Función.pedigrí.de.la.diabetes     : num  0.627 0.351 0.672 0.167 2.288 ...
##  $ edad                               : int  50 31 32 21 33 30 26 29 53 54 ...
##  $ resultado                          : Factor w/ 2 levels "Negativo","Positivo": 2 1 2 1 2 1 2 1 2 2 ...
summary(diabetes)
##        n         NumeroEmbarazos  Concentrac.blucosa.plama
##  Min.   :  1.0   Min.   : 0.000   Min.   :  0.0           
##  1st Qu.:192.8   1st Qu.: 1.000   1st Qu.: 99.0           
##  Median :384.5   Median : 3.000   Median :117.0           
##  Mean   :384.5   Mean   : 3.845   Mean   :120.9           
##  3rd Qu.:576.2   3rd Qu.: 6.000   3rd Qu.:140.2           
##  Max.   :768.0   Max.   :17.000   Max.   :199.0           
##                                                           
##  Presión.arterial.diastólica Tríceps.espesor.del.pliegue.cutáneo
##  Min.   :  0.00              Min.   : 0.00                      
##  1st Qu.: 62.00              1st Qu.: 0.00                      
##  Median : 72.00              Median :23.00                      
##  Mean   : 69.05              Mean   :20.41                      
##  3rd Qu.: 80.00              3rd Qu.:32.00                      
##  Max.   :122.00              Max.   :99.00                      
##  NA's   :84                  NA's   :66                         
##  X2.horas.suero.insulina Índice.de.masa.corporal
##  Min.   :  0.00          Min.   : 0.00          
##  1st Qu.:  0.00          1st Qu.:27.30          
##  Median : 24.00          Median :32.00          
##  Mean   : 78.23          Mean   :31.99          
##  3rd Qu.:127.75          3rd Qu.:36.60          
##  Max.   :680.00          Max.   :67.10          
##  NA's   :70                                     
##  Función.pedigrí.de.la.diabetes      edad          resultado  
##  Min.   :0.0780                 Min.   :21.00   Negativo:500  
##  1st Qu.:0.2437                 1st Qu.:24.00   Positivo:268  
##  Median :0.3725                 Median :29.00                 
##  Mean   :0.4719                 Mean   :33.24                 
##  3rd Qu.:0.6262                 3rd Qu.:41.00                 
##  Max.   :2.4200                 Max.   :81.00                 
## 
#Del an攼㸱lisis eliminar la primera columna
diabetes1<-diabetes_im[,2:10]
head(diabetes1)
##   NumeroEmbarazos Concentrac.blucosa.plama Presión.arterial.diastólica
## 1               6                      148                    72.00000
## 2               1                       85                    66.00000
## 3               8                      183                    64.00000
## 4               1                       89                    63.76161
## 5               0                      137                    40.00000
## 6               5                      116                    74.00000
##   Tríceps.espesor.del.pliegue.cutáneo X2.horas.suero.insulina
## 1                            35.00000                       0
## 2                            29.00000                       0
## 3                             0.00000                       0
## 4                            23.00000                      94
## 5                            27.75491                     168
## 6                             0.00000                       0
##   Índice.de.masa.corporal Función.pedigrí.de.la.diabetes edad resultado
## 1                    33.6                          0.627   50  Positivo
## 2                    26.6                          0.351   31  Negativo
## 3                    23.3                          0.672   32  Positivo
## 4                    28.1                          0.167   21  Negativo
## 5                    43.1                          2.288   33  Positivo
## 6                    25.6                          0.201   30  Negativo
summary(diabetes1)
##  NumeroEmbarazos  Concentrac.blucosa.plama Presión.arterial.diastólica
##  Min.   : 0.000   Min.   :  0.0            Min.   :  0.00             
##  1st Qu.: 1.000   1st Qu.: 99.0            1st Qu.: 63.34             
##  Median : 3.000   Median :117.0            Median : 71.26             
##  Mean   : 3.845   Mean   :120.9            Mean   : 68.89             
##  3rd Qu.: 6.000   3rd Qu.:140.2            3rd Qu.: 78.15             
##  Max.   :17.000   Max.   :199.0            Max.   :122.00             
##  Tríceps.espesor.del.pliegue.cutáneo X2.horas.suero.insulina
##  Min.   : 0.00                       Min.   :  0.00         
##  1st Qu.: 0.00                       1st Qu.:  0.00         
##  Median :22.93                       Median : 42.78         
##  Mean   :20.48                       Mean   : 79.21         
##  3rd Qu.:32.00                       3rd Qu.:127.55         
##  Max.   :99.00                       Max.   :680.00         
##  Índice.de.masa.corporal Función.pedigrí.de.la.diabetes      edad      
##  Min.   : 0.00           Min.   :0.0780                 Min.   :21.00  
##  1st Qu.:27.30           1st Qu.:0.2437                 1st Qu.:24.00  
##  Median :32.00           Median :0.3725                 Median :29.00  
##  Mean   :31.99           Mean   :0.4719                 Mean   :33.24  
##  3rd Qu.:36.60           3rd Qu.:0.6262                 3rd Qu.:41.00  
##  Max.   :67.10           Max.   :2.4200                 Max.   :81.00  
##     resultado  
##  Negativo:500  
##  Positivo:268  
##                
##                
##                
## 
#ASUMIENDO QUE LOS MISSING SON MCA
#Imputamos por KNNIMPUTATION
#AN挼㸱LISIS EXPLORATORIO DE DATOS
#
#
#

diabetes2=knnImputation(diabetes1)
summary(diabetes2)
##  NumeroEmbarazos  Concentrac.blucosa.plama Presión.arterial.diastólica
##  Min.   : 0.000   Min.   :  0.0            Min.   :  0.00             
##  1st Qu.: 1.000   1st Qu.: 99.0            1st Qu.: 63.34             
##  Median : 3.000   Median :117.0            Median : 71.26             
##  Mean   : 3.845   Mean   :120.9            Mean   : 68.89             
##  3rd Qu.: 6.000   3rd Qu.:140.2            3rd Qu.: 78.15             
##  Max.   :17.000   Max.   :199.0            Max.   :122.00             
##  Tríceps.espesor.del.pliegue.cutáneo X2.horas.suero.insulina
##  Min.   : 0.00                       Min.   :  0.00         
##  1st Qu.: 0.00                       1st Qu.:  0.00         
##  Median :22.93                       Median : 42.78         
##  Mean   :20.48                       Mean   : 79.21         
##  3rd Qu.:32.00                       3rd Qu.:127.55         
##  Max.   :99.00                       Max.   :680.00         
##  Índice.de.masa.corporal Función.pedigrí.de.la.diabetes      edad      
##  Min.   : 0.00           Min.   :0.0780                 Min.   :21.00  
##  1st Qu.:27.30           1st Qu.:0.2437                 1st Qu.:24.00  
##  Median :32.00           Median :0.3725                 Median :29.00  
##  Mean   :31.99           Mean   :0.4719                 Mean   :33.24  
##  3rd Qu.:36.60           3rd Qu.:0.6262                 3rd Qu.:41.00  
##  Max.   :67.10           Max.   :2.4200                 Max.   :81.00  
##     resultado  
##  Negativo:500  
##  Positivo:268  
##                
##                
##                
## 
#############


hist(log(diabetes2$NumeroEmbarazos))

################################
#REDES NEURONALES
#crear la data train y test
dim(diabetes2)
## [1] 768   9
set.seed(111)
muestra=sample(537,231)
#Train data
train=diabetes2[-muestra,]
#Test data
test=diabetes2[muestra,]
dim(train)
## [1] 537   9
dim(test)
## [1] 231   9
#Entrenamos el modelo de ANN
library(nnet)
names(train)
## [1] "NumeroEmbarazos"                    
## [2] "Concentrac.blucosa.plama"           
## [3] "Presión.arterial.diastólica"        
## [4] "Tríceps.espesor.del.pliegue.cutáneo"
## [5] "X2.horas.suero.insulina"            
## [6] "Índice.de.masa.corporal"            
## [7] "Función.pedigrí.de.la.diabetes"     
## [8] "edad"                               
## [9] "resultado"
modelo_diab=nnet(resultado~.,data=train, size=50)
## # weights:  501
## initial  value 433.086396 
## iter  10 value 313.658000
## iter  20 value 298.833692
## iter  30 value 290.406475
## iter  40 value 280.919356
## iter  50 value 262.048638
## iter  60 value 248.319246
## iter  70 value 238.667629
## iter  80 value 225.446982
## iter  90 value 217.155819
## iter 100 value 208.026407
## final  value 208.026407 
## stopped after 100 iterations
#Predecir baso en el modelo anterior
predichos_diab=predict(modelo_diab, test, type = "class")
predichos_diab
##   [1] "Negativo" "Negativo" "Negativo" "Negativo" "Negativo" "Negativo"
##   [7] "Negativo" "Positivo" "Negativo" "Positivo" "Negativo" "Negativo"
##  [13] "Negativo" "Positivo" "Negativo" "Negativo" "Negativo" "Negativo"
##  [19] "Negativo" "Negativo" "Negativo" "Negativo" "Negativo" "Negativo"
##  [25] "Negativo" "Negativo" "Negativo" "Positivo" "Negativo" "Negativo"
##  [31] "Negativo" "Positivo" "Positivo" "Positivo" "Negativo" "Negativo"
##  [37] "Negativo" "Positivo" "Positivo" "Negativo" "Negativo" "Negativo"
##  [43] "Negativo" "Positivo" "Positivo" "Positivo" "Negativo" "Positivo"
##  [49] "Positivo" "Negativo" "Negativo" "Negativo" "Negativo" "Positivo"
##  [55] "Negativo" "Positivo" "Negativo" "Negativo" "Positivo" "Positivo"
##  [61] "Negativo" "Positivo" "Negativo" "Negativo" "Negativo" "Negativo"
##  [67] "Positivo" "Positivo" "Positivo" "Negativo" "Negativo" "Negativo"
##  [73] "Positivo" "Negativo" "Negativo" "Positivo" "Negativo" "Negativo"
##  [79] "Positivo" "Positivo" "Positivo" "Negativo" "Negativo" "Negativo"
##  [85] "Positivo" "Negativo" "Negativo" "Negativo" "Negativo" "Positivo"
##  [91] "Negativo" "Negativo" "Negativo" "Negativo" "Positivo" "Positivo"
##  [97] "Negativo" "Positivo" "Negativo" "Negativo" "Negativo" "Negativo"
## [103] "Positivo" "Negativo" "Negativo" "Negativo" "Negativo" "Positivo"
## [109] "Positivo" "Negativo" "Negativo" "Positivo" "Positivo" "Negativo"
## [115] "Negativo" "Negativo" "Positivo" "Negativo" "Negativo" "Positivo"
## [121] "Negativo" "Negativo" "Negativo" "Negativo" "Negativo" "Negativo"
## [127] "Negativo" "Positivo" "Negativo" "Negativo" "Negativo" "Positivo"
## [133] "Negativo" "Negativo" "Negativo" "Positivo" "Positivo" "Negativo"
## [139] "Negativo" "Negativo" "Negativo" "Positivo" "Negativo" "Negativo"
## [145] "Negativo" "Positivo" "Positivo" "Negativo" "Negativo" "Positivo"
## [151] "Negativo" "Positivo" "Negativo" "Positivo" "Negativo" "Negativo"
## [157] "Negativo" "Negativo" "Negativo" "Negativo" "Positivo" "Negativo"
## [163] "Positivo" "Negativo" "Positivo" "Positivo" "Positivo" "Negativo"
## [169] "Negativo" "Negativo" "Negativo" "Negativo" "Positivo" "Negativo"
## [175] "Negativo" "Positivo" "Positivo" "Negativo" "Positivo" "Positivo"
## [181] "Negativo" "Negativo" "Negativo" "Negativo" "Positivo" "Negativo"
## [187] "Negativo" "Positivo" "Positivo" "Positivo" "Negativo" "Positivo"
## [193] "Positivo" "Negativo" "Positivo" "Positivo" "Negativo" "Positivo"
## [199] "Negativo" "Positivo" "Negativo" "Negativo" "Negativo" "Positivo"
## [205] "Positivo" "Negativo" "Negativo" "Negativo" "Negativo" "Negativo"
## [211] "Negativo" "Positivo" "Negativo" "Positivo" "Positivo" "Negativo"
## [217] "Negativo" "Negativo" "Negativo" "Negativo" "Negativo" "Positivo"
## [223] "Positivo" "Negativo" "Negativo" "Positivo" "Positivo" "Negativo"
## [229] "Positivo" "Negativo" "Negativo"
comparando=as.data.frame(cbind(test$resultado, predichos_diab))


table(test$resultado, predichos_diab)
##           predichos_diab
##            Negativo Positivo
##   Negativo      112       38
##   Positivo       40       41
#Indicadores del modelo
library(caret)
str(predichos_diab)
##  chr [1:231] "Negativo" "Negativo" "Negativo" "Negativo" "Negativo" ...
predichos_diab=as.factor(predichos_diab)
str(test$resultado)
##  Factor w/ 2 levels "Negativo","Positivo": 1 1 2 1 1 1 1 1 1 1 ...
indicadores_diab=confusionMatrix(predichos_diab, test$resultado)
indicadores_diab
## Confusion Matrix and Statistics
## 
##           Reference
## Prediction Negativo Positivo
##   Negativo      112       40
##   Positivo       38       41
##                                          
##                Accuracy : 0.6623         
##                  95% CI : (0.5974, 0.723)
##     No Information Rate : 0.6494         
##     P-Value [Acc > NIR] : 0.3675         
##                                          
##                   Kappa : 0.2543         
##                                          
##  Mcnemar's Test P-Value : 0.9099         
##                                          
##             Sensitivity : 0.7467         
##             Specificity : 0.5062         
##          Pos Pred Value : 0.7368         
##          Neg Pred Value : 0.5190         
##              Prevalence : 0.6494         
##          Detection Rate : 0.4848         
##    Detection Prevalence : 0.6580         
##       Balanced Accuracy : 0.6264         
##                                          
##        'Positive' Class : Negativo       
## 
#CURVA ROC
predichos_prob=predict(modelo_diab, test, type = "raw")
library(ROCR)
pred1=prediction(predichos_prob, test$resultado)
pred2=performance(pred1, "tpr", "fpr")
plot(pred2, colorize=T)