RESPOSTAS

Resposta das perguntas do github do laboratório 1 da cadeira de FPCC2

Q1: Diferença nas Mensalidades de Cursos de Ciência da Computação (Nordeste vs. Sudeste)

Código R

# Juntando cursos com estados para obter a região
cursos_regiao <- cursos %>%
  left_join(select(estados, subdivision, region), by = c("uf_busca" = "subdivision")) %>%
  filter(curso_busca == "Ciência da Computação", region %in% c("NE", "SE"))

# Calculando média e mediana por região
q1_resumo <- cursos_regiao %>%
  group_by(region) %>%
  summarise(
    Media_Mensalidade = round(mean(mensalidade, na.rm = TRUE), 2),
    Mediana_Mensalidade = round(median(mensalidade, na.rm = TRUE), 2),
    Contagem = n()
  ) %>%
  rename(Região = region, Média = Media_Mensalidade, Mediana = Mediana_Mensalidade, N = Contagem)

# Exibindo tabela de resumo
knitr::kable(q1_resumo, caption = "Média e Mediana das Mensalidades para Ciência da Computação por Região",
             format = ifelse(knitr::is_html_output(), "html", "latex"), digits = 2, align = "c")
Média e Mediana das Mensalidades para Ciência da Computação por Região
Região Média Mediana N
NE 712.73 742.8 31
SE 899.06 779.0 113
# valor p
t_test_resultado <- t.test(mensalidade ~ region, data = cursos_regiao, var.equal = FALSE)

# boxplot
ggplot(cursos_regiao, aes(x = region, y = mensalidade, fill = region)) +
  geom_boxplot() +
  theme_minimal() +
  labs(title = "Mensalidades de Cursos de Ciência da Computação por Região",
       x = "Região", y = "Mensalidade Mensal (R$)") +
  theme(legend.position = "none")

Resultados

A tabela mostra a média e a mediana das mensalidades para cursos de Ciência da Computação no Nordeste e Sudeste, com o número de cursos por região. O boxplot visualiza a distribuição das mensalidades, destacando diferenças e possíveis outliers. O teste t resulta em um valor p de 0.003, indicando se a diferença média é significativa (p < 0,05 sugere significância). Também é possível notar a existencia de outliers no gráfico do Sudeste.

Justificativa

É notável que existe uma diferença significativa entre no nordeste e Sudeste,por exemplo a média de mensalidade do nordeste é mais significamente mais baixa, assim como amediana. Essa diferença pode ser explicada por fatores economicos, com o sudeste tendo mais poder econômico e de consumo do que o Nordeste, o que gera uma diferença no acesso a educação, além disso, a oferta de cursos no Sudeste tende a ser maior, devido a região ter um interior mais desenvolvido, como no estado de São Paulo.

Q2: Os 10 Cursos com Maiores Mensalidades e Relação com Bolsas

Análise

Os 10 cursos com as maiores mensalidades e calculamos o total de bolsas (bolsa_integral_cotas + bolsa_integral_ampla + bolsa_parcial_cotas + bolsa_parcial_ampla). Um gráfico de dispersão e um teste de correlação de Pearson exploram a relação entre mensalidades e bolsas.

Código R

# Total de diferentes tipos de bolsas
cursos$total_bolsas <- rowSums(cursos[, c("bolsa_integral_cotas", "bolsa_integral_ampla",
                                          "bolsa_parcial_cotas", "bolsa_parcial_ampla")], na.rm = TRUE)

# Calculando média de mensalidades e soma de bolsas por tipo de curso
q2_resumo <- cursos %>%
  group_by(curso_busca) %>%
  summarise(
    Mensalidade_Media = round(mean(mensalidade, na.rm = TRUE), 2),
    Bolsas_Total = sum(total_bolsas, na.rm = TRUE)
  ) %>%
  arrange(desc(Mensalidade_Media)) %>%
  slice_head(n = 10) %>%
  rename(Curso = curso_busca, Mensalidade = Mensalidade_Media, Bolsas = Bolsas_Total)

