1.-Entendimiento del negocio

1.1-Determinar el objetivo del negocio:Brindar apoyo en atención médica y hospitalaria,y prevención de enfermedades, unificando esfuerzos con el Centro Médico Medicor.

1.2.-Evaluar la situacion actual: Aproximadamente 62 millones de personas tienen Diabetes en el continente americano y necesitan del apoyo de sus familias.Muchas personas con diabetes ni siquiera saben que la tienen.

1.3.-Determinar el objetivo de la mineria de datos:Construir un modelo de clasificación de minería de datos que permita clasificar si un paciente de este centro medico es diabetico o no.

1.4.-Realizar un plan de proyecto: Mayo:Entendimiento del negocio y la data Junio:Analisis de los datos y planeamiento de solucion Julio:Implementacion del conocmiento en acciones para los procesos de negocio

2.-Entendimiento de la data

2.1-Data inicial

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

head(data)
##   n NumeroEmbarazos Concentrac.blucosa.plama Presión.arterial.diastólica
## 1 1               6                      148                          72
## 2 2               1                       85                          66
## 3 3               8                      183                          64
## 4 4               1                       89                          NA
## 5 5               0                      137                          40
## 6 6               5                      116                          74
##   Tríceps.espesor.del.pliegue.cutáneo X2.horas.suero.insulina
## 1                                  35                       0
## 2                                  29                       0
## 3                                   0                       0
## 4                                  23                      94
## 5                                  NA                     168
## 6                                   0                       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

N: Representa el identificador de cada uno de los pacientes.

NumeroEmbarazos: Cantidad de embarazos del paciente.

Concentrac.blucosa.plama: Nivel de glucosa del paciente en mg.

Presion.arterial.diastolica:Las cifras de presión arterial diastólica.

Triceps.espesor.del.pliegue.cutaneo: Espesor del pliegue cutáneo ubicado sobre el músculo.

X2.horas.suero.insulina: La insulina es una hormona que permite que el azúcar en la sangre, conocido como glucosa, pase a las células.

indice.de.masa.corporal: número que se calcula con base en el peso y la estatura de la persona.

Funcion.pedigro.de.la.diabetes: Documento que analiza las relaciones genealógicas de un ser vivo en el contexto de la diabetes.

Edad: Años de los pacientes.

Resultado: si un paciente es o no diabetico.

2.2.-Descripción de la data

Se cuenta con un conjunto de datos de 726 observaciones(fila) y 10 variables (columnas).

N es un identificador del paciente por lo cual no, nos es util ya que no funciona para operaciones matematicas.

NumeroEmbarazos podemos observar que el promedio de embarazos de las pacientes es de 3 y el maximo 17.

Concentrac.blucosa.plama podemos observar que la media de la concentracion de glucosa 117 y podemos observar que hay datos NA, podemos observar que tambien hay casos con 0 glucosa que es muy dudoso.

Presion areteial diastólica que el promedio de la presion arterial de los pacientes es 72 que se mide en 10 g/mm2 tambien podemos observar valores NA, podemos observar que tambien hay casos con 0 glucosa que es muy dudoso.

Triceps espesor del pliegue cutáneo podemos encontrar que la mediana es 23cm y en el maximo observamos 99cm y tambien obsevamos que tambien posee NA,podemos observar que tambien hay casos con 0 glucosa que es muy dudoso.

x2 horas suero insulina podemos observar que la media es 24 y que pueden o no haber datos NA porque es posible ser diabetico y no necesitar insulina sabiendo cuidarse.

Indice de masa corporal observamos que la media es de 32 y que hay pacientes con el indice de masa corporal 0 lo cual es muy raroy controversial.

La variable objetivo es “Resultado” por lo que presenta positivo representa si el paciente es diabetico y negativo si el paciente no lo es, podemos apreciar que hay 268 positivo y 500 no diabeticos .

2.3.-Exploracion de la data

#Coerción
data$resultado=as.factor(data$resultado)
#Cambiamos el dato de resultado para que solo muestre la cantidad de cada dato 
dim(data)
## [1] 768  10
#Dimension es el tamaño de la tabla 768 filas y 10 columnas

Edad

library(ggplot2)
## Warning: package 'ggplot2' was built under R version 3.6.3
ggplot(data=data)+
  geom_histogram(mapping =aes(x=edad, color=resultado))
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

