Cargando los datos sobre los infartos

infartos <- read.csv("https://archive.ics.uci.edu//ml//machine-learning-databases//00519//heart_failure_clinical_records_dataset.csv",header=TRUE)

names(infartos)=c('Edad','Anemia','CPK','Diabetes','Fraccion de eyeccion','Presion alta','Plaquetas','Suero de Creatinina','Suero de Sodio','sexo','Fumadores','Tiempo de seguimiento','Muerte')

#— #DATOS UNIVARIADOS

#VARIABLES CUANTITATIVAS #—

Infartos por edad

## Histograma
hist(infartos$Edad,col = 'pink',main = 'Histograma de infartos respecto a la edad',  xlab = 'Edades',ylab = 'Frecuencia',xlim = c(30,100))

#TABLA DE EDAD
table(infartos$Edad)
## 
##     40     41     42     43     44     45     46     47     48     49     50 
##      7      1      7      1      2     19      3      1      2      4     27 
##     51     52     53     54     55     56     57     58     59     60 60.667 
##      4      5     10      2     17      1      2     10      4     33      2 
##     61     62     63     64     65     66     67     68     69     70     72 
##      4      5      8      3     26      2      2      5      3     25      7 
##     73     75     77     78     79     80     81     82     85     86     87 
##      4     11      2      2      1      7      1      3      6      1      1 
##     90     94     95 
##      3      1      2
#Medidas estadisticas
summary(infartos$Edad)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   40.00   51.00   60.00   60.83   70.00   95.00
sd(infartos$Edad)
## [1] 11.89481
#Diagrama de cajas
boxplot(infartos$Edad, main = 'Diagrama de infartos por edad', col = 'yellow',horizontal = T)

Infartos respecto al examen de CPK

## Histograma
hist(infartos$CPK,col = 'bisque1',main = 'Histograma de infartos respecto a CPK', xlab = 'Valor por examen de CPK',ylab = 'Frecuencia')

#TABLA DE CPK
table(infartos$CPK)
## 
##   23   30   47   52   53   54   55   56   57   58   59   60   61   62   63   64 
##    1    1    3    1    1    1    1    2    1    1    3    3    2    1    1    3 
##   66   68   69   70   72   75   76   78   80   81   84   86   88   90   91   92 
##    4    3    3    1    1    1    1    1    2    2    3    1    1    1    1    1 
##   93   94   95   96   97   99  101  102  103  104  109  110  111  112  113  115 
##    1    1    1    2    1    1    1    2    1    1    2    1    1    1    2    3 
##  118  119  121  122  123  124  125  127  128  129  130  131  132  133  135  143 
##    1    1    1    2    1    1    1    1    1    4    1    1    2    1    2    2 
##  144  145  146  148  149  151  154  156  157  159  160  161  166  167  168  170 
##    1    1    1    2    1    1    1    1    2    1    1    1    1    2    2    1 
##  171  176  180  185  190  191  193  196  198  200  203  207  211  212  213  220 
##    1    1    1    1    1    1    1    2    1    1    1    1    1    2    1    1 
##  224  231  232  233  235  244  245  246  248  249  250  253  257  258  260  270 
##    2    3    1    1    1    1    1    1    1    1    2    1    1    1    1    1 
##  280  281  291  292  298  305  308  315  318  320  326  328  335  336  337  358 
##    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1 
##  364  369  371  379  395  400  418  427  446  478  482  514  553  571  572  577 
##    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1 
##  582  588  607  615  618  624  646  655  675  707  719  720  737  748  754  776 
##   47    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1 
##  789  805  835  855  892  897  898  910  936  943  972  981 1021 1051 1082 1185 
##    1    1    2    1    1    1    1    1    1    1    1    1    1    1    1    1 
## 1199 1202 1211 1380 1419 1548 1610 1688 1767 1808 1820 1846 1876 1896 2017 2060 
##    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1 
## 2261 2281 2334 2413 2442 2522 2656 2695 2794 3964 3966 4540 5209 5882 7702 7861 
##    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1
#Medidas estadisticas
summary(infartos$CPK)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    23.0   116.5   250.0   581.8   582.0  7861.0
sd(infartos$CPK)
## [1] 970.2879
#Diagrama de cajas
boxplot(infartos$CPK,main = 'Diagrama de infartos respecto a CPK', col = 'yellow',horizontal = T)

