Información de los datos

PROYECTO ANÁLISIS DE ENFERMEDAD CARDIACA

Row

Descripción de los datos

El conjunto de datos que se va a trabajar corresponde a una base clínica llamada heart.csv, ampliamente utilizada para el estudio de enfermedad cardiaca en pacientes adultos.
La base contiene información de 918 pacientes y 12 variables relacionadas con factores de riesgo cardiovascular y hallazgos clínicos, tales como edad, sexo, presión arterial, colesterol, frecuencia cardiaca máxima, tipo de dolor en el pecho, resultados de ECG en reposo, presencia de angina de esfuerzo y depresión del segmento ST, entre otros.

El objetivo principal es analizar cómo estos factores se relacionan con el diagnóstico final de enfermedad cardiaca, representado en la variable HeartDisease (0 = sin enfermedad, 1 = con enfermedad).

Enfermedad cardiaca

Row

descripcion de los datos

VARIABLE DESCRIPCIÓN TIPO ESCALA DE MEDICIÓN UNIDAD DE MEDICIÓN
Age Edad del paciente Cuantitativa Razón Años
Sex Sexo del paciente (Hombre / Mujer) Cualitativa Nominal No aplica
ChestPainType Tipo de dolor en el pecho (ATA, NAP, ASY, TA) Cualitativa Nominal No aplica
RestingBP Presión arterial en reposo Cuantitativa Razón mmHg
Cholesterol Colesterol sérico total Cuantitativa Razón mg/dL
FastingBS Glucemia en ayunas > 120 mg/dL (0 = No, 1 = Sí) Cualitativa dicotómica Nominal No aplica
RestingECG Resultado del electrocardiograma en reposo Cualitativa Nominal No aplica
MaxHR Frecuencia cardiaca máxima alcanzada Cuantitativa Razón Latidos/min
ExerciseAngina Presencia de angina inducida por el ejercicio (Y/N) Cualitativa dicotómica Nominal No aplica
Oldpeak Depresión del segmento ST respecto al nivel de reposo Cuantitativa Intervalo mm
ST_Slope Pendiente del segmento ST (Up, Flat, Down) Cualitativa ordinal Ordinal No aplica
HeartDisease Diagnóstico de enfermedad cardiaca (0 = No, 1 = Sí) Cualitativa dicotómica Nominal No aplica

Análisis descriptivos

PROYECTO ANÁLISIS DE ENFERMEDAD CARDIACA

Row

Summary

      Age            Sex            ChestPainType        RestingBP    
 Min.   :28.00   Length:918         Length:918         Min.   :  0.0  
 1st Qu.:47.00   Class :character   Class :character   1st Qu.:120.0  
 Median :54.00   Mode  :character   Mode  :character   Median :130.0  
 Mean   :53.51                                         Mean   :132.4  
 3rd Qu.:60.00                                         3rd Qu.:140.0  
 Max.   :77.00                                         Max.   :200.0  
  Cholesterol      FastingBS       RestingECG            MaxHR      
 Min.   :  0.0   Min.   :0.0000   Length:918         Min.   : 60.0  
 1st Qu.:173.2   1st Qu.:0.0000   Class :character   1st Qu.:120.0  
 Median :223.0   Median :0.0000   Mode  :character   Median :138.0  
 Mean   :198.8   Mean   :0.2331                      Mean   :136.8  
 3rd Qu.:267.0   3rd Qu.:0.0000                      3rd Qu.:156.0  
 Max.   :603.0   Max.   :1.0000                      Max.   :202.0  
 ExerciseAngina        Oldpeak          ST_Slope          HeartDisease   
 Length:918         Min.   :-2.6000   Length:918         Min.   :0.0000  
 Class :character   1st Qu.: 0.0000   Class :character   1st Qu.:0.0000  
 Mode  :character   Median : 0.6000   Mode  :character   Median :1.0000  
                    Mean   : 0.8874                      Mean   :0.5534  
                    3rd Qu.: 1.5000                      3rd Qu.:1.0000  
                    Max.   : 6.2000                      Max.   :1.0000  

row

graficos distribucion edad

### grafico distribucion

analisis descriptivo3

PROYECTO ANÁLISIS DE ENFERMEDAD CARDIACA

row

row

analisis descriptivo 2

PROYECTO ANÁLISIS DE ENFERMEDAD CARDIACA

matriz correlacion

row ———————————–

