Questões

VADeaths

# Visualizando os dados 
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
df_va <- as.data.frame(VADeaths)
df_va$Idade <- rownames(df_va)
matrix_plot <- t(VADeaths)
cores <- c("Rural Male" = "lightblue", "Rural Female" = "pink",
           "Urban Male" = "darkblue", "Urban Female" = "red")

# Criando o gráfico
barplot(
  VADeaths,
  beside = TRUE,
  col = c("gray", "lightgray", "darkred", "red", "purple"),
  main = "Taxas de Mortalidade na Virgínia",
  xlab = "Causa/Área",
  ylab = "Taxa de Mortalidade (por 1000 habitantes)",
  legend.text = rownames(VADeaths), 
  args.legend = list(x = "topleft", bty = "n"),
  names.arg = colnames(VADeaths) 
)

ClassificaçãoDoença

# Definindo os dados

dados <- c("moderado", "leve", "leve", "severo", "leve", "moderado", 
           "moderado", "moderado", "leve", "leve", "severo", "leve", 
           "moderado", "moderado", "leve", "severo", "moderado", 
           "moderado", "moderado", "leve")

# Preparando os dados
frequencias <- table(dados)

# Convertendo para um fator ordenado antes de usar table()
estagios_ordenados <- factor(dados, levels = c("leve", "moderado", "severo"))
frequencias_ordenadas <- table(estagios_ordenados)

# Calculando as porcentagens
proporcoes <- prop.table(frequencias_ordenadas) 
porcentagens <- round(proporcoes * 100, 1)

# Definindo os rótulos 
nomes_fatias <- names(frequencias_ordenadas)
rotulos_fatias <- paste(nomes_fatias, " (", porcentagens, "%)", sep="")

# Definindo as cores das fatias
cores_fatias <- c("leve" = "lightgreen", "moderado" = "gold", "severo" = "firebrick")

# Margens
par(mar = c(5,4,4,8) + 0.1)

# Criando o gráfico de pizza
pie(
  frequencias_ordenadas,          
  labels = rotulos_fatias,        
  col = cores_fatias,             
  main = "Classificação da Doença em 20 Pacientes" 
)

# Adicionando a legenda
legend(
  x = "topright", 
  legend = nomes_fatias, 
  fill = cores_fatias,   
  title = "Estágio",     
  bty = "n",             
  inset = c(-0.015, 0)     
)

Teorema

# Carregando o dataset
flu_data <- read.csv("flu.csv")

# Extraindo a variável de interesse
population <- flu_data$age

# Tamanho da População
N <- length(population)
pop_mean <- mean(population)
pop_sd <- sd(population)

# Criando o histograma da população
hist_pop <- hist(population, 
                 main = "Distribuição de Idades das Mortes (População)", 
                 xlab = "Idade", 
                 freq = FALSE, 
                 col = "#ADD8E6", 
                 border = "white")


# Adicionando a curva de densidade estimada 
lines(density(population), col = "#00008B", lwd = 2) 

# Adicionando a legenda
legend("topright", 
       legend = c("Densidade da População"), 
       col = c("#00008B"), 
       lwd = 2, 
       bty = "n")

# Número de amostras 
K <- 200 
# Tamanho da amostra 
n_size <- 35 

# Definindo a função para tirar a amostra e calcular a média
get_sample_mean <- function() {
  sample_data <- sample(population, size = n_size, replace = TRUE)
  mean(sample_data)
}

# Replicando o processo 200 vezes 
sample_means <- replicate(K, get_sample_mean())

# Estatísticas das Médias Amostrais
means_mean <- mean(sample_means)
means_sd <- sd(sample_means)

# Criando o histograma das médias amostrais
hist_means <- hist(sample_means, 
                   main = "Distribuição das Médias Amostrais (n = 35)", 
                   xlab = "Média da Idade", 
                   freq = FALSE, 
                   col = "#90EE90", 
                   border = "white",
                   breaks = 15)

# Adicionando a curva de densidade estimada
lines(density(sample_means), col = "#006400", lwd = 2) 

# Adicionando a curva de densidade de uma distribuição normal teórica
x_fit <- seq(min(sample_means), max(sample_means), length = 100)
y_fit <- dnorm(x_fit, mean = pop_mean, sd = pop_sd / sqrt(n_size))
lines(x_fit, y_fit, col = "red", lty = 2, lwd = 2)

legend("topright", 
       legend = c("Densidade Amostral", "Densidade Normal Teórica"), 
       col = c("#006400", "red"), 
       lwd = 2, 
       lty = c(1, 2), 
       bty = "n")

Quarta questão

N <- 300       # Tamanho da População de gatos
sigma <- 0.5  # Desvio Padrão da População (kg)
CL <- 0.99    # Nível de Confiança (99%)
E <- 0.1      # Erro Amostral (kg)

# 1. Calculando o valor critico z
alpha <- 1 - CL
Z <- qnorm(1 - alpha/2)

# 2. Calculando n0
n0 <- (Z * sigma / E)^2

# 3. Calculando n
n_calculado <- n0 / (1 + (n0 - 1) / N)

# 4. Truncando o resultado para duas casas decimais 
n_truncado <- floor(n_calculado * 100) / 100

cat(sprintf("Resposta: %s\n", format(n_truncado, nsmall = 2)))
## Resposta: 107.04

Quinta questão

mu <- 400       # Média do consumo (gramas)
sigma <- 45     # Desvio Padrão (gramas)
X <- 500        # Valor de interesse (limite superior)

# Calculando a proporção acumulada até X = 500 
prob_abaixo_500 <- pnorm(q = X, mean = mu, sd = sigma)

# Calculando a proporção acima de X = 500 
prob_acima_500 <- 1 - prob_abaixo_500

# Convertendo para porcentagem
porcentagem <- prob_acima_500 * 100

# Truncando o resultado para duas casas decimais 
porcentagem_truncada <- floor(porcentagem * 100) / 100


cat(sprintf("Resposta: %s%%\n", format(porcentagem_truncada, nsmall = 2)))
## Resposta: 1.31%

Sexta questão

#Carregando o dataset
load("bdims.RData")

# 2. Filtrando dados
alturas_mulheres <- bdims[bdims$sex == 0, "hgt"]


# 3. Parâmetros e estatísticas da amostra
CL <- 0.985       # Nível de Confiança (98.5%)
n <- length(alturas_mulheres)       # Tamanho da amostra
media_amostra <- mean(alturas_mulheres) # Média amostral
sd_amostra <- sd(alturas_mulheres)    # Desvio padrão amostral

# 4. Calculando o valor crítico T
alfa <- 1 - CL
graus_liberdade <- n - 1

t_critico <- qt(1 - alfa / 2, df = graus_liberdade)

# Calculando o erro padrão e a margem de erro
erro_padrao <- sd_amostra / sqrt(n)
margem_erro <- t_critico * erro_padrao


# Calculando o intervalo de confiança
limite_inferior_calculado <- media_amostra - margem_erro
limite_superior_calculado <- media_amostra + margem_erro

# Truncando para 2 casas decimais
trunca_decimal <- function(x, d) {
  floor(x * 10^d) / 10^d
}

# Truncando os limites
li_truncado <- trunca_decimal(limite_inferior_calculado, 2)
ls_truncado <- trunca_decimal(limite_superior_calculado, 2)

# Formatando a resposta final
resposta_formatada <- sprintf("[%.2f-%.2f]", li_truncado, ls_truncado)

cat(sprintf("Resposta: %s\n", resposta_formatada))
## Resposta: [163.87-165.86]