# Exibindo tabela
knitr::kable(q2_resumo, caption = "Os 10 Tipos de Cursos com Maiores Médias de Mensalidades",
             format = ifelse(knitr::is_html_output(), "html", "latex"), digits = 2, align = "c")
Os 10 Tipos de Cursos com Maiores Médias de Mensalidades
Curso Mensalidade Bolsas
Medicina 7168.34 1177
Engenharia de Materiais e Nanotecnologia 4108.00 2
Desenho Industrial 3467.00 28
Sistemas Biomédicos 3420.00 22
Comunicação Social - Cinema 2782.33 7
Pilotagem Profissional de Aeronaves 2630.89 44
Comunicação e Multimeios 2585.05 4
Odontologia 2324.17 2529
Música - Composição 2211.00 1
Design de Games 2180.00 2
#gráfico de disperção.
ggplot(cursos, aes(x = mensalidade, y = total_bolsas)) +
  geom_point(alpha = 0.5) +
  theme_minimal() +
  labs(title = "Mensalidades vs. Total de Bolsas",
       x = "Mensalidade Mensal (R$)", y = "Total de Bolsas")

# Teste de correlação
cor_teste <- cor.test(cursos$mensalidade, cursos$total_bolsas, method = "pearson")

Resultados

A tabela lista os 10 cursos com as maiores mensalidades e o total de bolsas. O gráfico de dispersão mostra a relação entre mensalidades e bolsas. O coeficiente de correlação de Pearson é 0.216, com valor p de 0, indicando a força e significância da relação.

Justificativa

Para Visualização foi utilizado um gráfico de disperçao para relacionar os padroes entre mensalidade e bolsa,

É notável que cursos que oferecem mais bolsas são o que vão até 2500 R$ mensais, essa correlação pode ser devido a maior procura de cursos de baixo valor de mensalidade, através de programas de auxílio ao acesso a universidade, além disso cursos mais caros tendem a vir de instituições de mais prestígio que oferecem menos bolsas e auxílio.

Q3: Cursos Tecnológicos na Paraíba com Mais Bolsas

Código R

Q3: Cursos de Tecnologia na Paraíba com Mais Bolsas

** AVISO: NÃO FICOU CLARO SE A QUESTÃO SE REFERIA A CURSOS DA ÁREA DE TECNOLOGIA, OU CURSOS DE GRÁU TECNOLÓGICO. POR ISSO DECIDI FAZER A TABELA PARA OS DOIS.**

Análise

filtrando cursos de tecnologia (como Ciência da Computação, Sistemas de Informação, entre outros) na Paraíba (uf_busca == "PB") e calculamos o total de bolsas por curso. Os 5 cursos com mais bolsas são apresentados em uma tabela, detalhando cada tipo de bolsa.

Código R

# Total de bolsas
cursos$total_bolsas <- rowSums(cursos[, c("bolsa_integral_cotas", "bolsa_integral_ampla",
                                          "bolsa_parcial_cotas", "bolsa_parcial_ampla")], na.rm = TRUE)

# Tabela 1: Cursos com grau "Tecnológico" na Paraíba
q3_tec_dados <- cursos %>%
  filter(grau == "Tecnológico", uf_busca == "PB") %>%
  arrange(desc(total_bolsas)) %>%
  select(curso_busca, bolsa_integral_cotas, bolsa_integral_ampla, bolsa_parcial_cotas, bolsa_parcial_ampla, total_bolsas) %>%
  slice_head(n = 5) %>%
  rename(Curso = curso_busca, Int_Cotas = bolsa_integral_cotas, Int_Ampla = bolsa_integral_ampla,
         Parc_Cotas = bolsa_parcial_cotas, Parc_Ampla = bolsa_parcial_ampla, Total = total_bolsas)

# Exibindo Tabela 1
knitr::kable(q3_tec_dados, caption = "Cursos com Grau Tecnológico na Paraíba com Mais Bolsas",
             format = ifelse(knitr::is_html_output(), "html", "latex"), digits = 0, align = "c")
