O banco de dados heart.csv apresenta as variáveis listadas abaixo que serão utlizadas para a análise desse relatório.
A seguir estão expressas as seis primeiras linhas do banco de dados
com a utilização da função head().
setwd("C:/Users/Samsung-PC/Documents/Estatística/CE1/LISTAS")
head (read.csv("heart.csv"))
## age sex cp trestbps chol fbs restecg thalach exang oldpeak slope ca thal
## 1 63 1 3 145 233 1 0 150 0 2.3 0 0 1
## 2 37 1 2 130 250 0 1 187 0 3.5 0 0 2
## 3 41 0 1 130 204 0 0 172 0 1.4 2 0 2
## 4 56 1 1 120 236 0 1 178 0 0.8 2 0 2
## 5 57 0 0 120 354 0 1 163 1 0.6 2 0 2
## 6 57 1 0 140 192 0 1 148 0 0.4 1 0 1
## target
## 1 1
## 2 1
## 3 1
## 4 1
## 5 1
## 6 1
dados <- read.csv("heart.csv")
Para facilitar a compreensão das informações, as letras F e M foram atribuídas na coluna sex, para indicar os gêneros masculino e feminino, substituindo os dados 0 e 1.
dados$sex <- as.factor(dados$sex)
levels(dados$sex) <- c("F", "M")
head(dados$sex)
## [1] M M F M F M
## Levels: F M
O gráfico a seguir relaciona os dados da idade e do colesterol. Para
a construção do gráfico foi utilizada a biblioteca
ggplo2disponível no RStudio.
library(ggplot2)
ggplot(dados) + geom_point(aes(x = dados$age, y = dados$chol, color = dados$sex))
## Warning: Use of `dados$age` is discouraged.
## ℹ Use `age` instead.
## Warning: Use of `dados$chol` is discouraged.
## ℹ Use `chol` instead.
## Warning: Use of `dados$sex` is discouraged.
## ℹ Use `sex` instead.
Após a análise do gráfico percebe-se que há uma grande quantidade de homens com idade entre 40 e 60 anos com a taxa de colesterol entre 200 e 300.
Para uma melhor visualização dos dados é necessário que algumas modificações sejam feitas na estética do gráfico.
clplot <- ggplot(dados) + geom_point(aes(x = dados$age, y = dados$chol, color = dados$sex))
clplot + ggtitle("Colesterol x Idade") + xlab("Idade") + ylab("Colesterol") + scale_color_discrete(name = "Gênero") + theme_bw()
## Warning: Use of `dados$age` is discouraged.
## ℹ Use `age` instead.
## Warning: Use of `dados$chol` is discouraged.
## ℹ Use `chol` instead.
## Warning: Use of `dados$sex` is discouraged.
## ℹ Use `sex` instead.
Para determinar a média e o desvio padrão do colesterol por sexo foi
utilizada a biblioteca dplyr.
library(dplyr)
##
## Anexando pacote: 'dplyr'
## Os seguintes objetos são mascarados por 'package:stats':
##
## filter, lag
## Os seguintes objetos são mascarados por 'package:base':
##
## intersect, setdiff, setequal, union
dados2 <- data.frame( sex = c(dados$sex), chol = c(dados$chol))
media_por_categoria <- dados2%>% group_by(sex) %>% summarise(media_chol =mean(chol))
print(media_por_categoria)
## # A tibble: 2 × 2
## sex media_chol
## <fct> <dbl>
## 1 F 261.
## 2 M 239.
desvio_padrao_por_categoria <- dados2%>% group_by(sex) %>% summarise(sd_chol =sd(chol))
print(desvio_padrao_por_categoria)
## # A tibble: 2 × 2
## sex sd_chol
## <fct> <dbl>
## 1 F 65.1
## 2 M 42.8
A partir da média obtida percebe-se um valor que destoa da análise inicial realizada no tópico 1.4, de forma que a média obtida no gênero feminino (F) é superior a obtida no gênero masculino (M).
ggplot(dados, aes (x = reorder(dados$sex, dados$chol), y = dados$chol)) + geom_boxplot() +
ggtitle("Colesterol x Gênero") +xlab("Gênero") + ylab("Colesterol") + theme_bw()
## Warning: Use of `dados$sex` is discouraged.
## ℹ Use `sex` instead.
## Warning: Use of `dados$chol` is discouraged.
## ℹ Use `chol` instead.
## Use of `dados$chol` is discouraged.
## ℹ Use `chol` instead.
Com base no boxplot comparativo é possível inferir que o valor do colesterol do gênero feminino apresenta maior variabalidade do que o masculino, além de uma mediana maior.
O banco de dados heart_less_50 apresentado a seguir
contém os dados apenas de indíviduos com menos de 50 anos de idades.
heart_less_50 <- dados[dados$age < 50,]
head(heart_less_50)
## age sex cp trestbps chol fbs restecg thalach exang oldpeak slope ca thal
## 2 37 M 2 130 250 0 1 187 0 3.5 0 0 2
## 3 41 F 1 130 204 0 0 172 0 1.4 2 0 2
## 8 44 M 1 120 263 0 1 173 0 0.0 2 0 3
## 12 48 F 2 130 275 0 1 139 0 0.2 2 0 2
## 13 49 M 1 130 266 0 1 171 0 0.6 2 0 2
## 19 43 M 0 150 247 0 1 171 0 1.5 2 0 2
## target
## 2 1
## 3 1
## 8 1
## 12 1
## 13 1
## 19 1
Um gráfico boxplot foi criado para o novo banco de dados.
ggplot(heart_less_50, aes (x = reorder(heart_less_50$sex, heart_less_50$chol), y = heart_less_50$chol)) + geom_boxplot() +
ggtitle("Colesterol x Gênero") +xlab("Gênero") + ylab("Colesterol") + theme_bw()
## Warning: Use of `heart_less_50$sex` is discouraged.
## ℹ Use `sex` instead.
## Warning: Use of `heart_less_50$chol` is discouraged.
## ℹ Use `chol` instead.
## Use of `heart_less_50$chol` is discouraged.
## ℹ Use `chol` instead.
Observa-se que os indivíduos do gênero masculino abaixo dos 50 anos de idade apresentam maior mediana quando comparado com os indivíduos do gênero feminino.
dados$cp <- as.factor(dados$cp)
ggplot(dados, aes(x = dados$sex))+geom_bar(aes(fill = dados$cp), position = "stack") +
ggtitle("Dor no peito x Gênero") + xlab("Gênero") + ylab("Quantidade") +
labs(fill = "Tipos de dor") + scale_fill_brewer(palette = "OrRd", labels = c("Typical", "Asymptotic", "Nonanginal", "Nontypical")) + theme_bw()
## Warning: Use of `dados$cp` is discouraged.
## ℹ Use `cp` instead.
## Warning: Use of `dados$sex` is discouraged.
## ℹ Use `sex` instead.
A partir do gráfico percebe-se que os indivíduos do sexo masculino são mais afetados pela dor no peito do que os indivíduos do gênero feminino.
ggplot(dados, aes(x = dados$sex))+geom_bar(aes(fill = dados$cp), position = "fill") +
ggtitle("Dor no peito x Gênero") + xlab("Gênero") + ylab("Quantidade") +
labs(fill = "Tipos de dor") +
scale_fill_brewer(palette = "OrRd", labels = c("Typical", "Asymptotic", "Nonanginal", "Nontypical")) + theme_bw()
## Warning: Use of `dados$cp` is discouraged.
## ℹ Use `cp` instead.
## Warning: Use of `dados$sex` is discouraged.
## ℹ Use `sex` instead.
Com base no gráfico de frequência relativa percebe-se que o tipo de dor Typical é mais recorrente nos indivíduos do gênero masculino. Já o tipo de dor que é mais recorrente entre os indivíduos do gênero feminino é o Nonanginal.
ggplot(dados, aes(x = dados$thalach)) + geom_histogram(aes(fill = dados$sex))+facet_wrap(~ dados$sex) +
ggtitle("Taxa de batimentos cardíacos") + xlab("Taxa de batimentos cardíacos") + ylab("Quantidade") + labs(fill = "Gênero") + theme_bw()
## Warning: Use of `dados$sex` is discouraged.
## ℹ Use `sex` instead.
## Warning: Use of `dados$thalach` is discouraged.
## ℹ Use `thalach` instead.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
Com base na análise do gráfico infere-se que os indivíduos do gênero masculino apresentam uma quantidade maior na taxa de batimentos cardíacos quando comparado com os indivíduos do gênero feminino.
ggplot(dados, aes(x = dados$thalach)) + geom_histogram(aes( y = after_stat(density), fill = dados$sex))+facet_wrap(~ dados$sex) +
ggtitle("Taxa de batimentos cardíacos x Gênero") + xlab("Taxa de batimentos cardíacos") + ylab("Quantidade") + labs(fill = "Gênero") +geom_density( color = "gray" ) + theme_bw()
## Warning: Use of `dados$sex` is discouraged.
## ℹ Use `sex` instead.
## Warning: Use of `dados$thalach` is discouraged.
## ℹ Use `thalach` instead.
## Use of `dados$thalach` is discouraged.
## ℹ Use `thalach` instead.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
Comparando o histograma com a linha da densidade com o histograma sem a linha da densidade, percebe-se que há uma diminuição nas alturas das colunas. Isso ocorre , pois a linha é obtida a partir da estmativa suavizada da distribuição de dados.