Información: HEART DISEASE

library(readxl)
act3 <- read_excel("C:/Users/psicr/Downloads/a4_heart_disease_uci.xlsx", sheet =1)
str(act3)
## tibble [920 × 16] (S3: tbl_df/tbl/data.frame)
##  $ id      : num [1:920] 1 2 3 4 5 6 7 8 9 10 ...
##  $ age     : num [1:920] 63 67 67 37 41 56 62 57 63 53 ...
##  $ sex     : chr [1:920] "Male" "Male" "Male" "Male" ...
##  $ dataset : chr [1:920] "Cleveland" "Cleveland" "Cleveland" "Cleveland" ...
##  $ cp      : chr [1:920] "typical angina" "asymptomatic" "asymptomatic" "non-anginal" ...
##  $ trestbps: num [1:920] 145 160 120 130 130 120 140 120 130 140 ...
##  $ chol    : num [1:920] 233 286 229 250 204 236 268 354 254 203 ...
##  $ fbs     : logi [1:920] TRUE FALSE FALSE FALSE FALSE FALSE ...
##  $ restecg : chr [1:920] "lv hypertrophy" "lv hypertrophy" "lv hypertrophy" "normal" ...
##  $ thalch  : num [1:920] 150 108 129 187 172 178 160 163 147 155 ...
##  $ exang   : logi [1:920] FALSE TRUE TRUE FALSE FALSE FALSE ...
##  $ oldpeak : num [1:920] 2.3 1.5 2.6 3.5 1.4 0.8 3.6 0.6 1.4 3.1 ...
##  $ slope   : chr [1:920] "downsloping" "flat" "flat" "downsloping" ...
##  $ ca      : num [1:920] 0 3 2 0 0 0 2 0 1 0 ...
##  $ thal    : chr [1:920] "fixed defect" "normal" "reversable defect" "normal" ...
##  $ num     : num [1:920] 0 2 1 0 0 0 3 0 2 1 ...
summary(act3)
##        id             age            sex              dataset         
##  Min.   :  1.0   Min.   :28.00   Length:920         Length:920        
##  1st Qu.:230.8   1st Qu.:47.00   Class :character   Class :character  
##  Median :460.5   Median :54.00   Mode  :character   Mode  :character  
##  Mean   :460.5   Mean   :53.51                                        
##  3rd Qu.:690.2   3rd Qu.:60.00                                        
##  Max.   :920.0   Max.   :77.00                                        
##                                                                       
##       cp               trestbps          chol          fbs         
##  Length:920         Min.   :  0.0   Min.   :  0.0   Mode :logical  
##  Class :character   1st Qu.:120.0   1st Qu.:175.0   FALSE:692      
##  Mode  :character   Median :130.0   Median :223.0   TRUE :138      
##                     Mean   :132.1   Mean   :199.1   NA's :90       
##                     3rd Qu.:140.0   3rd Qu.:268.0                  
##                     Max.   :200.0   Max.   :603.0                  
##                     NA's   :59      NA's   :30                     
##    restecg              thalch        exang            oldpeak       
##  Length:920         Min.   : 60.0   Mode :logical   Min.   :-2.6000  
##  Class :character   1st Qu.:120.0   FALSE:528       1st Qu.: 0.0000  
##  Mode  :character   Median :140.0   TRUE :337       Median : 0.5000  
##                     Mean   :137.5   NA's :55        Mean   : 0.8788  
##                     3rd Qu.:157.0                   3rd Qu.: 1.5000  
##                     Max.   :202.0                   Max.   : 6.2000  
##                     NA's   :55                      NA's   :62       
##     slope                 ca             thal                num        
##  Length:920         Min.   :0.0000   Length:920         Min.   :0.0000  
##  Class :character   1st Qu.:0.0000   Class :character   1st Qu.:0.0000  
##  Mode  :character   Median :0.0000   Mode  :character   Median :1.0000  
##                     Mean   :0.6764                      Mean   :0.9957  
##                     3rd Qu.:1.0000                      3rd Qu.:2.0000  
##                     Max.   :3.0000                      Max.   :4.0000  
##                     NA's   :611
library(modeest)
## Warning: package 'modeest' was built under R version 4.5.2
moda_sexo <- mfv(act3$sex)
moda_sexo
## [1] "Male"
moda_dataset <- mfv(act3$dataset)
moda_dataset
## [1] "Cleveland"
dim(act3)
## [1] 920  16

