Proyecto de Estadistica
Vanessa Salazar/ Paralelo: 2
## Warning: package 'knitr' was built under R version 4.0.3
## Warning: package 'rmdformats' was built under R version 4.0.3
Se presenta el siguiente proyecto de Estadistica, en donde se hara un analisis descriptivo, inferencial y modelos de regresion lineal simple del data set: Heart Disease https://archive.ics.uci.edu/ml/datasets/Heart+Disease
Librerias
Se cargan las siguientes librerias usadas en el desarrollo del proyecto:
Carga de datos
La siguiente base de datos es cargada desde la web.
data <- read.csv("https://archive.ics.uci.edu/ml/machine-learning-databases/heart-disease/processed.cleveland.data",
header= FALSE , sep="," , na.strings = '?')Cambio de nombres a columnas conforme la informacion de las variables
Estructura de los datos
'data.frame': 303 obs. of 14 variables:
$ age : num 63 67 67 37 41 56 62 57 63 53 ...
$ sex : num 1 1 1 1 0 1 0 0 1 1 ...
$ cp : num 1 4 4 3 2 2 4 4 4 4 ...
$ trestbps: num 145 160 120 130 130 120 140 120 130 140 ...
$ chol : num 233 286 229 250 204 236 268 354 254 203 ...
$ fbs : num 1 0 0 0 0 0 0 0 0 1 ...
$ restecg : num 2 2 2 0 2 0 2 0 2 2 ...
$ thalach : num 150 108 129 187 172 178 160 163 147 155 ...
$ exang : num 0 1 1 0 0 0 0 1 0 1 ...
$ oldpeak : num 2.3 1.5 2.6 3.5 1.4 0.8 3.6 0.6 1.4 3.1 ...
$ slope : num 3 2 2 3 1 1 3 1 2 3 ...
$ ca : num 0 3 2 0 0 0 2 0 1 0 ...
$ thal : num 6 3 7 3 3 3 3 3 7 7 ...
$ num : int 0 2 1 0 0 0 3 0 2 1 ...
Como se aprecia hay variables que estan puestas como numero, sin embargo representan una categoria u opcion tal como se muestra a continuacion:
cp: chest pain type
Value 1: typical angina
Value 2: atypical angina
Value 3: non-anginal pain
Value 4: asymptomatic
sex: sex
Value 0: female
Value 1: male
fbs: fasting blood sugar > 120 mg/dl
Value 0: False
Value 1: True
restecg: resting electrocardiographic results
Value 0: normal
Value 1: having ST-T wave abnormality (T wave inversions and/or ST elevation or depression of > 0.05 mV)
Value 2: showing probable or definite left ventricular hypertrophy by Estes’ criteria
exang: exercise induced angina
Value 0: False
Value 1: True
slope: the slope of the peak exercise ST segment
Value 1: upsloping
Value 2: flat
Value 3: downsloping
thal
Value 3: normal
Value 6: fixed defect
Value 7: reversable defect
num: diagnosis of heart disease (angiographic disease status)
Value 0: < 50% diameter narrowing
Value 1: > 50% diameter narrowing
Se procede a cambiar el tipo de datos numerico a caracter para las variables antes descritas:
data[,c("cp","sex","fbs","restecg","exang","slope","thal","num")]<-lapply(data[,c("cp","sex","fbs","restecg","exang","slope","thal","num")] , as.character)Se comprueba los cambios
'data.frame': 303 obs. of 14 variables:
$ age : num 63 67 67 37 41 56 62 57 63 53 ...
$ sex : chr "1" "1" "1" "1" ...
$ cp : chr "1" "4" "4" "3" ...
$ trestbps: num 145 160 120 130 130 120 140 120 130 140 ...
$ chol : num 233 286 229 250 204 236 268 354 254 203 ...
$ fbs : chr "1" "0" "0" "0" ...
$ restecg : chr "2" "2" "2" "0" ...
$ thalach : num 150 108 129 187 172 178 160 163 147 155 ...
$ exang : chr "0" "1" "1" "0" ...
$ oldpeak : num 2.3 1.5 2.6 3.5 1.4 0.8 3.6 0.6 1.4 3.1 ...
$ slope : chr "3" "2" "2" "3" ...
$ ca : num 0 3 2 0 0 0 2 0 1 0 ...
$ thal : chr "6" "3" "7" "3" ...
$ num : chr "0" "2" "1" "0" ...
Ahora la variable num, tiene valor de 0 a 4, en donde 0 significa que el corazon esta bien, mientras que el resto de valores enfermedad cardiaca, por lo que cambiamos a solo dos categorias “heart disease” o “no heart disease”
En la variable Thal, hay valores con NA por lo que se cambia la etiqueta a “No hay info”
data$num<-ifelse(data$num=="0","no heart disease","heart disease")
data$thal<-ifelse(is.na(data$thal),"No hay info",data$thal)Se comprueba cambio de los valores a las 2 opciones
age sex cp trestbps chol fbs restecg thalach exang oldpeak slope ca thal
1 63 1 1 145 233 1 2 150 0 2.3 3 0 6
2 67 1 4 160 286 0 2 108 1 1.5 2 3 3
3 67 1 4 120 229 0 2 129 1 2.6 2 2 7
num
1 no heart disease
2 heart disease
3 heart disease
Estadistica descriptiva univariante
Variables Cualitativas
Sex
CP
Fbs
Restecg
Exang
Slope
Thal
Num
Variables Cuantitativas
Age
Medidas descriptivas
| Minimo | Maximo | Primer_cuartil | Tercer_cuartil | Mediana | Media | Desviacion | Curtosis | Sesgo |
|---|---|---|---|---|---|---|---|---|
| 29 | 77 | 48 | 61 | 56 | 54.439 | 9.039 | -0.523 | -0.209 |
Tabla de frecuencia
| Clase | Frec abs | Frec rel | Frec abs acum | Frec rel acum |
|---|---|---|---|---|
| [25,31) | 1 | 0.00 | 1 | 0.33 |
| [31,37) | 6 | 0.02 | 7 | 2.31 |
| [37,43) | 29 | 0.10 | 36 | 11.88 |
| [43,49) | 46 | 0.15 | 82 | 27.06 |
| [49,55) | 61 | 0.20 | 143 | 47.19 |
| [55,61) | 81 | 0.27 | 224 | 73.93 |
| [61,67) | 53 | 0.17 | 277 | 91.42 |
| [67,73) | 23 | 0.08 | 300 | 99.01 |
| [73,79) | 3 | 0.01 | 303 | 100.00 |
Histograma
Diagrama de cajas
Trestbps
Medidas descriptivas
| Minimo | Maximo | Primer_cuartil | Tercer_cuartil | Mediana | Media | Desviacion | Curtosis | Sesgo |
|---|---|---|---|---|---|---|---|---|
| 94 | 200 | 120 | 140 | 130 | 131.69 | 17.6 | 0.88 | 0.706 |
Tabla de frecuencia
| Clase | Frec abs | Frec rel | Frec abs acum | Frec rel acum |
|---|---|---|---|---|
| [90,105) | 10 | 0.03 | 10 | 3.30 |
| [105,120) | 50 | 0.17 | 60 | 19.80 |
| [120,135) | 124 | 0.41 | 184 | 60.73 |
| [135,150) | 67 | 0.22 | 251 | 82.84 |
| [150,165) | 38 | 0.13 | 289 | 95.38 |
| [165,180) | 9 | 0.03 | 298 | 98.35 |
| [180,195) | 4 | 0.01 | 302 | 99.67 |
| [195,210) | 1 | 0.00 | 303 | 100.00 |
Histograma
Diagrama de cajas
Chol
Medidas descriptivas
| Minimo | Maximo | Primer_cuartil | Tercer_cuartil | Mediana | Media | Desviacion | Curtosis | Sesgo |
|---|---|---|---|---|---|---|---|---|
| 126 | 564 | 211 | 275 | 241 | 246.693 | 51.777 | 4.492 | 1.136 |
Tabla de frecuencia
| Clase | Frec abs | Frec rel | Frec abs acum | Frec rel acum |
|---|---|---|---|---|
| [125,190) | 31 | 0.10 | 31 | 10.23 |
| [190,255) | 153 | 0.50 | 184 | 60.73 |
| [255,320) | 98 | 0.32 | 282 | 93.07 |
| [320,385) | 16 | 0.05 | 298 | 98.35 |
| [385,450) | 4 | 0.01 | 302 | 99.67 |
| [450,515) | 0 | 0.00 | 302 | 99.67 |
| [515,580) | 1 | 0.00 | 303 | 100.00 |
Histograma
Diagrama de cajas
Thalach
Medidas descriptivas
| Minimo | Maximo | Primer_cuartil | Tercer_cuartil | Mediana | Media | Desviacion | Curtosis | Sesgo |
|---|---|---|---|---|---|---|---|---|
| 71 | 202 | 133.5 | 166 | 153 | 149.607 | 22.875 | -0.054 | -0.537 |
Tabla de frecuencia
| Clase | Frec abs | Frec rel | Frec abs acum | Frec rel acum |
|---|---|---|---|---|
| [70,95) | 3 | 0.01 | 3 | 0.99 |
| [95,120) | 31 | 0.10 | 34 | 11.22 |
| [120,145) | 80 | 0.26 | 114 | 37.62 |
| [145,170) | 127 | 0.42 | 241 | 79.54 |
| [170,195) | 60 | 0.20 | 301 | 99.34 |
| [195,220) | 2 | 0.01 | 303 | 100.00 |
Histograma
Diagrama de cajas
Oldpeak
Medidas descriptivas
| Minimo | Maximo | Primer_cuartil | Tercer_cuartil | Mediana | Media | Desviacion | Curtosis | Sesgo |
|---|---|---|---|---|---|---|---|---|
| 0 | 6.2 | 0 | 1.6 | 0.8 | 1.04 | 1.161 | 1.576 | 1.27 |
Tabla de frecuencia
| Clase | Frec abs | Frec rel | Frec abs acum | Frec rel acum |
|---|---|---|---|---|
| [0,0.8) | 150 | 0.50 | 150 | 49.50 |
| [0.8,1.6) | 68 | 0.22 | 218 | 71.95 |
| [1.6,2.4) | 45 | 0.15 | 263 | 86.80 |
| [2.4,3.2) | 21 | 0.07 | 284 | 93.73 |
| [3.2,4) | 11 | 0.04 | 295 | 97.36 |
| [4,4.8) | 6 | 0.02 | 301 | 99.34 |
| [4.8,5.6) | 1 | 0.00 | 302 | 99.67 |
| [5.6,6.4) | 1 | 0.00 | 303 | 100.00 |
Histograma
Diagrama de cajas
Ca
Medidas descriptivas
| Minimo | Maximo | Primer_cuartil | Tercer_cuartil | Mediana | Media | Desviacion | Curtosis | Sesgo |
|---|---|---|---|---|---|---|---|---|
| 0 | 3 | 0 | 1 | 0 | 0.672 | 0.937 | 0.259 | 1.189 |
Tabla de frecuencia
| Clase | Frec abs | Frec rel | Frec abs acum | Frec rel acum |
|---|---|---|---|---|
| [0,1) | 176 | 0.59 | 176 | 58.86 |
| [1,2) | 65 | 0.22 | 241 | 80.60 |
| [2,3) | 38 | 0.13 | 279 | 93.31 |
| [3,4) | 20 | 0.07 | 299 | 100.00 |
Histograma
Diagrama de cajas
Estadistica descriptiva bivariante o multivariante
Matriz de correlacion
| age | trestbps | chol | thalach | oldpeak | ca | |
|---|---|---|---|---|---|---|
| age | 1.000 | 0.291 | 0.203 | -0.392 | 0.197 | 0.363 |
| trestbps | 0.291 | 1.000 | 0.132 | -0.048 | 0.192 | 0.099 |
| chol | 0.203 | 0.132 | 1.000 | 0.002 | 0.040 | 0.119 |
| thalach | -0.392 | -0.048 | 0.002 | 1.000 | -0.341 | -0.264 |
| oldpeak | 0.197 | 0.192 | 0.040 | -0.341 | 1.000 | 0.296 |
| ca | 0.363 | 0.099 | 0.119 | -0.264 | 0.296 | 1.000 |
Matriz de diagramas de dispersion
Boxplot por categorias
Estadistica Inferencial
Se presentan 4 constraste de hipotesis:
Contraste de hipotesis 1
Los hombres y mujeres tienen la misma edad en promedio?
Primero debemos comprobar si las varianzas aunque son desconocidas son iguales o diferentes.
Ho: Var 1 = Var 2 vs Ha: Var 1 != Var 2
Por lo que se realiza el test de varianzas
F test to compare two variances
data: edad_hombres$age and edad_mujeres$age
F = 0.88933, num df = 205, denom df = 96, p-value = 0.487
alternative hypothesis: true ratio of variances is not equal to 1
95 percent confidence interval:
0.623388 1.241458
sample estimates:
ratio of variances
0.8893321
Existe evidencia estadistica al 95% de confianza, que no se rechaza Ho, dado que el valor p es mayor al 5% de significancia, por lo tanto ahora se escoge el estadistico T cuando el caso es con varianzas iguales.
Contraste de hipotesis 2
Se procede a continuar con el test antes planteado
Ho: Media 1 = Media 2 vs Ha: Media 1 != Media 2
Two Sample t-test
data: edad_hombres$age and edad_mujeres$age
t = -1.7004, df = 301, p-value = 0.09009
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-4.0701726 0.2967765
sample estimates:
mean of x mean of y
53.83495 55.72165
Existe evidencia estadistica al 95% de confianza, en no rechazar Ho, dado que el valor p cae en zona de rechazo .
No se puede afirmar que la edad es diferente entre hombres y mujeres.
Contraste de hipotesis 3
La proporcion de aquellos que no cumplen que el azucar en ayunas >120 mg/dl, es superior al 90% ?
Se procede a plantear las hipotesis
Ho: Proporcion = 0.9 vs Ha: Proporcion > 0.9
Se procede con el calculo
FBS
0 258
1 45
1-sample proportions test with continuity correction
data: 258 out of 303, null probability 0.9
X-squared = 7.3942, df = 1, p-value = 0.9967
alternative hypothesis: true p is greater than 0.9
95 percent confidence interval:
0.8129898 1.0000000
sample estimates:
p
0.8514851
Existe evidencia estadistica al 95% de confianza, en no rechazar Ho, dado que el valor p cae en zona de no rechazo .
No se puede afirmar que la proporacion de aquellos que no cumplen que el azucar en ayunas >120 mg/dl, es superior al 90%.
Contraste de hipotesis 4
El segmento st cuando es horizontal, su proporcion es 50% ?
Ho: Proporcion = 0.5 vs Ha: Proporcion != 0.9
Se procede con el calculo
Slope
1 142
2 140
3 21
1-sample proportions test with continuity correction
data: 140 out of 303, null probability 0.5
X-squared = 1.5974, df = 1, p-value = 0.2063
alternative hypothesis: true p is not equal to 0.5
95 percent confidence interval:
0.4051205 0.5199500
sample estimates:
p
0.4620462
Existe evidencia estadistica al 95% de confianza, en no rechazar Ho, dado que el valor p cae en zona de no rechazo .
No se puede afirmar que la proporacion que el segmento st cuando es horizontal, su proporcion es 50%.
Tabla de contigencias
Contraste de hipotesis 5
Existe relacion entre el sexo de una persona con los tipos de segmento ST ?
Ho: Sex es Independiente de Slope vs Ha: Sex no es Independiente de Slope
Se procede con el calculo realizando la tabla cruzada:
0 1
1 47 95
2 45 95
3 5 16
Pearson's Chi-squared test
data: tabla_con_1
X-squared = 0.7273, df = 2, p-value = 0.6951
Con un 5% de significancia se aprecia que no se rechaza Ho, por lo que el tipo de segmento ST es independiente del sexo de una persona
Contraste de hipotesis 6
Existe relacion entre el problema cardiaco de una persona con los tipos de segmento ST ?
Ho: Num es Independiente de Slope vs Ha: Num no es Independiente de Slope
Se procede con el calculo realizando la tabla cruzada:
1 2 3
heart disease 36 91 12
no heart disease 106 49 9
Pearson's Chi-squared test
data: tabla_con_2
X-squared = 45.785, df = 2, p-value = 1.143e-10
Al 95% de confianza, se rechaza Ho, es decir el resultado de tener o no una enfermedad cardiaca si se ve influenciado por el tipo de segmento ST.
Pruebas de bondad de ajuste
Metodo Chi Cuadrado
La variable Trestbps tiene un comportamiento Normal ?
Ho: Trestbps tiene un comportamiento de distribucion Normal
vs
Ha: Trestbps no tiene un comportamiento de distribucion Normal
Por lo tanto se procede por Chi cuadrado:
[1] "Normal"
mean sd
131.68977 17.59975
[1] 2
Chi-square
154.3597
df
17
Valor p: 0 por lo tanto: True cdf does not equal the
Normal Distribution.
Metodo Kolmogorov-Smirnov
La edad tiene un comportamiento de distribucion Normal ?
Ho: Age tiene un comportamiento de distribucion Normal
vs
Ha: Age no tiene un comportamiento de distribucion Normal
Se aplica el test de KS
Lilliefors (Kolmogorov-Smirnov) normality test
data: data$age
D = 0.07689, p-value = 0.0001812
Por lo tanto al 95% de confianza, se rechaza Ho, la variable Edad no sigue un comportamiento de tipo Lineal
Regresion lineal
El modelo de regresion lineal simple nos indica que se tiene la siguiente expresion:
Ecuacion de la recta
\[ f(x)=y= mx+b \]
Ecuacion del modelo propuesto de regresion lineal
\[ \hat{y}=\hat b_{1}(x)+\hat b_{0} \]
Se procede a realizar el calculo de los estimadores de la recta, para:
Modelo propuesto 1
Variable dependiente: “ca” = y
Variable independiente: “age” = x
Por lo tanto se calcula:
Call:
lm(formula = ca ~ age, data = data)
Coefficients:
(Intercept) age
-1.38245 0.03768
Por lo que la ecuacion del modelo propuesto quedaria:
\[ \hat{y}=0.03768(x)-1.38245 \]
Modelo propuesto 2
Variable dependiente: “thalach” = y
Variable independiente: “age” = x
Por lo tanto se calcula:
Call:
lm(formula = thalach ~ age, data = data)
Coefficients:
(Intercept) age
203.8634 -0.9966
Por lo que la ecuacion del modelo propuesto quedaria:
\[ \hat{y}=-0,9966(x)+203.8634 \]
Investigacion sobre el tema y el software usado
El data set seleccionado fue Heart Disease Data Set, el cual esta compuesto de 76 atributos, sin embargo, la mayoria, por no decir todos, de los papers y de los experimentos publicados hacen referencia al uso de un subconjunto de dicho data set. Este subconjunto esta compuesto de 14 de estos 76 atributos generales.
El objetivo principal de este data set es detectar la presencia de anomalias o enfermedades en el corazon de un paciente. Se evalua la presencia, haciendo uso de numeros enteros, en una escala del cero al cuatro, en donde el numero 0 representa la ausencia de alguna anomalia o enfermedad en el corazon del paciente.
Esta base fue utilizada bajo el nombre de Cleveland Data Base. Dicho uso de la base se concentro en simplemente distinguir entre la ausencia y la presencia de anomalias o enfermedades en el corazon de un paciente. Siendo el numero entero 0 la ausencia de enfermedades, mientras que los numeros 1, 2, 3 y 4 representan la presencia de enfermedades en el corazon. Recientemente, los nombres y los numeros de seguro social de las personas puestas a prueba fueron eliminados de la base de datos, y reemplazados con valores de prueba libres.
Los 14 atributos/elementos utilizados van desde sexo hasta la edad, pasando por un numero importante de condiciones medicas y/o habitos de la vida cotidiana del paciente.
El uso de esta base ha dado para la creacion de papers super relevantes, los cuales detallan cada una de sus distintas funcionalidades. A su vez, muchos trabajos se han referido a esta base, a traves de citaciones.
Por todo lo previamente mencionado, se decidio trabajar con esta base, pues mostraba caracteristicas fascinantes, y conllevaba una investigacion amplia, pero interesante, en la cual era facil ahondar. A su vez, el uso de 14 variables generales facilita el uso de la base para cualquiera que desee emplearla, debido a lo intuitiva que es. En esta linea, la base escogida fue la apropiada para llevar a cabo todos y cada uno de los requerimientos planteados en la guia del proyecto.
Con respecto al software usado, se hace uso del lenguaje R, en el presente proyecto se desarrolla el codigo en el IDE Rstudio, en donde hacemos uso de varias librerias para presentar graficos como ggplot2 o ploty, entre otras. Rstudio permite realizar documentos de markdown, lo que permite mas tarde poder presentar una version HTML, pdf o Word de los scripts que realizamos para dar una mejor presentacion.
Conclusiones
En la onda cardiaca se tiene primero el complejo QRS, y despues la denominada “onda T”, y la distancia que existe entre el QRS y la onda T es el segmento ST https://www.my-ekg.com/como-leer-ekg/segmento-st.html.
La cardiopatia isquemica es la causa mas frecuente de elevacion o de descenso del segmento ST, lo que vemos reflejado en la dependencia de la variable num y slope.
El sexo de una persona no tiene relacion con el descenso o aumento del segmento ST, por lo que el cuidado debe ser para ambos.
El valor de la variable target u objetivo es cualitativa, en este caso binaria, por lo que seria adecuado proponer una regresion de tipo logistico en funcion del resto de variables para poder establecer un modelo mas conviente, ya que los actuales solo corresponden a regresiones lineales, en donde a nivel de la correlacion no se tiene ninguna con un alto nivel, todas son menores a 0.5.
Los hombres y mujeres en edades similares pueden presentar problemas de tipo cardiaco, por lo que es importante el cuidado y examenes de control.
No se puede afirmar que la proporacion de aquellos que no cumplen que el azucar en ayunas >120 mg/dl, es superior al 90%, ya que hay que tener en cuenta que cuando se cumple se diagnostica como Diabetes tipo 2 https://www.mayoclinic.org/es-es/diseases-conditions/prediabetes/diagnosis-treatment/drc-20355284
Cada cierto tiempo se debe hacer una revision con el cardialogo, ya que las Anginas en su mayor proporcion son asintomaticas, en nuestra muestra cerca de un 50%, es importante tener esto en cuenta ya que es un sintoma de los paros cardiacos general.
Referencias
1. Hungarian Institute of Cardiology. Budapest: Andras Janosi, M.D.
2. University Hospital, Zurich, Switzerland: William Steinbrunn, M.D.
3. University Hospital, Basel, Switzerland: Matthias Pfisterer, M.D.
4. V.A. Medical Center, Long Beach and Cleveland Clinic Foundation: Robert Detrano, M.D., Ph.D.