Gráfico comparando a média e mediana por estado das regiões NE e SE:
# Filtrando os UFs dos estados da região NE e SE
dp_states <- states %>%
filter(region == "NE" | region == "SE") %>%
filter(is.na(extinction) & category == "State") %>%
select(subdivision)
dp_q1 <- dataset %>%
filter(uf_busca %in% dp_states$subdivision) %>%
group_by(uf_busca) %>%
summarise(mens_media = mean(mensalidade),
mens_median = median(mensalidade),
diferenca = abs(mean(mensalidade) - median(mensalidade)),
media_percentil = (sum(mensalidade <= mens_media)/n()) * 100) %>%
arrange(desc(media_percentil))
ggplot(dp_q1, aes(x = reorder(uf_busca, diferenca))) +
geom_bar(aes(y=mens_media, fill ="#99ccff"),stat="identity",position="dodge") +
geom_bar(aes(y=mens_median, fill="#3399ff"),stat="identity",position="dodge") +
scale_fill_identity(name = 'Legenda', guide = 'legend',labels = c('Mediana', 'Média')) +
labs(title = "Comparativo entre a média e a mediana",
y = "Média vs mediana da mensalidade", x = "Estados")
Calculando o percentil da média, poderemos comparar com a mediana que é o 50-percentil.
Percentil da média para cada estado:
dp_q1
## # A tibble: 13 × 5
## uf_busca mens_media mens_median diferenca media_percentil
## <chr> <dbl> <dbl> <dbl> <dbl>
## 1 RJ 745. 349. 396. 67.9
## 2 SP 591. 439 152. 63.5
## 3 MG 669. 403. 266. 63.4
## 4 RN 680. 552. 128. 61.7
## 5 PE 635. 511. 124. 61.6
## 6 AL 534. 403. 131. 61.5
## 7 ES 621. 418. 203. 61.0
## 8 CE 802. 675. 127. 59.9
## 9 PI 630. 531. 98.6 59.8
## 10 PB 697. 514. 183. 59.7
## 11 BA 640. 451 189. 59.6
## 12 MA 729. 588. 141. 57.9
## 13 SE 642. 588 54.1 55.7
E, por fim, um sumário de estatísticas para os percentis das médias:
summary(dp_q1$media_percentil)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 55.73 59.73 60.97 61.01 61.70 67.89
O valor mínimo de percentil de média é 55,73% e o máximo é 67,89%, e considerando a média desses valores que é 61,01%, isso representa uma diferença de 11,01% para a mediana o que pode indicar que a diferença entre média e mediana é significativa, mesmo quando considerado o valor mínimo.
dp_q2 <- dataset %>%
select(curso_busca, mensalidade, bolsa_integral_cotas, bolsa_integral_ampla, bolsa_parcial_cotas, bolsa_parcial_ampla) %>%
group_by(curso_busca) %>%
summarise(
max_mensalidade = max(mensalidade),
total_integral_cotas = sum(bolsa_integral_cotas, na.rm = TRUE),
total_integral_ampla = sum(bolsa_integral_ampla, na.rm = TRUE),
total_parcial_cotas = sum(bolsa_parcial_cotas, na.rm = TRUE),
total_parcial_ampla = sum(bolsa_parcial_ampla, na.rm = TRUE)) %>%
mutate(total_bolsas = rowSums(across(c(total_integral_cotas, total_integral_ampla, total_parcial_cotas, total_parcial_ampla)))) %>%
select(curso_busca, max_mensalidade, total_bolsas) %>%
arrange(desc(total_bolsas), desc(max_mensalidade))
head(dp_q2, 10)
## # A tibble: 10 × 3
## curso_busca max_mensalidade total_bolsas
## <chr> <dbl> <dbl>
## 1 Administração 6553. 20761
## 2 Pedagogia 3282 19448
## 3 Direito 7718. 14678
## 4 Ciências Contábeis 5801. 13145
## 5 Educação Física 8467. 10914
## 6 Enfermagem 9836. 10302
## 7 Engenharia Civil 6180 9442
## 8 Psicologia 9689. 6779
## 9 Gestão de Recursos Humanos 3408. 6665
## 10 Engenharia de Produção 7360. 5946
cor(dp_q2$max_mensalidade, dp_q2$total_bolsas, method = "pearson")
## [1] 0.6067392
A correlação entre total de bolsas e mensalidade máxima é de 0.61 aproximadamente, o que indica ter uma correlação entre as duas variáveis e essa correlação é moderada.
Total de cursos tecnológicos da Paraíba:
dp_q3 <- dataset %>%
filter(uf_busca == "PB" & grau == "Tecnológico") %>%
group_by(curso_busca) %>%
summarise(
total_integral_cotas = sum(bolsa_integral_cotas, na.rm = TRUE),
total_integral_ampla = sum(bolsa_integral_ampla, na.rm = TRUE),
total_parcial_cotas = sum(bolsa_parcial_cotas, na.rm = TRUE),
total_parcial_ampla = sum(bolsa_parcial_ampla, na.rm = TRUE)) %>%
mutate(total_bolsas = rowSums(across(c(total_integral_cotas, total_integral_ampla, total_parcial_cotas, total_parcial_ampla)))) %>%
select(curso_busca, total_bolsas, total_integral_cotas, total_integral_ampla, total_parcial_cotas, total_parcial_ampla) %>%
arrange(desc(total_bolsas))
Quantidade de cursos tecnológicos da Paraíba:
count(dp_q3)
## # A tibble: 1 × 1
## n
## <int>
## 1 34
Top 5 de cursos tecnológicos da Paraíba com mais bolsas e essa quantidade de bolsas divididas pelo tipo:
head(dp_q3, 5)
## # A tibble: 5 × 6
## curso_busca total_bolsas total_integral_cotas total_integral_ampla
## <chr> <dbl> <dbl> <dbl>
## 1 Gestão de Recursos Hum… 124 31 20
## 2 Segurança no Trabalho 110 11 7
## 3 Redes de Computadores 106 16 10
## 4 Gestão da Tecnologia d… 99 12 6
## 5 Negócios Imobiliários 95 6 4
## # ℹ 2 more variables: total_parcial_cotas <dbl>, total_parcial_ampla <dbl>
dp_q4 <- dataset %>%
filter(curso_busca %in% c("Ciência da Computação", "Engenharia da Computação", "Sistemas de Informação")) %>%
group_by(curso_busca, turno) %>%
summarise(
total_integral_cotas = sum(bolsa_integral_cotas, na.rm = TRUE),
total_integral_ampla = sum(bolsa_integral_ampla, na.rm = TRUE),
total_parcial_cotas = sum(bolsa_parcial_cotas, na.rm = TRUE),
total_parcial_ampla = sum(bolsa_parcial_ampla, na.rm = TRUE)) %>%
mutate(total_bolsas_turno = rowSums(across(c(total_integral_cotas, total_integral_ampla, total_parcial_cotas, total_parcial_ampla))), total_bolsas_curso = sum(total_bolsas_turno), porcentagem = (total_bolsas_turno/total_bolsas_curso) * 100) %>%
select(curso_busca, turno, total_bolsas_curso, total_bolsas_turno, porcentagem)
dp_q4
## # A tibble: 11 × 5
## # Groups: curso_busca [3]
## curso_busca turno total_bolsas_curso total_bolsas_turno porcentagem
## <chr> <chr> <dbl> <dbl> <dbl>
## 1 Ciência da Computação Inte… 1590 20 1.26
## 2 Ciência da Computação Matu… 1590 384 24.2
## 3 Ciência da Computação Notu… 1590 1169 73.5
## 4 Ciência da Computação Vesp… 1590 17 1.07
## 5 Engenharia da Comput… Inte… 121 22 18.2
## 6 Engenharia da Comput… Matu… 121 19 15.7
## 7 Engenharia da Comput… Notu… 121 80 66.1
## 8 Sistemas de Informaç… Curs… 1925 95 4.94
## 9 Sistemas de Informaç… Matu… 1925 260 13.5
## 10 Sistemas de Informaç… Notu… 1925 1514 78.6
## 11 Sistemas de Informaç… Vesp… 1925 56 2.91
Podemos ver na tabela acima o percentual de bolsas por cada modalidade de cada um dos cursos. Além disso, é notável que a modalidade noturna em todos os cursos possui os maiores percentuais de bolsas: Ciência da Computação tem 73,52% das bolsas na modalidade noturna, Engenharia da Computação tem 66,11% e Sistemas de Informação tem 78,65%.