library(psych)
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.2 ✔ readr 2.1.4
## ✔ forcats 1.0.0 ✔ stringr 1.5.0
## ✔ ggplot2 3.4.3 ✔ tibble 3.2.1
## ✔ lubridate 1.9.2 ✔ tidyr 1.3.0
## ✔ purrr 1.0.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ ggplot2::%+%() masks psych::%+%()
## ✖ ggplot2::alpha() masks psych::alpha()
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
ataque_corazon <- read.csv("corazon.csv")
# se puede obtener en -> https://www.kaggle.com/datasets/iamsouravbanerjee/heart-attack-prediction-dataset/
summary(ataque_corazon)
## Patient.ID Age Sex Cholesterol
## Length:8763 Min. :18.00 Length:8763 Min. :120.0
## Class :character 1st Qu.:35.00 Class :character 1st Qu.:192.0
## Mode :character Median :54.00 Mode :character Median :259.0
## Mean :53.71 Mean :259.9
## 3rd Qu.:72.00 3rd Qu.:330.0
## Max. :90.00 Max. :400.0
## Blood.Pressure Heart.Rate Diabetes Family.History
## Length:8763 Min. : 40.00 Min. :0.0000 Min. :0.000
## Class :character 1st Qu.: 57.00 1st Qu.:0.0000 1st Qu.:0.000
## Mode :character Median : 75.00 Median :1.0000 Median :0.000
## Mean : 75.02 Mean :0.6523 Mean :0.493
## 3rd Qu.: 93.00 3rd Qu.:1.0000 3rd Qu.:1.000
## Max. :110.00 Max. :1.0000 Max. :1.000
## Smoking Obesity Alcohol.Consumption Exercise.Hours.Per.Week
## Min. :0.0000 Min. :0.0000 Min. :0.0000 Min. : 0.002442
## 1st Qu.:1.0000 1st Qu.:0.0000 1st Qu.:0.0000 1st Qu.: 4.981579
## Median :1.0000 Median :1.0000 Median :1.0000 Median :10.069559
## Mean :0.8968 Mean :0.5014 Mean :0.5981 Mean :10.014284
## 3rd Qu.:1.0000 3rd Qu.:1.0000 3rd Qu.:1.0000 3rd Qu.:15.050018
## Max. :1.0000 Max. :1.0000 Max. :1.0000 Max. :19.998709
## Diet Previous.Heart.Problems Medication.Use Stress.Level
## Length:8763 Min. :0.0000 Min. :0.0000 Min. : 1.00
## Class :character 1st Qu.:0.0000 1st Qu.:0.0000 1st Qu.: 3.00
## Mode :character Median :0.0000 Median :0.0000 Median : 5.00
## Mean :0.4958 Mean :0.4983 Mean : 5.47
## 3rd Qu.:1.0000 3rd Qu.:1.0000 3rd Qu.: 8.00
## Max. :1.0000 Max. :1.0000 Max. :10.00
## Sedentary.Hours.Per.Day Income BMI Triglycerides
## Min. : 0.001263 Min. : 20062 Min. :18.00 Min. : 30.0
## 1st Qu.: 2.998794 1st Qu.: 88310 1st Qu.:23.42 1st Qu.:225.5
## Median : 5.933622 Median :157866 Median :28.77 Median :417.0
## Mean : 5.993690 Mean :158263 Mean :28.89 Mean :417.7
## 3rd Qu.: 9.019124 3rd Qu.:227749 3rd Qu.:34.32 3rd Qu.:612.0
## Max. :11.999313 Max. :299954 Max. :40.00 Max. :800.0
## Physical.Activity.Days.Per.Week Sleep.Hours.Per.Day Country
## Min. :0.00 Min. : 4.000 Length:8763
## 1st Qu.:2.00 1st Qu.: 5.000 Class :character
## Median :3.00 Median : 7.000 Mode :character
## Mean :3.49 Mean : 7.024
## 3rd Qu.:5.00 3rd Qu.: 9.000
## Max. :7.00 Max. :10.000
## Continent Hemisphere Heart.Attack.Risk
## Length:8763 Length:8763 Min. :0.0000
## Class :character Class :character 1st Qu.:0.0000
## Mode :character Mode :character Median :0.0000
## Mean :0.3582
## 3rd Qu.:1.0000
## Max. :1.0000
Y ~ X
## Y ~ X
ataque_corazon$Sex<- as.factor(ataque_corazon$Sex)
aov1<- aov(Heart.Rate~ Sex, data=ataque_corazon)
summary(aov1)
## Df Sum Sq Mean Sq F value Pr(>F)
## Sex 1 441 441.4 1.045 0.307
## Residuals 8761 3700114 422.3
#ataque_corazon$Family.History<- as.factor(ataque_corazon$Family.History)
#aov2<- aov(Heart.Attack.Risk~ Family.History, data=ataque_corazon)
#ataque_corazon$Family.History<- as.factor(ataque_corazon$Family.History)
aov2<- aov(Heart.Rate~ Family.History, data=ataque_corazon)
summary(aov2)
## Df Sum Sq Mean Sq F value Pr(>F)
## Family.History 1 671 671.4 1.59 0.207
## Residuals 8761 3699884 422.3
#ataque_corazon$Diabetes<- as.factor(ataque_corazon$Diabetes)
aov3<- aov(Heart.Rate~ Diabetes, data=ataque_corazon)
summary(aov3)
## Df Sum Sq Mean Sq F value Pr(>F)
## Diabetes 1 169 169.3 0.401 0.527
## Residuals 8761 3700387 422.4
ataque_corazon$Diet<- as.factor(ataque_corazon$Diet)
aov4<- aov(Heart.Rate~ Diet, data=ataque_corazon)
summary(aov4)
## Df Sum Sq Mean Sq F value Pr(>F)
## Diet 2 1607 803.6 1.903 0.149
## Residuals 8760 3698949 422.3
#ataque_corazon$Obesity<- as.factor(ataque_corazon$Obesity)
aov5<- aov(Heart.Rate~ Obesity, data=ataque_corazon)
summary(aov5)
## Df Sum Sq Mean Sq F value Pr(>F)
## Obesity 1 599 599.2 1.419 0.234
## Residuals 8761 3699957 422.3
#ataque_corazon$Previous.Heart.Problems<- as.factor(ataque_corazon$Previous.Heart.Problems)
aov6<- aov( Heart.Rate ~ Previous.Heart.Problems , data=ataque_corazon)
summary(aov6)
## Df Sum Sq Mean Sq F value Pr(>F)
## Previous.Heart.Problems 1 91 90.9 0.215 0.643
## Residuals 8761 3700465 422.4
ataque_corazon$Age<- as.factor(ataque_corazon$Age)
aov7<- aov( Heart.Rate ~ Age , data=ataque_corazon)
summary(aov7)
## Df Sum Sq Mean Sq F value Pr(>F)
## Age 72 29367 407.9 0.965 0.561
## Residuals 8690 3671189 422.5
#cuando el pvalue es menor a 0.5 las medias son diferentes (se rechaza H0) / si es mayor entonces se acepta H1 y las medias son iguales
ataque_corazon$Obesity<- as.factor(ataque_corazon$Obesity)
aov9<- aov( Cholesterol ~ Obesity , data=ataque_corazon)
summary(aov9)
## Df Sum Sq Mean Sq F value Pr(>F)
## Obesity 1 12622 12622 1.931 0.165
## Residuals 8761 57280952 6538
TukeyHSD(aov9)
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = Cholesterol ~ Obesity, data = ataque_corazon)
##
## $Obesity
## diff lwr upr p adj
## 1-0 -2.400323 -5.78675 0.9861039 0.1647379
plot(TukeyHSD(aov9)) # al pasar la linea vertical es cuando se acepta H0, ya que
ataque_corazon$Stress.Level<- as.factor(ataque_corazon$Stress.Level)
aov8<- aov( Heart.Rate ~ Stress.Level , data=ataque_corazon)
summary(aov8)
## Df Sum Sq Mean Sq F value Pr(>F)
## Stress.Level 9 3739 415.4 0.984 0.451
## Residuals 8753 3696817 422.3
TukeyHSD(aov8) # comparación de Medias
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = Heart.Rate ~ Stress.Level, data = ataque_corazon)
##
## $Stress.Level
## diff lwr upr p adj
## 2-1 -1.033498154 -4.119270 2.052273 0.9883270
## 3-1 0.385398631 -2.739045 3.509842 0.9999966
## 4-1 0.009769421 -3.078476 3.098015 1.0000000
## 5-1 -1.556445759 -4.688135 1.575243 0.8614669
## 6-1 -0.464428895 -3.600706 2.671848 0.9999836
## 7-1 -1.132525493 -4.226598 1.961547 0.9783428
## 8-1 0.529148336 -2.585522 3.643819 0.9999468
## 9-1 -0.823911216 -3.931607 2.283785 0.9979668
## 10-1 -0.597040294 -3.763833 2.569752 0.9998720
## 3-2 1.418896785 -1.664135 4.501929 0.9089796
## 4-2 1.043267576 -2.003074 4.089609 0.9863330
## 5-2 -0.522947604 -3.613322 2.567427 0.9999486
## 6-2 0.569069259 -2.525955 3.664093 0.9998963
## 7-2 -0.099027339 -3.151277 2.953222 1.0000000
## 8-2 1.562646490 -1.510481 4.635773 0.8441230
## 9-2 0.209586939 -2.856471 3.275645 1.0000000
## 10-2 0.436457861 -2.689484 3.562400 0.9999901
## 4-3 -0.375629210 -3.461137 2.709879 0.9999970
## 5-3 -1.941844390 -5.070834 1.187145 0.6246624
## 6-3 -0.849827526 -3.983409 2.283754 0.9975755
## 7-3 -1.517924124 -4.609265 1.573417 0.8700214
## 8-3 0.143749705 -2.968207 3.255706 1.0000000
## 9-3 -1.209309847 -4.314286 1.895666 0.9672534
## 10-3 -0.982438925 -4.146562 2.181684 0.9932578
## 5-4 -1.566215180 -4.659059 1.526629 0.8473613
## 6-4 -0.474198316 -3.571688 2.623292 0.9999781
## 7-4 -1.142294914 -4.197045 1.912455 0.9749831
## 8-4 0.519378915 -2.556232 3.594990 0.9999495
## 9-4 -0.833680637 -3.902228 2.234867 0.9975418
## 10-4 -0.606809715 -3.735193 2.521574 0.9998377
## 6-5 1.092016864 -2.048789 4.232823 0.9848026
## 7-5 0.423920266 -2.674743 3.522584 0.9999917
## 8-5 2.085594095 -1.033636 5.204825 0.5161349
## 9-5 0.732534543 -2.379732 3.844801 0.9992076
## 10-5 0.959405465 -2.211872 4.130683 0.9944382
## 7-6 -0.668096598 -3.771397 2.435204 0.9996157
## 8-6 0.993577231 -2.130260 4.117414 0.9919558
## 9-6 -0.359482321 -3.476366 2.757401 0.9999981
## 10-6 -0.132611399 -3.308420 3.043197 1.0000000
## 8-7 1.661673829 -1.419789 4.743136 0.7921587
## 9-7 0.308614277 -2.765798 3.383027 0.9999994
## 10-7 0.535485199 -2.598652 3.669622 0.9999442
## 9-8 -1.353059552 -4.448201 1.742081 0.9325595
## 10-8 -1.126188630 -4.280661 2.028284 0.9817391
## 10-9 0.226870922 -2.920715 3.374457 1.0000000
plot(TukeyHSD(aov8)) # al pasar la linea vertical es cuando se acepta H0, ya que