* El modelo ajustado fue:
\[ \text{Cholesterol} = 257.93 - 1.10 \times \text{Age} \]

  • Pendiente (-1.10):
    Indica que por cada año adicional de edad, el colesterol total disminuye en promedio aproximadamente 1.10 mg/dL.
    La magnitud es pequeña, por lo que la relación lineal entre la edad y el colesterol es débil.

  • Intercepto (257.93):
    Representa el valor estimado del colesterol cuando la edad es 0 años.
    Aunque no tiene un significado clínico real (nadie tiene 0 años en la base), sirve como punto de referencia matemático para la ecuación de la recta.

Gráfico 1

PROYECTO ANÁLISIS DE ENFERMEDAD CARDIACA

Row

Diagrama de cajas por grupos

row

toma de variables cualitativas

   
      0   1
  F 143  50
  M 267 458

Eso muestra cuántos pacientes hay en cada combinación:

  • Hombre / No enfermedad
  • Hombre / Enfermedad
  • Mujer / No enfermedad
  • Mujer / Enfermedad

interpretacion

La tabla cruzada muestra la relación entre el sexo y la presencia de enfermedad cardiaca. En general, se observa que: En el grupo de hombres, la cantidad de pacientes con enfermedad cardiaca suele ser mayor que la de pacientes sin enfermedad. En el grupo de mujeres, la proporción de no enfermedad suele ser más alta o más equilibrada frente a los casos con enfermedad. Esto sugiere que, en esta base de datos, el sexo masculino presenta una mayor carga de enfermedad cardiaca, lo cual es consistente con lo que se reporta en muchos estudios clínicos sobre riesgo cardiovascular.

Gráfico 2

PROYECTO ANÁLISIS DE ENFERMEDAD CARDIACA

Row

Diagrama de barras apiladas

### Interpretación

El diagrama de barras apiladas muestra la relación entre el tipo de dolor en el pecho y la presencia de enfermedad cardiaca:

  • En los pacientes con dolor asintomático (ASY) se observa una alta frecuencia de casos con enfermedad cardiaca, lo que indica que muchas personas pueden tener el corazón comprometido aun sin presentar dolor típico.
  • En los tipos de dolor ATA y NAP la cantidad de pacientes con y sin enfermedad es más equilibrada.
  • En TA hay menos casos en general, pero también se observa presencia de enfermedad.

En conjunto, la gráfica sugiere que el tipo de dolor en el pecho está relacionado con el riesgo de enfermedad cardiaca y que ser asintomático no significa necesariamente estar sano. ```

Pronóstico

Debido a la ausencia de una serie temporal o de registros secuenciales, no es posible aplicar modelos de pronóstico en el tiempo (como ARIMA, Holt-Winters o redes neuronales recurrentes), ya que estos requieren observar tendencias, estacionalidad o variaciones temporales para poder predecir valores futuros. En este caso, el análisis es principalmente descriptivo y de asociación, más que de predicción temporal.


conclusiones

CONCLUSIONES

Row

  • Los resultados evidencian que variables clínicas como la presión arterial en reposo, el colesterol, la frecuencia cardiaca máxima y la depresión del segmento ST (Oldpeak) se relacionan de forma importante con la presencia de enfermedad cardiaca.

  • Variables demográficas como la edad y el *sexo, combinadas con los hallazgos clínicos, permiten caracterizar mejor el **perfil de riesgo cardiovascular* de los pacientes.

  • Se observaron patrones en los cuales ciertos tipos de dolor en el pecho, especialmente los pacientes asintomáticos (ASY), concentran una proporción elevada de casos con enfermedad, mostrando que la falta de síntomas típicos no garantiza un corazón sano.

  • El cruce entre sexo y enfermedad cardiaca sugiere que los hombres presentan una mayor carga de enfermedad en esta base de datos, lo cual coincide con múltiples estudios epidemiológicos sobre riesgo cardiovascular.

  • Aunque la base heart.csv no permite hacer pronósticos en el tiempo, la combinación de variables cualitativas (síntomas, resultados de pruebas) y cuantitativas (presión arterial, colesterol, edad, frecuencia cardiaca) ofrece una visión completa del estado cardiaco actual, y sirve como punto de partida para estrategias de prevención y detección temprana.

---
title: "Dashboard"
author: "Manuela Rincón Maldonado, Ana Sofía Figueroa Ledezma"
date: "2025-11-13"
output: 
  flexdashboard::flex_dashboard:
    orientation: rows
    social: menu
    source_code: embed
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)

library(dplyr)
library(ggplot2)
```
Información de los datos 
====================================================================================

