Informe final Ejemplo de análisis de predicción con R
library(readxl)
final <- read_excel("C:/Users/psicr/Downloads/a4_heart_disease_uci.xlsx", sheet =1)
summary(final)
## 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
restecg <- factor(final$restecg, levels = c("normal", "lv hypertrophy"), labels = c(0,1))
final$restecg <- ifelse(final$restecg == "normal",0,1)
La base que se emplea contiene variables sobre características
fisiológicas de las personas, que pueden vincularse al diagnóstico de
enfermedades cardiacas de acuerdo con literatura previa.
De las variables posibles se retoma la presión arterial en reposo
(trestbps), el colesterol sérico (chol) y el resultado del
electrocardiograma (restecg), esta última variable se presenta como
dicotómica, con los resultados ‘normal’ e ‘hipertrofia ventricular
izquierdo’. La hipertrofia es un engrosamiento del músculo del corazón,
que puede deberse a la hipertensión, esta a su vez se relaciona con el
colesterol, el cual puede acumularse en las arterias. La pregunta es
¿las variables presión arterial y colesterol son predictoras de la
evaluación obtenida por el electrocardiograma?
Dado que la variable dependiente es dicotómica, se realizará un
análisis de regresión logística. Primero se hará un modelo con la
presión arterial como unica VI; el modelo 2 agregará el colesterol,
esperando observar un incremento en la capacidad predictiva.
La Hi1 es que la presión arterial en reposo será un predictor
significativo del resultado del electrocardiograma.
La Hi2 es que tanto la ´resión arterial como el colesterol serán
predictores del resultado del electrocardiagrama, y que este modelo será
mejor que el primer modelo.
modelo1 <- glm(restecg ~ trestbps, family = binomial(), data = final)
summary(modelo1)
##
## Call:
## glm(formula = restecg ~ trestbps, family = binomial(), data = final)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -2.180031 0.506942 -4.300 1.71e-05 ***
## trestbps 0.012840 0.003772 3.404 0.000663 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 1143.4 on 858 degrees of freedom
## Residual deviance: 1131.5 on 857 degrees of freedom
## (61 observations deleted due to missingness)
## AIC: 1135.5
##
## Number of Fisher Scoring iterations: 4
exp(modelo1$coefficients)
## (Intercept) trestbps
## 0.113038 1.012923
Los resultados de modelo 1 indican que la presión arterial en reposo
es un predictor significativo. El odd ratio de presión arterial es 1.01,
lo que significa que por cada unidad que incrementa la presión arterial,
el odd de que aparezca hipertrofia aumenta 1.01 veces.
modelo2 <- glm(restecg ~ trestbps + chol, family = binomial(), data = final)
summary(modelo2)
##
## Call:
## glm(formula = restecg ~ trestbps + chol, family = binomial(),
## data = final)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -2.3545972 0.5257506 -4.479 7.52e-06 ***
## trestbps 0.0134843 0.0038511 3.501 0.000463 ***
## chol 0.0006046 0.0006564 0.921 0.357049
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 1113.3 on 831 degrees of freedom
## Residual deviance: 1099.2 on 829 degrees of freedom
## (88 observations deleted due to missingness)
## AIC: 1105.2
##
## Number of Fisher Scoring iterations: 4
exp(modelo2$coefficients)
## (Intercept) trestbps chol
## 0.09493174 1.01357562 1.00060475
El segundo modelo muestra que el colesterol no fue un predictor
significativo, solamente la presión arterial continuó siendo
significativo.
Se concluye que la hipótesis 1 fue corroborada, pero no la hipótesis
2. El incremento de la presión arterial en reposo aumenta la
probabilidad de que el resultado del electrocardiograma se valore con
hipertrofia, aunque el aumento de odd es pequeño.