En el siguiente gráfico observamos que la mayoría la mayor cantidad

20 y 60 años es donde hay mas casos de diabetes.Entre 28 y 29 es el mayor pico de casos de diabetes

Indice de masa corporal

ggplot(data=data)+
  geom_histogram(mapping = aes(x=Índice.de.masa.corporal, color=resultado))
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

Según el gráfico nos muestra que las personas con el imc entre 20 y 50

tienden a ser personas diabeticas y el mayor numero de casos de diabetes

es entre 30 y 40

Número de Embarazos

ggplot(data=data)+
  geom_histogram(mapping = aes(x=NumeroEmbarazos , color=resultado))
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

Podemos concluir gracias a este grafico que puede haber relacion que algunas

personas que tienen diabetes no quieren tener hijos por miedo

a heredarles esta condición.

library(VIM)
## Warning: package 'VIM' was built under R version 3.6.3
## Loading required package: colorspace
## Loading required package: grid
## Loading required package: data.table
## VIM is ready to use. 
##  Since version 4.0.0 the GUI is in its own package VIMGUI.
## 
##           Please use the package to use the new (and old) GUI.
## Suggestions and bug-reports can be submitted at: https://github.com/alexkowa/VIM/issues
## 
## Attaching package: 'VIM'
## The following object is masked from 'package:datasets':
## 
##     sleep
aggr(data)
nulos=aggr(data)

nulos
## 
##  Missings in variables:
##                             Variable Count
##          Presión.arterial.diastólica    84
##  Tríceps.espesor.del.pliegue.cutáneo    66
##              X2.horas.suero.insulina    70

Analisamos los datos nulos

2.4.-Calidad de datos

Podemos observar en la tabla nulos que tenemos 220 datos Missing tenemos 84 datos missing en Presión.arterial.diastólica, 66 datos missing en Tríceps.espesor.del.pliegue.cutáneo y 70 datos missing en X2.horas.suero.insulina. Podemos observar tambien que en Presión.arterial.diastólica, triceps espesor del pliegue y índice de masa corporal tienen de datos minimos en 0 lo cual deberia ser imposible ya que un humano no puede vivir teniendo esos indices en 0.

Fase 3: Preparacion de los datos

3.1.-Seleccionar la data

  datanew=data[,2:10]
  dim(datanew)
## [1] 768   9
  #Vemos que se borro la columna n
  head(datanew)
##   NumeroEmbarazos Concentrac.blucosa.plama Presión.arterial.diastólica
## 1               6                      148                          72
## 2               1                       85                          66
## 3               8                      183                          64
## 4               1                       89                          NA
## 5               0                      137                          40
## 6               5                      116                          74
##   Tríceps.espesor.del.pliegue.cutáneo X2.horas.suero.insulina
## 1                                  35                       0
## 2                                  29                       0
## 3                                   0                       0
## 4                                  23                      94
## 5                                  NA                     168
## 6                                   0                       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
  #Eliminamos N que solo es un identificador y no nos ayuda en el analísis de datos 

3.2.-Limpiarla data

  #Quitamos los NA´S usando knn imputación por vecinos cercanos 
  
  library(DMwR)
## Warning: package 'DMwR' was built under R version 3.6.3
## Loading required package: lattice
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo
## 
## Attaching package: 'DMwR'
## The following object is masked from 'package:VIM':
## 
##     kNN
  datanew4=knnImputation(datanew)
  summary(datanew4)
##  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.02             
##  Median : 3.000   Median :117.0            Median : 71.21             
##  Mean   : 3.845   Mean   :120.9            Mean   : 68.94             
##  3rd Qu.: 6.000   3rd Qu.:140.2            3rd Qu.: 79.06             
##  Max.   :17.000   Max.   :199.0            Max.   :122.00             
##  Tríceps.espesor.del.pliegue.cutáneo X2.horas.suero.insulina
##  Min.   : 0.0                        Min.   :  0.00         
##  1st Qu.: 0.0                        1st Qu.:  0.00         
##  Median :23.0                        Median : 42.39         
##  Mean   :20.5                        Mean   : 78.57         
##  3rd Qu.:32.0                        3rd Qu.:126.55         
##  Max.   :99.0                        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  
##                
##                
##                
## 
  str(datanew4)  