<div style="text-align: center; font-size: 28px; font-weight: bold; margin-top: 2px;">
PROYECTO ANÁLISIS DE ENFERMEDAD CARDIACA
</div>
Row
------------------------------------------------------------------------------------

### **Descripción de los datos**

El conjunto de datos que se va a trabajar corresponde a una base clínica llamada **heart.csv**, ampliamente utilizada para el estudio de enfermedad cardiaca en pacientes adultos.  
La base contiene información de **918 pacientes** y **12 variables** relacionadas con factores de riesgo cardiovascular y hallazgos clínicos, tales como edad, sexo, presión arterial, colesterol, frecuencia cardiaca máxima, tipo de dolor en el pecho, resultados de ECG en reposo, presencia de angina de esfuerzo y depresión del segmento ST, entre otros.  

El objetivo principal es analizar cómo estos factores se relacionan con el diagnóstico final de enfermedad cardiaca, representado en la variable **HeartDisease (0 = sin enfermedad, 1 = con enfermedad)**.

### **Enfermedad cardiaca**

![](triste-enfermo-joven-problema-cardiaco_92289-7.jpg.avif)

Row
------------------------------------------------------------------------------------

### **descripcion de los datos**

| **VARIABLE**   | **DESCRIPCIÓN**                                       | **TIPO**               | **ESCALA DE MEDICIÓN** | **UNIDAD DE MEDICIÓN** |
| -------------- | ----------------------------------------------------- | ---------------------- | ---------------------- | ---------------------- |
| Age            | Edad del paciente                                     | Cuantitativa           | Razón                  | Años                   |
| Sex            | Sexo del paciente (Hombre / Mujer)                    | Cualitativa            | Nominal                | No aplica              |
| ChestPainType  | Tipo de dolor en el pecho (ATA, NAP, ASY, TA)         | Cualitativa            | Nominal                | No aplica              |
| RestingBP      | Presión arterial en reposo                            | Cuantitativa           | Razón                  | mmHg                   |
| Cholesterol    | Colesterol sérico total                               | Cuantitativa           | Razón                  | mg/dL                  |
| FastingBS      | Glucemia en ayunas > 120 mg/dL (0 = No, 1 = Sí)       | Cualitativa dicotómica | Nominal                | No aplica              |
| RestingECG     | Resultado del electrocardiograma en reposo            | Cualitativa            | Nominal                | No aplica              |
| MaxHR          | Frecuencia cardiaca máxima alcanzada                  | Cuantitativa           | Razón                  | Latidos/min            |
| ExerciseAngina | Presencia de angina inducida por el ejercicio (Y/N)   | Cualitativa dicotómica | Nominal                | No aplica              |
| Oldpeak        | Depresión del segmento ST respecto al nivel de reposo | Cuantitativa           | Intervalo              | mm                     |
| ST_Slope       | Pendiente del segmento ST (Up, Flat, Down)            | Cualitativa ordinal    | Ordinal                | No aplica              |
| HeartDisease   | Diagnóstico de enfermedad cardiaca (0 = No, 1 = Sí)   | Cualitativa dicotómica | Nominal                | No aplica              |

Análisis descriptivos 
====================================================================================
<div style="text-align: center; font-size: 28px; font-weight: bold; margin-top: 2px;">
PROYECTO ANÁLISIS DE ENFERMEDAD CARDIACA
</div>

Row
------------------------------------------------------------------------------------
### **Summary**

```{r summary, echo=FALSE}
heart <- read.csv("heart.csv", stringsAsFactors = FALSE)
summary(heart)
```
row
-----------------------------
### **graficos distribucion edad**
```{r, echo=FALSE}
library(dplyr)
library(ggplot2)

ggplot(heart, aes(x = Age)) +
geom_histogram(bins = 20, fill = "skyblue", color = "black") +
labs(
x = "Edad (años)",
y = "Frecuencia",
title = "Distribución de la edad de los pacientes"
)
```
### **grafico distribucion**

```{r piechart_target, echo=FALSE}
library(dplyr)
library(ggplot2)

estado_data <- heart %>%
  mutate(HeartDisease = factor(HeartDisease,
                               levels = c(0, 1),
                               labels = c("No enfermedad", "Enfermedad"))) %>%
  group_by(HeartDisease) %>%
  summarise(count = n()) %>%
  mutate(
    prop  = count / sum(count),
    label = paste0(HeartDisease, " (", round(prop * 100, 1), "%)")
  )

ggplot(estado_data, aes(x = "", y = prop, fill = HeartDisease)) +
  geom_col(color = "white") +
  coord_polar(theta = "y") +
  labs(fill = "Estado cardiaco") +
  geom_text(aes(label = label), position = position_stack(vjust = 0.5)) +
  scale_fill_manual(values = c("No enfermedad" = "turquoise3",
                               "Enfermedad" = "salmon")) +
  theme_void()
```

