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 #—
## 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)
## 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)
## 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)
## 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 #—
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
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
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
#—
## 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