## 'data.frame':    768 obs. of  9 variables:
##  $ 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 65.9 40 ...
##  $ Tríceps.espesor.del.pliegue.cutáneo: num  35 29 0 23 27.3 ...
##  $ 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 ...
  #Vemos que ya no tienen datos NA´S

3.3.-Construir data

library(arules)
## Warning: package 'arules' was built under R version 3.6.3
## Loading required package: Matrix
## 
## Attaching package: 'arules'
## The following objects are masked from 'package:base':
## 
##     abbreviate, write
edad_disctrea=nclass.Sturges(datanew4$edad)
edad_disctrea
## [1] 11
edad_discretizada2=discretize(datanew4$edad, method= "interval")
edad_discretizada2
##   [1] [41,61) [21,41) [21,41) [21,41) [21,41) [21,41) [21,41) [21,41) [41,61)
##  [10] [41,61) [21,41) [21,41) [41,61) [41,61) [41,61) [21,41) [21,41) [21,41)
##  [19] [21,41) [21,41) [21,41) [41,61) [41,61) [21,41) [41,61) [41,61) [41,61)
##  [28] [21,41) [41,61) [21,41) [41,61) [21,41) [21,41) [21,41) [41,61) [21,41)
##  [37] [21,41) [41,61) [21,41) [41,61) [21,41) [21,41) [41,61) [41,61) [21,41)
##  [46] [21,41) [21,41) [21,41) [21,41) [21,41) [21,41) [21,41) [21,41) [41,61)
##  [55] [41,61) [21,41) [41,61) [21,41) [41,61) [21,41) [21,41) [21,41) [21,41)
##  [64] [21,41) [41,61) [21,41) [21,41) [41,61) [21,41) [21,41) [21,41) [21,41)
##  [73] [41,61) [21,41) [21,41) [21,41) [41,61) [21,41) [21,41) [21,41) [21,41)
##  [82] [21,41) [21,41) [21,41) [21,41) [21,41) [41,61) [21,41) [41,61) [21,41)
##  [91] [21,41) [21,41) [41,61) [41,61) [21,41) [21,41) [21,41) [21,41) [21,41)
## [100] [21,41) [21,41) [21,41) [21,41) [21,41) [21,41) [21,41) [21,41) [21,41)
## [109] [21,41) [21,41) [21,41) [41,61) [21,41) [21,41) [21,41) [61,81] [21,41)
## [118] [21,41) [21,41) [21,41) [21,41) [21,41) [21,41) [61,81] [21,41) [21,41)
## [127] [21,41) [21,41) [21,41) [61,81] [21,41) [21,41) [21,41) [21,41) [21,41)
## [136] [21,41) [21,41) [21,41) [21,41) [21,41) [41,61) [21,41) [21,41) [41,61)
## [145] [21,41) [21,41) [41,61) [21,41) [61,81] [21,41) [21,41) [21,41) [41,61)
## [154] [21,41) [41,61) [21,41) [21,41) [21,41) [21,41) [41,61) [21,41) [41,61)
## [163] [21,41) [21,41) [21,41) [41,61) [21,41) [21,41) [21,41) [21,41) [21,41)
## [172] [21,41) [21,41) [21,41) [21,41) [21,41) [41,61) [21,41) [41,61) [21,41)
## [181] [21,41) [21,41) [21,41) [21,41) [21,41) [41,61) [41,61) [21,41) [21,41)
## [190] [21,41) [21,41) [21,41) [21,41) [21,41) [41,61) [21,41) [21,41) [21,41)
## [199] [21,41) [21,41) [21,41) [21,41) [21,41) [21,41) [41,61) [21,41) [41,61)
## [208] [41,61) [21,41) [41,61) [21,41) [21,41) [41,61) [21,41) [21,41) [21,41)
## [217] [21,41) [21,41) [21,41) [41,61) [21,41) [61,81] [21,41) [61,81] [21,41)
## [226] [21,41) [21,41) [21,41) [21,41) [21,41) [21,41) [41,61) [21,41) [21,41)
## [235] [21,41) [21,41) [41,61) [21,41) [21,41) [21,41) [21,41) [21,41) [21,41)
## [244] [21,41) [21,41) [41,61) [41,61) [21,41) [21,41) [21,41) [41,61) [21,41)
## [253] [21,41) [21,41) [41,61) [21,41) [21,41) [21,41) [21,41) [41,61) [21,41)
## [262] [21,41) [21,41) [61,81] [21,41) [41,61) [21,41) [21,41) [21,41) [21,41)
## [271] [21,41) [21,41) [21,41) [21,41) [41,61) [21,41) [21,41) [21,41) [41,61)
## [280] [21,41) [21,41) [21,41) [21,41) [41,61) [41,61) [41,61) [21,41) [21,41)
## [289] [21,41) [21,41) [21,41) [21,41) [21,41) [21,41) [61,81] [21,41) [21,41)
## [298] [21,41) [41,61) [41,61) [21,41) [21,41) [21,41) [21,41) [21,41) [21,41)
## [307] [41,61) [21,41) [21,41) [21,41) [41,61) [21,41) [21,41) [21,41) [41,61)
## [316] [21,41) [21,41) [21,41) [21,41) [41,61) [21,41) [21,41) [21,41) [41,61)
## [325] [21,41) [21,41) [21,41) [21,41) [21,41) [21,41) [41,61) [21,41) [41,61)
## [334] [41,61) [21,41) [21,41) [41,61) [41,61) [21,41) [41,61) [21,41) [21,41)
## [343] [21,41) [21,41) [41,61) [41,61) [21,41) [21,41) [21,41) [21,41) [21,41)
## [352] [21,41) [41,61) [21,41) [21,41) [41,61) [21,41) [41,61) [41,61) [21,41)
## [361] [21,41) [61,81] [61,81] [61,81] [21,41) [21,41) [21,41) [21,41) [21,41)
## [370] [41,61) [21,41) [21,41) [21,41) [21,41) [21,41) [41,61) [21,41) [21,41)
## [379] [21,41) [21,41) [21,41) [21,41) [21,41) [21,41) [21,41) [21,41) [21,41)
## [388] [41,61) [41,61) [21,41) [41,61) [21,41) [21,41) [21,41) [21,41) [21,41)
## [397] [21,41) [21,41) [21,41) [21,41) [21,41) [41,61) [21,41) [21,41) [41,61)
## [406] [21,41) [41,61) [21,41) [21,41) [21,41) [21,41) [21,41) [21,41) [21,41)
## [415] [21,41) [21,41) [21,41) [21,41) [21,41) [21,41) [21,41) [21,41) [21,41)
## [424] [21,41) [21,41) [21,41) [21,41) [21,41) [21,41) [41,61) [21,41) [21,41)
## [433] [21,41) [21,41) [21,41) [21,41) [41,61) [21,41) [21,41) [21,41) [41,61)
## [442] [21,41) [21,41) [21,41) [21,41) [21,41) [21,41) [21,41) [21,41) [21,41)
## [451] [21,41) [21,41) [21,41) [61,81] [21,41) [21,41) [61,81] [21,41) [41,61)
## [460] [61,81] [41,61) [21,41) [21,41) [21,41) [21,41) [21,41) [21,41) [21,41)
## [469] [21,41) [21,41) [21,41) [21,41) [21,41) [41,61) [21,41) [41,61) [21,41)
## [478] [21,41) [21,41) [61,81] [21,41) [21,41) [21,41) [21,41) [21,41) [21,41)
## [487] [21,41) [41,61) [21,41) [61,81] [21,41) [41,61) [21,41) [41,61) [21,41)
## [496] [61,81] [21,41) [21,41) [41,61) [21,41) [21,41) [21,41) [41,61) [41,61)
## [505] [21,41) [21,41) [21,41) [21,41) [21,41) [61,81] [41,61) [21,41) [41,61)
## [514] [21,41) [21,41) [21,41) [41,61) [41,61) [41,61) [41,61) [21,41) [21,41)
## [523] [21,41) [41,61) [21,41) [21,41) [21,41) [21,41) [21,41) [21,41) [21,41)
## [532] [21,41) [21,41) [21,41) [21,41) [21,41) [41,61) [61,81] [21,41) [21,41)
## [541] [41,61) [21,41) [41,61) [21,41) [21,41) [21,41) [41,61) [21,41) [41,61)
## [550] [21,41) [21,41) [21,41) [61,81] [21,41) [21,41) [21,41) [21,41) [41,61)
## [559] [41,61) [21,41) [41,61) [21,41) [21,41) [21,41) [21,41) [21,41) [21,41)
## [568] [41,61) [21,41) [21,41) [21,41) [21,41) [21,41) [21,41) [21,41) [21,41)
## [577] [21,41) [21,41) [21,41) [61,81] [21,41) [21,41) [61,81] [41,61) [41,61)
## [586] [21,41) [41,61) [21,41) [41,61) [21,41) [41,61) [21,41) [41,61) [21,41)
## [595] [21,41) [21,41) [41,61) [21,41) [21,41) [21,41) [21,41) [21,41) [21,41)
## [604] [41,61) [21,41) [21,41) [21,41) [21,41) [21,41) [21,41) [21,41) [21,41)
## [613] [21,41) [21,41) [41,61) [21,41) [21,41) [21,41) [41,61) [21,41) [21,41)
## [622] [21,41) [41,61) [21,41) [21,41) [21,41) [21,41) [21,41) [41,61) [21,41)
## [631] [21,41) [21,41) [21,41) [21,41) [21,41) [21,41) [41,61) [21,41) [21,41)
## [640] [21,41) [21,41) [21,41) [41,61) [21,41) [21,41) [21,41) [21,41) [21,41)
## [649] [41,61) [21,41) [21,41) [21,41) [21,41) [21,41) [21,41) [21,41) [21,41)
## [658] [41,61) [41,61) [21,41) [41,61) [21,41) [41,61) [21,41) [21,41) [21,41)
## [667] [61,81] [21,41) [41,61) [41,61) [41,61) [21,41) [41,61) [21,41) [61,81]
## [676] [21,41) [41,61) [21,41) [21,41) [21,41) [21,41) [21,41) [21,41) [21,41)
## [685] [61,81] [21,41) [21,41) [21,41) [21,41) [41,61) [21,41) [41,61) [21,41)
## [694] [41,61) [21,41) [41,61) [21,41) [21,41) [21,41) [21,41) [21,41) [41,61)
## [703] [41,61) [41,61) [21,41) [21,41) [21,41) [21,41) [41,61) [21,41) [21,41)
## [712] [21,41) [21,41) [21,41) [21,41) [21,41) [21,41) [41,61) [21,41) [41,61)
## [721] [21,41) [21,41) [41,61) [41,61) [41,61) [21,41) [21,41) [21,41) [21,41)
## [730] [21,41) [21,41) [21,41) [21,41) [21,41) [41,61) [21,41) [21,41) [41,61)
## [739] [21,41) [41,61) [41,61) [21,41) [21,41) [41,61) [21,41) [41,61) [21,41)
## [748] [21,41) [21,41) [41,61) [21,41) [21,41) [21,41) [21,41) [41,61) [21,41)
## [757] [21,41) [41,61) [21,41) [61,81] [21,41) [41,61) [21,41) [61,81] [21,41)
## [766] [21,41) [41,61) [21,41)
## attr(,"discretized:breaks")
## [1] 21 41 61 81
## attr(,"discretized:method")
## [1] interval
## Levels: [21,41) [41,61) [61,81]
#Vemos la edad discretizada 
datanew4=cbind(datanew4, edad_discretizada2)
summary(datanew4)
##  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.02             
##  Median : 3.000   Median :117.0            Median : 71.21             
##  Mean   : 3.845   Mean   :120.9            Mean   : 68.94             
##  3rd Qu.: 6.000   3rd Qu.:140.2            3rd Qu.: 79.06             
##  Max.   :17.000   Max.   :199.0            Max.   :122.00             
##  Tríceps.espesor.del.pliegue.cutáneo X2.horas.suero.insulina
##  Min.   : 0.0                        Min.   :  0.00         
##  1st Qu.: 0.0                        1st Qu.:  0.00         
##  Median :23.0                        Median : 42.39         
##  Mean   :20.5                        Mean   : 78.57         
##  3rd Qu.:32.0                        3rd Qu.:126.55         
##  Max.   :99.0                        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   edad_discretizada2
##  Negativo:500   [21,41):574       
##  Positivo:268   [41,61):167       
##                 [61,81]: 27       
##                                   
##                                   
## 

3.4.-Formateamos

  write.csv(datanew4, file = "datos_Actualizados.csv")
  #exportar los datos en un excel
  getwd()
## [1] "C:/Users/Stephsnopb/Documents"