Infartos respecto a la fraccion de eyeccion

## Histograma
hist(infartos$`Fraccion de eyeccion`,main= 'Histograma de infartos con respecto a la fraccion de eyeccion', col = 'aquamarine1',xlab = 'Valores de Fraccion de eyeccion',ylab = 'Frecuencia')

#TABLA DE FRACCION DE EYECCION
table(infartos$`Fraccion de eyeccion`)
## 
## 14 15 17 20 25 30 35 38 40 45 50 55 60 62 65 70 80 
##  1  2  2 18 36 34 49 40 37 20 21  3 31  2  1  1  1
#Medidas estadisticas
summary(infartos$`Fraccion de eyeccion`)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   14.00   30.00   38.00   38.08   45.00   80.00
sd(infartos$`Fraccion de eyeccion`)
## [1] 11.83484
#Diagrama de cajas
boxplot(infartos$`Fraccion de eyeccion`, main = 'Diagrama de infartos respecto a la fraccion de eyeccion',col = 'cyan',horizontal = T)

Infartos respecto al examen de Suero de creatinina

## Histograma
hist(infartos$`Suero de Creatinina`,main= 'Histograma de infartos respecto al examen de Suero de creatinina', col = 'magenta',xlab = 'Valores de Suero de creatinina',ylab = 'Frecuencia')

#TABLA DE SUERO DE CREATININA
table(infartos$`Suero de Creatinina`)
## 
##  0.5  0.6  0.7 0.75  0.8  0.9    1  1.1 1.18  1.2  1.3  1.4  1.5  1.6  1.7  1.8 
##    1    4   19    1   24   32   50   32   11   24   20    9    5    6    9    4 
## 1.83  1.9    2  2.1  2.2  2.3  2.4  2.5  2.7  2.9    3  3.2  3.4  3.5  3.7  3.8 
##    8    5    1    5    1    3    2    3    3    1    2    1    1    2    1    1 
##    4  4.4    5  5.8  6.1  6.8    9  9.4 
##    1    1    1    1    1    1    1    1
#Medidas estadisticas
summary(infartos$`Suero de Creatinina`)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.500   0.900   1.100   1.394   1.400   9.400
sd(infartos$`Suero de Creatinina`)
## [1] 1.03451
#Diagrama de cajas
boxplot(infartos$`Suero de Creatinina`, main = 'Diagrama de infartos respecto al examen de Suero de Creatinina', col = 'magenta',horizontal = T)

#— #VARIABLES CUALITATIVAS #—

Personas infartadas con anemia

library(lattice)
library(fdth)
## Warning: package 'fdth' was built under R version 4.0.2
## 
## Attaching package: 'fdth'
## The following objects are masked from 'package:stats':
## 
##     sd, var
#cero=NO Y UNO=SI
x<-matrix(c(170,129), ncol = 2, byrow = TRUE)
colnames(x)<-c('SIN ANEMIA','CON ANEMIA')
rownames(x)<-c('NÚMERO DE CASOS')
x
##                 SIN ANEMIA CON ANEMIA
## NÚMERO DE CASOS        170        129
counts<- table(infartos$Anemia)
barchart(counts, main= 'Grafico de barras de personas inafartadas con anemia', xlab= 'Tipo de casos (0=SIN ANEMIA Y 1=CON ANEMIA)', ylab= 'Frecuencia', col= c('yellow', 'pink'), horizontal = FALSE)

#Tabla de frecuencias
fr<-fdt(infartos$Anemia, breaks ="Sturges", right = F)
fr
##   Class limits   f   rf rf(%)  cf  cf(%)
##      [0,0.101) 170 0.57 56.86 170  56.86
##  [0.101,0.202)   0 0.00  0.00 170  56.86
##  [0.202,0.303)   0 0.00  0.00 170  56.86
##  [0.303,0.404)   0 0.00  0.00 170  56.86
##  [0.404,0.505)   0 0.00  0.00 170  56.86
##  [0.505,0.606)   0 0.00  0.00 170  56.86
##  [0.606,0.707)   0 0.00  0.00 170  56.86
##  [0.707,0.808)   0 0.00  0.00 170  56.86
##  [0.808,0.909)   0 0.00  0.00 170  56.86
##   [0.909,1.01) 129 0.43 43.14 299 100.00