La base contiene 920 casos descritos a través de 15 variables, más el folio. Hay tres descriptivas sociodemográficas donde se aprecia que los participantes tienen una edad media de 53.51 años, min=28 max=77; La mayoría son de sexo masculino y la mayor frecuencia de la fuente de registro fue Cleveland. Las variables restantes son elementos que ayudan al diagnóstico de enfermedades cardiacas como el nivel de colesterol o la frecuencia cardiaca más alta.

Algunos de los elementos evaluados que sirven como signos de posible enfermedad cardiaca son:

Electrocardiagrama por sexo

La gráfica de barras muestra tres posibles resultados del ECG, sin contar datos perdidos, para hombres y mujeres; se puede observar que el resultado determinado como normal es el de mayor frecuencia tanto en hombres como en mujeres.

library(ggplot2)
ggplot(act3, aes(x=restecg, fill=sex)) + geom_bar(position= "dodge") + labs(title= "ECG por sexo", x="resultado ECG", y= "frecuencia", fill="sexo")

Prueba de talasemia por sexo

El análisis de talasemia en sangre es para detectar la presencia de dicho trastorno genético en la hemoglobina. El gráfico muestra, además de una gran cantidad de datos perdidos, que en los hombres d ela muestra hay una alta frecuencia del defecto reversible, mientras que en las mujeres la mayor frecuencia es de resultados en nivel normal.

ggplot(act3, aes(x=thal, fill=sex)) + geom_bar(position= "dodge") + labs(title= "Prueba de sangre de talasemia por sexo", x="resultado de análisis de sangre", y= "frecuencia", fill="sexo")

Colesterol sérico y edad del participante

El gráfico de puntos, al mostrar una tendencia horizontal, indicaría que no se aprecia una relación entre la edad y el nivel de colesterol de los pacientes. Aunque hay datos perdidos las variables, la mayor parte muestra esta tendencia, donde la mayoría de los participantes presentan un nivel de colesterol entre 180 a 380 mg distribuido en diferentes edades.

ggplot(act3, aes(x=age, y=chol)) + geom_point(color="purple", size=2, alpha =0.7) + labs(title =" Diagrama de dispersión del nivel de colesterol y la edad", x="Edad", y="Colesterol sérico")
## Warning: Removed 30 rows containing missing values or values outside the scale range
## (`geom_point()`).

Frecuencia cardiaca máxima por grado de severidad diagnosticado

Los gráficos de caja y bigotes muestran la distribución de la frecuencia cardiaca máxima por cada uno de los niveles de severidad del diagnóstico final, donde el cero significa que no hay enfermedad cardiaca, mientras que del 1 al 4 son niveles de mayor severidad. De acuerdo con los gráficos, aquellos que no presentan enfermedad cardiaca muestran la tendencia central más alta de frecuencia cardiaca, mientras que aquellos con severidad de nivel 3 presentaron la tendencia más baja. En general, los cinco tipos presentan dispersión en las frecuencias máximas medidas y poco sesgo.

ggplot(act3, aes(x= factor(num), y=thalch)) + geom_boxplot(aes(fill= num), color ="black", alpha =0.7) + labs(title ="Boxplot de la frecuencia cardiaca máxima por niveles de severidad", x=" Nivel de severidad diagnosticado ", y="Frec cardiaca máxima")
## Warning: Removed 55 rows containing non-finite outside the scale range
## (`stat_boxplot()`).