Cursos com Grau Tecnológico na Paraíba com Mais Bolsas
Curso Int_Cotas Int_Ampla Parc_Cotas Parc_Ampla Total
Segurança no Trabalho 3 2 NA 50 55
Negócios Imobiliários 3 2 NA 50 55
Logística NA NA NA 45 45
Gestão de Recursos Humanos 2 2 NA 40 44
Redes de Computadores 1 NA NA 40 41
# Tabela 2: Cursos de tecnologia na Paraíba
cursos_tecnologia <- c(
  "Ciência da Computação", "Engenharia de Computação", "Sistemas de Informação",
  "Tecnologia da Informação", "Análise e Desenvolvimento de Sistemas",
  "Gestão da Tecnologia da Informação", "Engenharia de Software",
  "Redes de Computadores", "Banco de Dados", "Segurança da Informação"
)

q3_tecnologia_dados <- cursos %>%
  filter(curso_busca %in% cursos_tecnologia, uf_busca == "PB") %>%
  arrange(desc(total_bolsas)) %>%
  select(curso_busca, bolsa_integral_cotas, bolsa_integral_ampla, bolsa_parcial_cotas, bolsa_parcial_ampla, total_bolsas) %>%
  slice_head(n = 5) %>%
  rename(Curso = curso_busca, Int_Cotas = bolsa_integral_cotas, Int_Ampla = bolsa_integral_ampla,
         Parc_Cotas = bolsa_parcial_cotas, Parc_Ampla = bolsa_parcial_ampla, Total = total_bolsas)

# Exibindo Tabela 2
if (nrow(q3_tecnologia_dados) == 0) {
  cat("Nenhum curso de tecnologia encontrado na Paraíba.\n")
} else {
  knitr::kable(q3_tecnologia_dados, caption = "Cursos de Tecnologia na Paraíba com Mais Bolsas",
               format = ifelse(knitr::is_html_output(), "html", "latex"), digits = 0, align = "c")
}
Cursos de Tecnologia na Paraíba com Mais Bolsas
Curso Int_Cotas Int_Ampla Parc_Cotas Parc_Ampla Total
Redes de Computadores 1 NA NA 40 41
Redes de Computadores 1 NA NA 40 41
Gestão da Tecnologia da Informação 1 NA NA 40 41
Gestão da Tecnologia da Informação 1 NA NA 40 41
Gestão da Tecnologia da Informação 5 4 NA NA 9

Resultados

A tabela mostra os cursos tecnológicos na Paraíba com o maior número de bolsas, detalhando os tipos de bolsas (integral cotas, integral ampla, parcial cotas, parcial ampla).

Justificativa

  • Visualização: Uma tabela é adequada para poucos cursos, apresentando contagens claras.
  • Interpretação: Cursos relacionados a industria tecnologica e do trabalho possuem mais bolsas, (segurança no trabalho,recursos humanos,logistica etc…). já nos cursos de tecnologia é possível ver que os cursos de redes de decomputadores são os que mais oferecem bolsas.

Q4: Percentuais de Bolsas por Modalidade para Cursos Selecionados

Análise

Para Ciência da Computação, Engenharia de Computação e Sistemas de Informação, exibe o percentual de bolsas por modalidade (turno). Um gráfico de barras empilhadas visualiza a distribuição.

Código R

# Filtrando cursos relevantes
q4_dados <- cursos %>%
  filter(curso_busca %in% c("Ciência da Computação", "Engenharia de Computação", "Sistemas de Informação")) %>%
  mutate(total_bolsas = rowSums(select(., bolsa_integral_cotas, bolsa_integral_ampla,
                                       bolsa_parcial_cotas, bolsa_parcial_ampla), na.rm = TRUE)) %>%
  group_by(curso_busca, turno) %>%
  summarise(total_bolsas = sum(total_bolsas, na.rm = TRUE), .groups = "drop") %>%
  group_by(curso_busca) %>%
  mutate(percentual = total_bolsas / sum(total_bolsas) * 100) %>%
  ungroup() %>%
  rename(Curso = curso_busca, Turno = turno, Bolsas = total_bolsas, Percentual = percentual)