Personas infartadas con presion alta

library(lattice)
library(fdth)

#TOTAL DE PACIENTES CON PRESION ALTA
x<-matrix(c(194,105), ncol = 2, byrow = TRUE)
colnames(x)<-c('SIN PRESION ALTA','CON PRESION ALTA')
rownames(x)<-c('NÚMERO DE CASOS')
x
##                 SIN PRESION ALTA CON PRESION ALTA
## NÚMERO DE CASOS              194              105
#DIAGRAMA CIRCULAR
porcentajes <- as.numeric(round(((prop.table(table(infartos$`Presion alta`)))*100),2))
etiquetas<-c('SIN PRESION ALTA','CON PRESION ALTA')
etiquetas <- paste(etiquetas, porcentajes)
etiquetas <- paste(etiquetas, "%", sep = "")
pie(porcentajes, etiquetas,main= 'Grafico de personas infartadas con Presion alta', col= c('plum', 'skyblue2'))

counts<- table(infartos$`Presion alta`)
barchart(counts, main= 'Grafico de barras de personas inafartadas con presiOn alta', xlab= 'Tipo de casos (0=sin presion alta, 1=con presion alta)', ylab= 'Frecuencia', col= c('plum', 'skyblue2'), horizontal = FALSE)

#Tabla de frecuencias
fr3<-fdt(infartos$`Presion alta`,breaks ="Sturges", right = F)
fr3
##   Class limits   f   rf rf(%)  cf  cf(%)
##      [0,0.101) 194 0.65 64.88 194  64.88
##  [0.101,0.202)   0 0.00  0.00 194  64.88
##  [0.202,0.303)   0 0.00  0.00 194  64.88
##  [0.303,0.404)   0 0.00  0.00 194  64.88
##  [0.404,0.505)   0 0.00  0.00 194  64.88
##  [0.505,0.606)   0 0.00  0.00 194  64.88
##  [0.606,0.707)   0 0.00  0.00 194  64.88
##  [0.707,0.808)   0 0.00  0.00 194  64.88
##  [0.808,0.909)   0 0.00  0.00 194  64.88
##   [0.909,1.01) 105 0.35 35.12 299 100.00

Personas infartadas respecto al sexo

library(lattice)
library(fdth)

#TOTAL POR SEXO
x<-matrix(c(194,105), ncol = 2, byrow = TRUE)
colnames(x)<-c('NUMERO DE HOMBRES','NUMERO DE MUJERES')
rownames(x)<-c('NÚMERO DE CASOS')
x
##                 NUMERO DE HOMBRES NUMERO DE MUJERES
## NÚMERO DE CASOS               194               105
#Diagrama circular
porcentajes <- as.numeric(round(((prop.table(table(infartos$sexo)))*100),2))
etiquetas<-c('Mujeres','Hombres')
etiquetas <- paste(etiquetas, porcentajes)
etiquetas <- paste(etiquetas, "%", sep = "")
pie(porcentajes, etiquetas,main= 'Grafico de personas infartadas con diabetes', col= c('orange', 'steelblue1'))

counts<- table(infartos$sexo)
barchart(counts, main= 'GrAfico de barras de personas inafartadas segun su sexo', xlab= 'Sexo de paciente (0=Mujer, 1=Hombre)', col=c('orange','steelblue1'),horizontal = FALSE)

#Tabla de frecuencias
fr4<-fdt(infartos$sexo,breaks ="Sturges", right = F)
fr4
##   Class limits   f   rf rf(%)  cf  cf(%)
##      [0,0.101) 105 0.35 35.12 105  35.12
##  [0.101,0.202)   0 0.00  0.00 105  35.12
##  [0.202,0.303)   0 0.00  0.00 105  35.12
##  [0.303,0.404)   0 0.00  0.00 105  35.12
##  [0.404,0.505)   0 0.00  0.00 105  35.12
##  [0.505,0.606)   0 0.00  0.00 105  35.12
##  [0.606,0.707)   0 0.00  0.00 105  35.12
##  [0.707,0.808)   0 0.00  0.00 105  35.12
##  [0.808,0.909)   0 0.00  0.00 105  35.12
##   [0.909,1.01) 194 0.65 64.88 299 100.00

