Questão 1

Visualização de Taxas de Mortalidade

library(tidyverse)

# Carregando o dataset nativo
data("VADeaths")
VADeaths
##       Rural Male Rural Female Urban Male Urban Female
## 50-54       11.7          8.7       15.4          8.4
## 55-59       18.1         11.7       24.3         13.6
## 60-64       26.9         20.3       37.0         19.3
## 65-69       41.0         30.9       54.6         35.1
## 70-74       66.0         54.3       71.1         50.0

Convertendo matriz para dataframe e preservando nomes das linhas

# Convertendo matriz para dataframe e preservando nomes das linhas
dados_va <- as.data.frame(VADeaths)
dados_va$Idade <- rownames(dados_va)

Transformando para formato longo (tidy data) para plotagem

dados_longos <- dados_va %>%
  pivot_longer(cols = -Idade,
               names_to = "Categoria",
               values_to = "TaxaMortalidade")

dados_longos
## # A tibble: 20 × 3
##    Idade Categoria    TaxaMortalidade
##    <chr> <chr>                  <dbl>
##  1 50-54 Rural Male              11.7
##  2 50-54 Rural Female             8.7
##  3 50-54 Urban Male              15.4
##  4 50-54 Urban Female             8.4
##  5 55-59 Rural Male              18.1
##  6 55-59 Rural Female            11.7
##  7 55-59 Urban Male              24.3
##  8 55-59 Urban Female            13.6
##  9 60-64 Rural Male              26.9
## 10 60-64 Rural Female            20.3
## 11 60-64 Urban Male              37  
## 12 60-64 Urban Female            19.3
## 13 65-69 Rural Male              41  
## 14 65-69 Rural Female            30.9
## 15 65-69 Urban Male              54.6
## 16 65-69 Urban Female            35.1
## 17 70-74 Rural Male              66  
## 18 70-74 Rural Female            54.3
## 19 70-74 Urban Male              71.1
## 20 70-74 Urban Female            50

Gerando o gráfico de colunas agrupadas

ggplot(dados_longos, aes(x = Idade, y = TaxaMortalidade, fill = Categoria)) +
  geom_col(position = "dodge", width = 0.7) +
  labs(
    title = "Mortalidade por Grupo Demográfico (VADeaths)",
    subtitle = "Comparativo entre faixas etárias",
    x = "Faixa Etária",
    y = "Taxa (por 1000 hab.)",
    fill = "Grupo"
  ) +
  theme_bw() +
  theme(
    plot.title = element_text(size = 14, face = "bold"),
    axis.text.x = element_text(angle = 0, hjust = 0.5)
  )

Questão 2

# Vetor com os dados brutos
vetor_estagios <- c(
  "moderado", "leve", "leve", "severo", "leve",
  "moderado", "moderado", "moderado", "leve", "leve",
  "severo", "leve", "moderado", "moderado", "leve",
  "severo", "moderado", "moderado", "moderado", "leve"
)

# Tabela de frequências simples
freq_tabela <- table(vetor_estagios)

# Cálculo das porcentagens
porcentagens <- round(freq_tabela / sum(freq_tabela) * 100, 1)

# Criando rótulos dinâmicos
rotulos_pie <- paste(names(freq_tabela), "-", porcentagens, "%")

# Definindo cores personalizadas
paleta_cores <- c("skyblue", "gold", "tomato")

# Plotando o gráfico de pizza
pie(freq_tabela,
    labels = rotulos_pie,
    main = "Distribuição: Gravidade da Doença",
    col = paleta_cores,
    border = "white"
)

legend("topright",
       legend = names(freq_tabela),
       fill = paleta_cores,
       title = "Classificação",
       cex = 0.8
)

Questão 3

dados_gripe <- read.csv("flu.csv", stringsAsFactors = FALSE)

# Extraindo e convertendo a coluna de idades
idades_populacao <- as.numeric(dados_gripe$age)
# Histograma dos dados originais com curva de densidade
hist(idades_populacao,
     breaks = 20,
     probability = TRUE,
     main = "Distribuição de Idades (População Original)",
     xlab = "Idade (anos)",
     ylab = "Densidade",
     col = "whitesmoke",
     border = "gray")

# Adicionando linha de densidade
lines(density(idades_populacao, na.rm = TRUE), col = "firebrick", lwd = 2)

# Configurando semente para reprodutibilidade dos resultados
set.seed(123)

tamanho_amostra <- 35
numero_repeticoes <- 200

# Gerando 200 médias a partir de amostras de tamanho 35
medias_simuladas <- replicate(numero_repeticoes, 
                              mean(sample(idades_populacao, tamanho_amostra, replace = TRUE)))
# Histograma das médias calculadas (Teorema Central do Limite)
hist(medias_simuladas,
     breaks = 20,
     probability = TRUE,
     main = "Distribuição das Médias das Amostras (n=35)",
     xlab = "Média de Idade",
     ylab = "Densidade",
     col = "lightgreen",
     border = "white")

# Curva de densidade para as médias
lines(density(medias_simuladas), col = "darkgreen", lwd = 2)