# Exibindo tabela
knitr::kable(q4_dados, caption = "Percentuais de Bolsas por Modalidade para Cursos Selecionados",
             format = ifelse(knitr::is_html_output(), "html", "latex"), digits = 2, align = "c")
Percentuais de Bolsas por Modalidade para Cursos Selecionados
Curso Turno Bolsas Percentual
Ciência da Computação Integral 20 1.26
Ciência da Computação Matutino 384 24.15
Ciência da Computação Noturno 1169 73.52
Ciência da Computação Vespertino 17 1.07
Engenharia de Computação Curso a Distância 132 11.87
Engenharia de Computação Integral 43 3.87
Engenharia de Computação Matutino 402 36.15
Engenharia de Computação Noturno 517 46.49
Engenharia de Computação Vespertino 18 1.62
Sistemas de Informação Curso a Distância 95 4.94
Sistemas de Informação Matutino 260 13.51
Sistemas de Informação Noturno 1514 78.65
Sistemas de Informação Vespertino 56 2.91
# Gráfico de barras empilhadas
ggplot(q4_dados, aes(x = Curso, y = Percentual, fill = Turno)) +
  geom_bar(stat = "identity") +
  theme_minimal() +
  labs(title = "Distribuição de Bolsas por Modalidade",
       x = "Curso", y = "Percentual de Bolsas (%)") +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

Resultados

A tabela e o gráfico de barras empilhadas mostram o percentual de bolsas por modalidade para os cursos selecionados. O gráfico destaca se uma modalidade (e.g., noturno) predomina.

Justificativa

  • Visualização: Barras empilhadas mostram a proporção de bolsas por modalidade, evidenciando dominância.
  • Interpretação: Modalidades predominantes podem refletir preferências dos estudantes ou ofertas institucionais. Parece haver uma maior quantidade de bolsas para o turno noturno em todos os cursos de computaçao, como o maior deles, sendo o curso noturno de Sistemas de informação.
sessionInfo()
## R version 4.5.0 (2025-04-11 ucrt)
## Platform: x86_64-w64-mingw32/x64
## Running under: Windows 11 x64 (build 26100)
## 
## Matrix products: default
##   LAPACK version 3.12.1
## 
## locale:
## [1] LC_COLLATE=English_United States.utf8 
## [2] LC_CTYPE=English_United States.utf8   
## [3] LC_MONETARY=English_United States.utf8
## [4] LC_NUMERIC=C                          
## [5] LC_TIME=English_United States.utf8    
## 
## time zone: America/Sao_Paulo
## tzcode source: internal
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
## [1] readr_2.1.5   tidyr_1.3.1   ggplot2_3.5.2 dplyr_1.1.4  
## 
## loaded via a namespace (and not attached):
##  [1] bit_4.6.0          gtable_0.3.6       jsonlite_2.0.0     crayon_1.5.3      
##  [5] compiler_4.5.0     tidyselect_1.2.1   parallel_4.5.0     jquerylib_0.1.4   
##  [9] scales_1.4.0       yaml_2.3.10        fastmap_1.2.0      R6_2.6.1          
## [13] labeling_0.4.3     generics_0.1.3     knitr_1.50         tibble_3.2.1      
## [17] bslib_0.9.0        pillar_1.10.2      RColorBrewer_1.1-3 tzdb_0.5.0        
## [21] rlang_1.1.6        cachem_1.1.0       xfun_0.52          sass_0.4.10       
## [25] bit64_4.6.0-1      cli_3.6.5          withr_3.0.2        magrittr_2.0.3    
## [29] digest_0.6.37      grid_4.5.0         vroom_1.6.5        rstudioapi_0.17.1 
## [33] hms_1.1.3          lifecycle_1.0.4    vctrs_0.6.5        evaluate_1.0.3    
## [37] glue_1.8.0         farver_2.1.2       rmarkdown_2.29     purrr_1.0.4       
## [41] tools_4.5.0        pkgconfig_2.0.3    htmltools_0.5.8.1