1 Introducción

# Teoría La regresión logística es un modelo estadístico de clasificación binaria, que estima la probabilidad de que ocurra un evento (valor 1) frente a que no ocurra (valor 0), en función de variables independientes.

Las enfermedades cardiovasculares son una de las principales causas de muerte a nivel mundial, por lo que es importante identificar a tiempo a las personas en riesgo. En este análisis se utiliza un conjunto de datos clínicos para construir un modelo de regresión logística que permita predecir la probabilidad de padecer un ataque al corazón.

El objetivo es analizar cómo variables como edad, colesterol y presión arterial influyen en la presencia de enfermedad cardíaca, apoyando la toma de decisiones informadas en el ámbito de la salud.


2 Conjunto de Datos

2.1 Carga de datos

2.1.1 Instalar paquetes y llamar librerías

library(caret)
## Loading required package: ggplot2
## Loading required package: lattice
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ lubridate 1.9.4     ✔ tibble    3.2.1
## ✔ purrr     1.0.4     ✔ tidyr     1.3.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ✖ purrr::lift()   masks caret::lift()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors

2.1.2 Crear la base de datos

df <- read.csv("/Users/nataliamartinez/Desktop/Heart.csv")

2.2 Detalle del dataset

age: Edad del paciente (en años).

sex: Sexo del paciente (1 = hombre, 0 = mujer).

cp: Tipo de dolor en el pecho (categoría que indica el tipo de angina).

trestbps: Presión arterial en reposo (mm Hg).

chol: Nivel de colesterol sérico (mg/dl).

fbs: Azúcar en sangre en ayunas (>120 mg/dl) (1 = verdadero, 0 = falso).

restecg: Resultados del electrocardiograma en reposo.

thalach: Frecuencia cardíaca máxima alcanzada.

exang: Angina inducida por ejercicio (1 = sí, 0 = no).

oldpeak: Depresión del segmento ST inducida por ejercicio (indica estrés cardíaco).

slope: Pendiente del segmento ST durante el ejercicio.

ca: Número de vasos principales coloreados por fluoroscopía (0–3).

thal: Resultado de la prueba de talasemia (condición del flujo sanguíneo).

target: Variable objetivo (1 = presencia de enfermedad cardíaca, 0 = ausencia).

##Generalidades

summary(df)
##       age             sex               cp            trestbps    
##  Min.   :29.00   Min.   :0.0000   Min.   :0.0000   Min.   : 94.0  
##  1st Qu.:48.00   1st Qu.:0.0000   1st Qu.:0.0000   1st Qu.:120.0  
##  Median :56.00   Median :1.0000   Median :1.0000   Median :130.0  
##  Mean   :54.43   Mean   :0.6956   Mean   :0.9424   Mean   :131.6  
##  3rd Qu.:61.00   3rd Qu.:1.0000   3rd Qu.:2.0000   3rd Qu.:140.0  
##  Max.   :77.00   Max.   :1.0000   Max.   :3.0000   Max.   :200.0  
##       chol          fbs            restecg          thalach     
##  Min.   :126   Min.   :0.0000   Min.   :0.0000   Min.   : 71.0  
##  1st Qu.:211   1st Qu.:0.0000   1st Qu.:0.0000   1st Qu.:132.0  
##  Median :240   Median :0.0000   Median :1.0000   Median :152.0  
##  Mean   :246   Mean   :0.1493   Mean   :0.5298   Mean   :149.1  
##  3rd Qu.:275   3rd Qu.:0.0000   3rd Qu.:1.0000   3rd Qu.:166.0  
##  Max.   :564   Max.   :1.0000   Max.   :2.0000   Max.   :202.0  
##      exang           oldpeak          slope             ca        
##  Min.   :0.0000   Min.   :0.000   Min.   :0.000   Min.   :0.0000  
##  1st Qu.:0.0000   1st Qu.:0.000   1st Qu.:1.000   1st Qu.:0.0000  
##  Median :0.0000   Median :0.800   Median :1.000   Median :0.0000  
##  Mean   :0.3366   Mean   :1.072   Mean   :1.385   Mean   :0.7541  
##  3rd Qu.:1.0000   3rd Qu.:1.800   3rd Qu.:2.000   3rd Qu.:1.0000  
##  Max.   :1.0000   Max.   :6.200   Max.   :2.000   Max.   :4.0000  
##       thal           target      
##  Min.   :0.000   Min.   :0.0000  
##  1st Qu.:2.000   1st Qu.:0.0000  
##  Median :2.000   Median :1.0000  
##  Mean   :2.324   Mean   :0.5132  
##  3rd Qu.:3.000   3rd Qu.:1.0000  
##  Max.   :3.000   Max.   :1.0000

3 Análisis

3.1 Model

modelo <- glm(target ~ ., data = df, family = binomial)
summary(modelo)
## 
## Call:
## glm(formula = target ~ ., family = binomial, data = df)
## 
## Coefficients:
##              Estimate Std. Error z value Pr(>|z|)    
## (Intercept)  3.690245   1.401395   2.633  0.00846 ** 
## age         -0.008199   0.012609  -0.650  0.51551    
## sex         -1.846549   0.256572  -7.197 6.16e-13 ***
## cp           0.854601   0.100353   8.516  < 2e-16 ***
## trestbps    -0.018239   0.005621  -3.245  0.00118 ** 
## chol        -0.005670   0.002056  -2.757  0.00583 ** 
## fbs         -0.101152   0.284855  -0.355  0.72251    
## restecg      0.413237   0.188984   2.187  0.02877 *  
## thalach      0.023626   0.005682   4.158 3.21e-05 ***
## exang       -0.990787   0.224287  -4.418 9.98e-06 ***
## oldpeak     -0.570731   0.116004  -4.920 8.66e-07 ***
## slope        0.534070   0.188677   2.831  0.00465 ** 
## ca          -0.754488   0.103052  -7.321 2.45e-13 ***
## thal        -0.886068   0.155629  -5.693 1.24e-08 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 1420.2  on 1024  degrees of freedom
## Residual deviance:  718.9  on 1011  degrees of freedom
## AIC: 746.9
## 
## Number of Fisher Scoring iterations: 6

3.2 Predicciones

prueba <- data.frame(
  age      = 52,
  sex      = 1,
  cp       = 0,
  trestbps = 125,
  chol     = 212,
  fbs      = 0,
  restecg  = 1,
  thalach  = 168,
  exang    = 0,
  oldpeak  = 1.0,
  slope    = 2,
  ca       = 2,
  thal     = 3,
  target   = NA
)
predict(modelo, newdata = prueba, type = "response")
##         1 
## 0.2055683

4 Conclusiones

En conclusión, la probabilidad de presentar enfermedad cardíaca para el paciente evaluado es:

20.6%: Para un paciente de 52 años, hombre, con valores moderados de presión arterial y colesterol, sin angina inducida por ejercicio.

Por lo tanto, la probabilidad es relativamente baja, lo que sugiere que el paciente no presenta un alto riesgo de ataque al corazón según el modelo.