analisis descriptivo3
====================================================================================
<div style="text-align: center; font-size: 28px; font-weight: bold; margin-top: 2px;">
PROYECTO ANÁLISIS DE ENFERMEDAD CARDIACA
</div>
row
-------------------


```{r g2, echo=FALSE}
ggplot(heart, aes(y = RestingBP)) +
geom_boxplot(fill = "lightblue", color = "black") +
labs(
title = "Distribución de la presión arterial en reposo",
y = "Presión arterial en reposo (mmHg)"
)
```



```{r g3, echo=FALSE}
ggplot(heart, aes(y = Cholesterol)) +
  geom_boxplot(fill = "lightgreen", color = "black") +
  labs(
    title = "Distribución del colesterol",
    y = "Colesterol (mg/dL)"
  )

```

row
--------------------

```{r g4, echo=FALSE}
ggplot(heart, aes(y = MaxHR)) +
  geom_boxplot(fill = "lightpink", color = "black") +
  labs(
    title = "Distribución de la frecuencia cardiaca máxima",
    y = "Frecuencia cardiaca máxima (latidos/min)"
  )

```


```{r g5, echo=FALSE}
ggplot(heart, aes(y = Oldpeak)) +
  geom_boxplot(fill = "purple", color = "black") +
  labs(
    title = "Distribución de Oldpeak (depresión del ST)",
    y = "Oldpeak (mm)"
  )
```

analisis descriptivo 2
====================================================================================
<div style="text-align: center; font-size: 28px; font-weight: bold; margin-top: 2px;">
PROYECTO ANÁLISIS DE ENFERMEDAD CARDIACA
</div>

### **matriz correlacion**

```{r matriz_cor, echo=FALSE}
# Seleccionamos solo variables numéricas de interés
base_num <- heart[, c("Age", "RestingBP", "Cholesterol", 
                      "MaxHR", "Oldpeak")]

matriz_cor <- cor(base_num, use = "complete.obs", method = "pearson")
# round(matriz_cor, 2)
if (!require(corrplot)) install.packages("corrplot")
library(corrplot)

corrplot(matriz_cor, method = "color", addCoef.col = "black",
tl.col = "black", tl.srt = 45)


```
row
-----------------------------------
```{r grafico_age_chol, echo=FALSE}
ggplot(heart, aes(x = Age, y = Cholesterol)) +
  geom_point(color = "steelblue", alpha = 0.6) +
  geom_smooth(method = "lm", color = "red", se = TRUE) +
  labs(
    title = "Diagrama de dispersión entre Edad y Colesterol",
    x = "Edad (años)",
    y = "Colesterol (mg/dL)"
  ) +
  theme_minimal()

```
* El modelo ajustado fue:  
  \[
  \text{Cholesterol} = 257.93 - 1.10 \times \text{Age}
  \]

* **Pendiente (-1.10):**  
  Indica que por **cada año adicional de edad**, el **colesterol total** disminuye en promedio aproximadamente **1.10 mg/dL**.  
  La magnitud es pequeña, por lo que la relación lineal entre la edad y el colesterol es **débil**.

* **Intercepto (257.93):**  
  Representa el valor estimado del colesterol cuando la edad es 0 años.  
  Aunque no tiene un significado clínico real (nadie tiene 0 años en la base), sirve como punto de referencia matemático para la ecuación de la recta.

Gráfico 1
====================================================================================
<div style="text-align: center; font-size: 28px; font-weight: bold; margin-top: 2px;">
PROYECTO ANÁLISIS DE ENFERMEDAD CARDIACA
</div>
Row
----------------------------
### **Diagrama de cajas por grupos**
```{r grafico1, echo=FALSE}
ggplot(heart,
       aes(x = Sex, y = Cholesterol)) +
  geom_boxplot(fill = "skyblue", color = "darkblue", alpha = 1) +
  labs(
    title = "Colesterol según sexo",
    x = "Sexo",
    y = "Colesterol (mg/dL)"
  ) +
  theme_minimal()

```

row
------------------------------------