#— #DATOS BIVARIADOS

#—

Cruce de Variables

## EDAD
boxplot(infartos$Edad~infartos$sexo, main = 'Diagrama de edad vs sexo', col= c('yellow', 'coral2'))

boxplot(infartos$Edad~infartos$Anemia, main = 'Diagrama de edad vs anemia', col= c('yellow', 'lightpink'))

boxplot(infartos$Edad~infartos$`Presion alta`, main = 'Diagrama de edad vs presión alta', col= c('yellow', 'lightgreen'))

##Fraccion de eyeccion

boxplot(infartos$`Fraccion de eyeccion`~infartos$sexo, main = 'Diagrama de fracción de eyeccion vs sexo', col= c('steelblue1', 'coral2'))

boxplot(infartos$`Fraccion de eyeccion`~infartos$Anemia, main = 'Diagrama de fracción de eyeccion vs  anemia', col= c('steelblue1', 'lightpink'))

boxplot(infartos$`Fraccion de eyeccion`~infartos$`Presion alta`, main = 'Diagrama de fracción de eyeccion vs presión alta', col= c('steelblue1', 'lightgreen'))

##Suero de creatinina

boxplot(infartos$`Suero de Creatinina`~infartos$sexo, main = 'Diagrama de Suero de creatinina vs sexo', col= c('sienna1', 'coral2'))

boxplot(infartos$`Suero de Creatinina`~infartos$Anemia, main = 'Diagrama de Suero de creatinina vs anemia', col= c('sienna1', 'lightpink'))

boxplot(infartos$`Suero de Creatinina`~infartos$`Presion alta`, main = 'Diagrama de Suero de creatinina vs presión alta', col= c('sienna1', 'lightgreen'))

##CPK
boxplot(infartos$CPK~infartos$sexo, main = 'Diagrama de CPK vs sexo', col= c('skyblue1', 'coral2'))

boxplot(infartos$CPK~infartos$Anemia, main = 'Diagrama de CPK vs anemia', col= c('skyblue1', 'lightpink'))

boxplot(infartos$CPK~infartos$`Presion alta`, main = 'Diagrama de CPK vs presión alta', col= c('skyblue1', 'lightgreen'))

##MATRIZ DE CORRELACION
cor(infartos[,c(1,5,8,3)])
##                             Edad Fraccion de eyeccion Suero de Creatinina
## Edad                  1.00000000           0.06009836          0.15918713
## Fraccion de eyeccion  0.06009836           1.00000000         -0.01130247
## Suero de Creatinina   0.15918713          -0.01130247          1.00000000
## CPK                  -0.08158390          -0.04407955         -0.01640848
##                              CPK
## Edad                 -0.08158390
## Fraccion de eyeccion -0.04407955
## Suero de Creatinina  -0.01640848
## CPK                   1.00000000
#grafica de matriz de correlacion
library(corrplot)
## Warning: package 'corrplot' was built under R version 4.0.2
## corrplot 0.84 loaded
corrplot(cor(infartos[,c(1,5,8,3)])) 

##Matriz gráficos de dispersion
plot(infartos[,c(1,5,8,3)],col=c('blue', 'yellow','pink','azure3'))

##Matriz varianzas y covarianzas
names (infartos)[8] = 'Suero/Creatinina'

cov(infartos[,c(1,5,8,3)])
##                             Edad Fraccion de eyeccion Suero/Creatinina
## Edad                  141.486483            8.4602372        1.9588454
## Fraccion de eyeccion    8.460237          140.0634554       -0.1383792
## Suero/Creatinina        1.958845           -0.1383792        1.0702111
## CPK                  -941.591531         -506.1744518      -16.4703818
##                               CPK
## Edad                   -941.59153
## Fraccion de eyeccion   -506.17445
## Suero/Creatinina        -16.47038
## CPK                  941458.57146