Visualize o dataset VADeaths (já incluído no R) e crie um gráfico de barras empilhadas desses dados, de modo que as barras estejam agrupadas (lado a lado) para cada categoria. Também defina uma cor diferente para cada grupo das categorias. Por fim, adicione título, legenda e nomes nos eixos.
library(ggplot2)
library(tidyr)
library(ggplot2)
library(knitr)
print(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
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ readr 2.1.5
## ✔ forcats 1.0.0 ✔ stringr 1.5.1
## ✔ lubridate 1.9.3 ✔ tibble 3.2.1
## ✔ purrr 1.0.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ 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
data("VADeaths")
df <- as.data.frame(VADeaths)
df$`Faixa Etária` <- rownames(df)
df <- df %>% select(`Faixa Etária`, everything())
df_long <- df %>%
pivot_longer(cols = c("Rural Male", "Rural Female", "Urban Male", "Urban Female"),
names_to = "Categorias",
values_to = "Value")
df_long
## # A tibble: 20 × 3
## `Faixa Etária` Categorias Value
## <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
library(ggplot2)
ggplot(df_long, aes(x = Categorias, y = Value, fill = `Faixa Etária`)) +
geom_bar(stat = "identity") +
scale_fill_brewer(palette = "Set3") +
labs(title = "Taxas de Mortalidade por Categoria e Faixa Etária",
x = "Categoria",
y = "Taxa de Mortalidade - Quantidade",
fill = "Faixa Etária") + # Título, rótulos dos eixos e legenda
theme_minimal() # Tema do gráfico
Uma doença pode ser classificada em três estágios (leve, moderado e severo). Foram examinados 20 pacientes e obtidos os dados: moderado, leve, leve, severo, leve, moderado, moderado, moderado, leve, leve, severo,leve, moderado, moderado, leve, severo, moderado, moderado, moderado,leve. Com base nestes dados crie um gráfico de piza. Inclua a porcentagem de cada fatia, as cores das fatias e o nome do gráfico. Adicionalmente, use o comando legend() para incluir a legenda do gráfico.
# Instalar e carregar o pacote necessário
library(tidyverse)
doenca <- data.frame(estagio = c("moderado", "leve", "leve", "severo", "leve", "moderado",
"moderado", "moderado", "leve", "leve", "severo", "leve",
"moderado", "moderado", "leve", "severo", "moderado",
"moderado", "moderado", "leve"))
# Contando a quantidade de cada estágio
contagem <- table(doenca$estagio)
# Convertendo para data frame
tabela_resultado <- as.data.frame(contagem)
# Nomeando as colunas
colnames(tabela_resultado) <- c("Estágio", "Quantidade")
# Mostrando o resultado
print(tabela_resultado)
## Estágio Quantidade
## 1 leve 8
## 2 moderado 9
## 3 severo 3
grafico <- ggplot(tabela_resultado, aes(x = "", y = Quantidade, fill = Estágio)) +
geom_bar(stat = "identity", width = 1) +
coord_polar("y", start = 0) +
theme_void() +
scale_fill_manual(values = c('blue','red','yellow')) +
ggtitle("Distribuição dos Estágios") +
theme(plot.title = element_text(hjust = 0.5)) +
geom_text(aes(label = paste0(round(Quantidade / sum(Quantidade) * 100), "%")),
position = position_stack(vjust = 0.5), size = 5)
# Mostrar o gráfico
print(grafico)
plot.new()
# Adicionar legenda
legend("top", legend = tabela_resultado$Estágio, fill = c('blue','red','yellow'), title = "Estágio", horiz = TRUE)
Nesta questão, demonstre o uso do teorema do limite central, usando o conjunto de dados “flu” que é altamente não normal. Esse dataset contém as frequências das idades das mortes durante a epidemia de gripe espanhola na Suíça em 1918. Considere a idade das mortes como a população. Execute os passos a seguir. (1)Mostre o histograma e a curva de densidade do conjunto de dados “flu”. (2) Crie 200 médias de amostras da população com tamanho n = 35. (3) Mostre o histograma com a curva de densidade para a médias das amostras. 4) Submeta o link do RPubs com o resultado das etapas anteriores
library(readr)
flu <- read_csv("flu.csv", col_types = cols(age = col_double()))
print(flu)
## # A tibble: 75,034 × 1
## age
## <dbl>
## 1 0
## 2 0
## 3 0
## 4 0
## 5 0
## 6 0
## 7 0
## 8 0
## 9 0
## 10 0
## # ℹ 75,024 more rows
Histograma
hist(flu$age, probability = T)
lines(density(flu$age))
n <- 200
Tamanho <- 35
med <- rep(NA, n)
for (i in 1:n){
amostra <- sample(flu$age, size = Tamanho)
med[i] <- mean(amostra)
}
med
## [1] 43.28571 39.20000 46.34286 37.25714 45.40000 41.51429 37.05714 41.40000
## [9] 34.17143 40.77143 42.42857 39.91429 48.22857 43.34286 43.54286 40.60000
## [17] 42.22857 48.02857 42.65714 49.34286 43.68571 44.62857 39.25714 35.97143
## [25] 51.97143 43.34286 44.11429 42.37143 45.88571 41.37143 42.00000 41.65714
## [33] 47.20000 43.54286 44.68571 39.68571 43.85714 41.34286 37.71429 48.80000
## [41] 39.94286 45.08571 41.00000 50.97143 45.80000 47.20000 45.94286 43.94286
## [49] 38.57143 41.82857 49.20000 50.71429 44.80000 48.31429 43.54286 40.57143
## [57] 41.22857 44.74286 38.40000 41.31429 53.74286 40.37143 53.31429 43.85714
## [65] 40.22857 45.45714 44.25714 44.97143 48.34286 45.94286 39.97143 39.02857
## [73] 43.68571 43.00000 47.31429 48.14286 40.31429 40.17143 50.80000 38.17143
## [81] 43.48571 44.00000 42.48571 39.85714 40.60000 47.94286 41.51429 42.31429
## [89] 43.82857 42.71429 40.80000 44.65714 44.94286 42.88571 37.65714 47.02857
## [97] 40.20000 44.94286 46.71429 40.37143 40.71429 38.60000 37.28571 47.68571
## [105] 47.82857 36.68571 39.45714 37.94286 42.05714 40.68571 41.42857 47.97143
## [113] 50.88571 45.57143 35.57143 39.74286 43.17143 41.57143 51.34286 43.11429
## [121] 50.14286 44.68571 46.14286 48.40000 38.88571 34.34286 41.40000 44.65714
## [129] 40.77143 38.14286 45.02857 41.88571 45.91429 47.82857 42.34286 47.60000
## [137] 47.05714 41.08571 43.60000 45.08571 42.80000 41.80000 42.05714 46.08571
## [145] 46.51429 42.31429 39.48571 40.54286 45.37143 44.25714 40.74286 51.51429
## [153] 42.20000 43.25714 46.00000 48.60000 30.62857 42.08571 37.42857 41.31429
## [161] 40.34286 42.02857 43.91429 42.05714 45.57143 46.51429 43.65714 47.54286
## [169] 52.57143 39.77143 41.62857 36.91429 41.48571 46.65714 40.02857 41.65714
## [177] 40.88571 47.37143 50.28571 51.48571 39.37143 41.80000 45.42857 40.71429
## [185] 44.57143 38.48571 46.02857 40.68571 42.88571 39.00000 40.65714 46.37143
## [193] 44.28571 45.94286 45.17143 42.25714 44.94286 32.88571 41.14286 39.05714
hist(med, probability = T)
lines(density(med))
Suponha que a variável escolhida num estudo seja o peso dos gatos da Ruralinda e que a população é composta de 300 gatos. Pelo um estudo prévio dos pesos, o desvio-padrão é de 0.5 kg. Admitindo-se um nível de confiança de 99% e um erro amostral de 0.1 kg, calcule o tamanho da amostra para estimar o peso médio dos gatos da Ruralinda. Use apenas duas casas decimais para submeter sua resposta (sem arredondamento). Ex.:123.239586 -> 123.23.
N <- 300
sd <- 0.5
nc <- (1-0.99)/2
erro <- 0.1
q <- (qnorm(nc, lower.tail = F)^2*sd*N)/((erro^2*(N-1))+(qnorm(nc, lower.tail = F)^2*sd^2))
q
## [1] 214.0877
No RU da Ruralinda, os alunos comem, em média, 400 gramas, com desvio padrão de 45 gramas. Pressupondo distribuição normal, qual proporção de alunos comem acima de 500 gramas ? Submeta a resposta em porcentagem com duas casas decimais. Também coloquem o símbolo de porcentagem. Por exemplo: 0.9452899 -> 94.52%.
sd <- 45
media <- 400
1-pnorm(500,media,sd)
## [1] 0.01313415
Para esta questão, usaremos o conjunto de dados “bdims”. Este conjunto de dados contém medidas de 247 homens e 260 mulheres, a maioria dos quais foram considerados adultos jovens saudáveis. Determine o intervalo de confiança de 98.5% da média de alturas (hgt) das mulheres (sex == 0). Para carregar o conjunto de dados primeiro baixe o arquivo “bdims.RData” e coloque-o no diretório apontado pelo RStudio. Após isso, use o comando load(“bdims.RData”). Submeta a resposta com duas casas decimais e sem espaço. Por exemplo: [ 23.4051 - 34.44589 ] -> [23.40-34.44].
load("bdims.RData")
n <- 260
x <- mean(bdims$hgt[bdims$sex == 0], na.rm = TRUE)
d <- sd(bdims$hgt[bdims$sex == 0], na.rm = TRUE)
nc <- (1-0.985)/2
erro1 <- d/sqrt(n)
#Limite inferior
left <- x-(qnorm(nc,lower.tail =F)*erro1)
#Limite Superior
right <- x+(qnorm(nc,lower.tail = F)*erro1)
cat("[",left,"-",right,"]")
## [ 163.8851 - 165.8596 ]