Qual a diferença entre as mensalidades médias e medianas dos cursos de Ciência da Computação do Nordeste e Sudeste? Na sua opnião, essa diferença é estatisticamente significativa? Justifique.
dff %>%
left_join(br, by = c("uf_busca" = "uf")) %>%
select(curso = curso_busca, regiao, mensalidade) %>%
filter(curso == "Ciência da Computação", regiao %in% c("Nordeste", "Sudeste")) %>%
group_by(regiao) %>%
summarise(mean = mean(mensalidade),
median = median(mensalidade),
diff = mean - median) %>%
knitr::kable(col.names = c("Região", "Média (R\\$)", "Mediana (R\\$)", "Média - Mediana (R\\$)"))
| Região | Média (R$) | Mediana (R$) | Média - Mediana (R$) |
|---|---|---|---|
| Nordeste | 712.7342 | 742.8 | -30.06581 |
| Sudeste | 899.0594 | 779.0 | 120.05938 |
Analisando a diferença entre a média e a mediana em cada região, vemos que:
A diferença é estatiscamente significativa em especial no segundo caso, como estamos lidando com valores na escala de centenas e milhares de reais, uma diferença de 30 reais como no primeiro cenário é muito pequena.
Quais são os top 10 cursos com maior valor de mensalidade pelo total de bolsas (diferentes tipos)? Existe uma relação entre o valor total de mensalidade e o total de bolsas por curso? Justifique.
dff %>%
mutate(curso_id = as.character(curso_id)) %>%
pivot_longer(
cols = starts_with("bolsa"),
names_to = "tipo_bolsa",
values_to = "qtd_bolsa",
values_drop_na = T
) %>%
select(curso = nome, curso_id, universidade_nome, campus_nome, qtd_bolsa, mensalidade) %>%
group_by(curso_id, curso, universidade_nome, campus_nome) %>%
summarise(qtd_bolsa = sum(qtd_bolsa), mensalidade = first(mensalidade), .groups = "drop") %>%
mutate(mens_per_bolsa = mensalidade / qtd_bolsa) %>%
slice_max(order_by = mens_per_bolsa, n = 10) %>%
separate(universidade_nome, into = c(NA, "universidade_sigla"), sep = " - ", remove = TRUE) %>%
separate(campus_nome, into = c(NA, "campus_nome", NA, "campus_nome_2"), sep = " - ", remove = TRUE, fill = "right") %>%
mutate(campus_nome = ifelse(is.na(campus_nome_2), campus_nome, campus_nome_2)) %>%
select(-campus_nome_2, -mensalidade, -curso_id) %>%
unite(col = "uni_campus", universidade_sigla, campus_nome, sep = " - ", remove = TRUE) %>%
unite(col = "curso", curso, uni_campus, sep = "\n", remove = TRUE) %>%
ggplot(aes(x = reorder(curso, mens_per_bolsa), y = mens_per_bolsa, label = glue::glue("{qtd_bolsa} b."))) +
geom_bar(stat = "identity", position = "dodge") +
geom_text(nudge_y = 350) +
theme_bw() +
labs(y = "Mensalidade por bolsa (R$)",
x = "Curso",
title = "TOP 10 - Cursos com maior mensalidade por nº de bolsas") +
coord_flip()
O Top 10 é composto por cursos cuja oferta de bolsas foi de uma bolsa no total, de maneira que a razão mensalidade por bolsa ficou elevada. Além disso, no 10º lugar temos um empate de 3 cursos.
df_aux <- dff %>%
mutate(curso_id = as.character(curso_id)) %>%
pivot_longer(
cols = starts_with("bolsa"),
names_to = "tipo_bolsa",
values_to = "qtd_bolsa",
values_drop_na = T
) %>%
select(curso = nome, curso_id, universidade_nome, campus_nome, qtd_bolsa, mensalidade) %>%
group_by(curso_id, curso, universidade_nome, campus_nome) %>%
summarise(qtd_bolsa = sum(qtd_bolsa), mensalidade = first(mensalidade), .groups = "drop") %>%
mutate(lb_bolsa = ifelse(qtd_bolsa > 30, "Mais de 30 bolsas", "Até 30 bolsas"))
Analisando então se existe alguma relação entre o número de bolsas e a mensalidade, temos o gráfico de dispersão abaixo, facetado por dois grupos:
Por fim, a correlação de Pearson (0.22) nos mostra que não existe uma correlação linear, enquanto a de Spearman (0.51) tem um valor moderado e nos mostra que há uma correlação moderada possivelmente motivada pela relação analisada nos dois grupos acima.
df_aux %>%
ggplot(aes(x = mensalidade, y = qtd_bolsa)) +
geom_point() +
facet_wrap(~ lb_bolsa, scales = "free") +
theme_bw()
Quais são os cursos tecnológicos da Paraíba que oferecem mais bolsas de estudo e quantas bolsas de cada tipo estes cursos oferecem?
df_aux <- dff %>%
filter(grau == "Tecnológico", uf_busca == "PB") %>%
pivot_longer(
cols = starts_with("bolsa"),
names_to = "tipo_bolsa",
values_to = "qtd_bolsa",
values_drop_na = T
) %>%
group_by(curso = nome, tipo_bolsa) %>%
summarise(qtd_bolsa = sum(qtd_bolsa), .groups = "drop") %>%
group_by(curso) %>%
summarise(
tipo_bolsa = tipo_bolsa,
qtd_bolsa = qtd_bolsa,
tot_bolsa = sum(qtd_bolsa),
.groups = "drop"
) %>%
mutate(tipo_bolsa = case_when(
tipo_bolsa == "bolsa_integral_ampla" ~ "Integral Ampla",
tipo_bolsa == "bolsa_integral_cotas" ~ "Integral Cotas",
tipo_bolsa == "bolsa_parcial_ampla" ~ "Parcial Ampla",
tipo_bolsa == "bolsa_parcial_cotas" ~ "Parcial Cotas"
))
top10_cursos <- df_aux %>%
select(curso, tot_bolsa) %>%
distinct() %>%
slice_max(order_by = tot_bolsa, n = 10) %>%
pull(curso)
df_aux %>%
filter(curso %in% top10_cursos) %>%
ggplot(aes(x = reorder(curso, tot_bolsa), y = qtd_bolsa, label = qtd_bolsa, fill = tipo_bolsa)) +
geom_bar(stat = "identity", position = position_dodge2()) +
geom_text(aes(y = qtd_bolsa + 5),
position = position_dodge(width = .9),
size = 3) +
theme_bw() +
theme(legend.position = "top", axis.text.x = element_text(size = 6, angle = 90)) +
labs(
x = "Curso",
y = "# Bolsas",
fill = "Tipo de bolsa",
title = "Cursos tecnológicos da Paraíba com maior oferta de bolsas"
) +
guides(fill = guide_legend(nrow = 2))
O top 10 cursos com maior oferta podem ser visto no gráfico acima, as vagas estão estratificadas pelo seu tipo. O curso com maior oferta é o de Gestão em Recursos Humanos com um total de 124 bolsas.
Considerando os cursos de Ciência da Computação, Engenharia da Computação e Sistemas de Informação, qual o percentual de bolsas ofertadas para cada modalidade (a distância, integral, noturno, etc.) por cada um dos cursos? Existe uma modalidade que é predominante?
dff %>%
filter(
nome %in% c(
"Ciência da Computação",
"Engenharia da Computação",
"Sistemas de Informação"
)
) %>%
pivot_longer(
cols = starts_with("bolsa"),
names_to = "tipo_bolsa",
values_to = "qtd_bolsa",
values_drop_na = T
) %>%
group_by(curso = nome, turno) %>%
summarise(qtd_bolsa = sum(qtd_bolsa), .groups = "drop") %>%
group_by(curso) %>%
summarise(
turno = turno,
qtd_bolsa = qtd_bolsa,
tot_bolsa = sum(qtd_bolsa),
.groups = "drop"
) %>%
mutate(prop = qtd_bolsa / tot_bolsa) %>%
arrange(turno) %>%
ggplot(aes(
x = curso,
y = prop,
fill = turno,
label = glue::glue("{round(prop, 4)*100}%", prop = prop),
group = prop
)) +
geom_bar(stat = "identity", position = position_dodge2()) +
geom_text(aes(y = prop + 0.03),
position = position_dodge(width = .9),
size = 3) +
theme_bw() +
theme(legend.position = "top") +
labs(
x = "Curso",
y = "Proporção (%)",
fill = "Modalidade",
title = "Oferta de bolsas por modalidade",
subtitle = "Nos cursos de Ciência da Computação, Engenharia da Computação e Sistemas de Informação"
)
É possível ver que a modalidade noturna é predominante em todos os cursos, enquanto que a modalidade vespertina é a com menos ofertas.