### **toma de variables cualitativas**
```{r tabla_cualitativas, echo=FALSE}

table(heart$Sex, heart$HeartDisease)
```
Eso muestra cuántos pacientes hay en cada combinación:

- Hombre / No enfermedad  
- Hombre / Enfermedad  
- Mujer / No enfermedad  
- Mujer / Enfermedad  

### **interpretacion**
La tabla cruzada muestra la relación entre el sexo y la presencia de enfermedad cardiaca.
En general, se observa que:
En el grupo de hombres, la cantidad de pacientes con enfermedad cardiaca suele ser mayor que la de pacientes sin enfermedad.
En el grupo de mujeres, la proporción de no enfermedad suele ser más alta o más equilibrada frente a los casos con enfermedad.
Esto sugiere que, en esta base de datos, el sexo masculino presenta una mayor carga de enfermedad cardiaca, lo cual es consistente con lo que se reporta en muchos estudios clínicos sobre riesgo cardiovascular.

Gráfico 2
====================================================================================
<div style="text-align: center; font-size: 28px; font-weight: bold; margin-top: 2px;">
PROYECTO ANÁLISIS DE ENFERMEDAD CARDIACA
</div>

Row
------------------------------------------------------------------------------------
### **Diagrama de barras apiladas**

```{r grafico2, echo=FALSE}
ggplot(heart, 
       aes(x = ChestPainType, fill = HeartDisease)) + 
  geom_bar(position = "stack") +
  labs(
    title = "Relación entre tipo de dolor en el pecho y enfermedad cardiaca",
    x = "Tipo de dolor en el pecho",
    y = "Frecuencia",
    fill = "Enfermedad cardiaca"
  ) +
  theme_minimal()

```
### **Interpretación**

El diagrama de barras apiladas muestra la relación entre el tipo de dolor en el pecho y la presencia de enfermedad cardiaca:

- En los pacientes con dolor **asintomático (ASY)** se observa una alta frecuencia de casos con enfermedad cardiaca, lo que indica que muchas personas pueden tener el corazón comprometido aun sin presentar dolor típico.  
- En los tipos de dolor **ATA** y **NAP** la cantidad de pacientes con y sin enfermedad es más equilibrada.  
- En **TA** hay menos casos en general, pero también se observa presencia de enfermedad.  

En conjunto, la gráfica sugiere que el tipo de dolor en el pecho está relacionado con el riesgo de enfermedad cardiaca y que ser asintomático no significa necesariamente estar sano.
```

### **Pronóstico**

Debido a la ausencia de una serie temporal o de registros secuenciales, no es posible aplicar modelos de pronóstico en el tiempo (como ARIMA, Holt-Winters o redes neuronales recurrentes), ya que estos requieren observar tendencias, estacionalidad o variaciones temporales para poder predecir valores futuros. En este caso, el análisis es principalmente descriptivo y de asociación, más que de predicción temporal.

<br>
![](imagenAnciano.avif)



conclusiones
==============================
<div style="text-align: center; font-size: 28px; font-weight: bold; margin-top: 2px;">
CONCLUSIONES
</div>
Row
----------------------------------
<div style="font-size: 20px;">

* Los resultados evidencian que variables clínicas como la *presión arterial en reposo, el **colesterol, la **frecuencia cardiaca máxima* y la *depresión del segmento ST (Oldpeak)* se relacionan de forma importante con la presencia de *enfermedad cardiaca*.

* Variables demográficas como la *edad* y el *sexo, combinadas con los hallazgos clínicos, permiten caracterizar mejor el **perfil de riesgo cardiovascular* de los pacientes.

* Se observaron patrones en los cuales ciertos tipos de *dolor en el pecho, especialmente los pacientes **asintomáticos (ASY), concentran una proporción elevada de casos con enfermedad, mostrando que la falta de síntomas típicos **no garantiza un corazón sano*.

* El cruce entre *sexo* y *enfermedad cardiaca* sugiere que los *hombres* presentan una mayor carga de enfermedad en esta base de datos, lo cual coincide con múltiples estudios epidemiológicos sobre riesgo cardiovascular.

* Aunque la base heart.csv no permite hacer pronósticos en el tiempo, la combinación de variables *cualitativas* (síntomas, resultados de pruebas) y *cuantitativas* (presión arterial, colesterol, edad, frecuencia cardiaca) ofrece una visión completa del estado cardiaco actual, y sirve como punto de partida para estrategias de *prevención y detección temprana*.

</div>