Questões

Q1 - Qual a diferença entre as mensalidades médias e medianas dos cursos de Ciência da Computação das regiões Nordeste e Sudeste? Na sua opinião, essa diferença o que causa essa diferença? Ela é estatisticamente significativa? Justifique.

Q2 - 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.

Q3 - Quais são os cursos tecnológicos do estado da Paraíba que oferecem mais bolsas de estudo e quantas bolsas de cada tipo estes cursos oferecem?

Q4 - 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?

Dados

#Carregando o conjunto de dados
dff <- read_csv("/cloud/project/data/cursos-prouni.csv")
## Rows: 41447 Columns: 20
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr  (9): grau, turno, curso_busca, cidade_busca, uf_busca, cidade_filtro, u...
## dbl (11): mensalidade, bolsa_integral_cotas, bolsa_integral_ampla, bolsa_par...
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
#Formato dos dados
head(dff)
# Verifica se há valores ausentes (NA) na coluna de mensalidade
sum(is.na(dff$mensalidade))
## [1] 0

Questão 1

Qual a diferença entre as mensalidades médias e medianas dos cursos de Ciência da Computação das regiões Nordeste e Sudeste? Na sua opinião, essa diferença o que causa essa diferença? Ela é estatisticamente significativa? Justifique.

Primeiro vamos calcular as mensalidades médias e medianas:

Vamos começar calculando as mensalidades médias e medianas dos cursos de Ciência da Computação das regiões Nordeste e Sudeste.

# Define vetor com os estados para cada região
estados_ne <- c("AL", "BA", "CE", "MA", "PB", "PE", "PI", "RN", "SE")
estados_se <- c("SP", "RJ", "ES", "MG")

# Filtra os cursos de Ciência da Computação na região Nordeste
df_cc_ne <- dff %>%
  filter(curso_busca == "Ciência da Computação" & (uf_busca %in% estados_ne))

# Filtra os cursos de Ciência da Computação na região Sudeste
df_cc_se <- dff %>%
  filter(curso_busca == "Ciência da Computação" & (uf_busca %in% estados_se))

# Calcula as médias e medianas das mensalidades
media_ne <- mean(df_cc_ne$mensalidade, na.rm = TRUE)
mediana_ne <- median(df_cc_ne$mensalidade, na.rm = TRUE)

media_se <- mean(df_cc_se$mensalidade, na.rm = TRUE)
mediana_se <- median(df_cc_se$mensalidade, na.rm = TRUE)

# Exibe os resultados
media_ne
## [1] 712.7342
mediana_ne
## [1] 742.8
media_se
## [1] 899.0594
mediana_se
## [1] 779
# Definir os dados
dados <- data.frame(
  regiao = c("Nordeste", "Sudeste"),
  media = c(media_ne, media_se),
  mediana = c(mediana_ne, mediana_se)
)

# Transformar os dados para o formato longo
dados_long <- tidyr::pivot_longer(dados, cols = c("media", "mediana"), names_to = "tipo", values_to = "valor")

# Plotar o gráfico
ggplot(dados_long, aes(x = regiao, y = valor, fill = tipo)) +
  geom_bar(stat = "identity", position = "dodge") +
  labs(title = "Média e Mediana das Mensalidades por Região",
       y = "Valor",
       fill = "Tipo") +
  theme_minimal()

# Calcula a diferença entre as médias e as medianas das mensalidades
diferenca_media <- media_se - media_ne
diferenca_mediana <- mediana_se - mediana_ne

# Exibe as diferenças
diferenca_media
## [1] 186.3252
diferenca_mediana
## [1] 36.2

Com base nos resultados obtidos, a diferença entre as mensalidades médias e medianas dos cursos de Ciência da Computação nas regiões Nordeste e Sudeste é de aproximadamente R$ 186,33 para a média e R$ 36,20 para a mediana.

Essa diferença pode ser atribuída a diversos fatores. Por exemplo, a região Sudeste, possui uma economia mais desenvolvida e um custo de vida geralmente mais alto do que a região Nordeste. Isso pode influenciar no valor das mensalidades, que tendem a ser mais elevadas em regiões com maior poder aquisitivo médio da população.

Além disso, a oferta e demanda por cursos de Ciência da Computação também podem impactar os valores das mensalidades. Se houver uma maior demanda por esses cursos na região Sudeste, as instituições de ensino podem cobrar valores mais altos. Por outro lado, na região Nordeste, onde pode haver menos demanda ou uma oferta maior de cursos, as mensalidades podem ser mais baixas.

Para determinar se essa diferença é estatisticamente significativa, seria necessário realizar um teste de hipótese. O teste de hipótese pode confirmar se a diferença nas mensalidades médias entre as regiões é estatisticamente significativa, ou se pode ter ocorrido devido ao acaso.

Para realizar o teste de hipótese e determinar se a diferença nas mensalidades médias entre as regiões Nordeste e Sudeste é estatisticamente significativa, vamos usar o teste t de Student. O teste de hipótese será formulado da seguinte maneira:

Hipótese nula (H0): A diferença entre as médias das mensalidades das regiões Nordeste e Sudeste é igual a zero, ou seja, não há diferença significativa entre as médias das mensalidades.

Hipótese alternativa (H1): A diferença entre as médias das mensalidades das regiões Nordeste e Sudeste é diferente de zero, indicando uma diferença significativa entre as médias.

Vamos realizar o teste de hipótese com um nível de significância de 5% (α = 0,05). Se o valor-p (p-value) for menor que 0,05, rejeitaremos a hipótese nula e concluiremos que há uma diferença significativa entre as médias das mensalidades das duas regiões.

# Teste de hipótese (teste t de Student)
teste_t <- t.test(df_cc_se$mensalidade, df_cc_ne$mensalidade)

# Exibe o resultado do teste
teste_t
## 
##  Welch Two Sample t-test
## 
## data:  df_cc_se$mensalidade and df_cc_ne$mensalidade
## t = 3.0631, df = 90.575, p-value = 0.002884
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##   65.48913 307.16124
## sample estimates:
## mean of x mean of y 
##  899.0594  712.7342

O resultado do teste de hipótese (teste t de Student) indica que há uma diferença estatisticamente significativa entre as mensalidades médias dos cursos de Ciência da Computação nas regiões Nordeste e Sudeste. O valor-p (p-value) é 0.002884, o que significa que a diferença nas médias não ocorreu por acaso.

A média das mensalidades na região Sudeste (R$ 899.06) é significativamente maior do que a média na região Nordeste (R$ 712.73), com um intervalo de confiança de 95% para a diferença nas médias entre R$ 65.49 e R$ 307.16. Esses resultados sugerem que há fatores que contribuem para a diferença nas mensalidades entre essas regiões, mas é necessário um estudo mais aprofundado para identificar esses fatores.

Questão 2

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.

Para responder à segunda questão, primeiro precisamos calcular o valor total de mensalidade e o total de bolsas para cada curso. Em seguida, identificaremos os top 10 cursos com maior valor de mensalidade pelo total de bolsas e analisaremos se há uma relação entre esses valores.

# Agrupa os dados por curso e calcular o valor total de mensalidade e o total de bolsas
df_agrupado <- dff %>%
  group_by(curso_busca) %>%
  summarise(
    total_mensalidade = sum(mensalidade, na.rm = TRUE),
    total_bolsas = sum(bolsa_integral_cotas, na.rm = TRUE) + sum(bolsa_integral_ampla, na.rm = TRUE) + sum(bolsa_parcial_cotas, na.rm = TRUE) + sum(bolsa_parcial_ampla, na.rm = TRUE)
  )

# Identifica os top 10 cursos com maior valor de mensalidade pelo total de bolsas
top_10_cursos <- df_agrupado %>%
  arrange(desc(total_mensalidade/total_bolsas)) %>%
  head(10)

# Exibir os resultados
top_10_cursos

Ao calcular o valor total de mensalidade e o total de bolsas para cada curso e ordenar pela relação entre esses valores, obtemos os top 10 cursos com maior valor de mensalidade pelo total de bolsas.

Para analisar se há uma relação entre o valor total de mensalidade e o total de bolsas por curso, podemos calcular a correlação entre esses dois valores.

# Calcular a correlação entre o valor total de mensalidade e o total de bolsas por curso
correlacao <- cor(df_agrupado$total_mensalidade, df_agrupado$total_bolsas, use = "complete.obs")

# Exibir a correlação
correlacao
## [1] 0.9251574

A correlação entre o valor total de mensalidade e o total de bolsas por curso é um número entre -1 e 1. Um valor próximo de 1 indica uma correlação positiva forte, ou seja, à medida que o valor total de mensalidade aumenta, o total de bolsas também tende a aumentar. Um valor próximo de -1 indica uma correlação negativa forte, o que significa que à medida que o valor total de mensalidade aumenta, o total de bolsas tende a diminuir. Um valor próximo de 0 indica ausência de correlação.

A correlação de 0.9251574 indica uma forte correlação positiva entre o valor total de mensalidade e o total de bolsas por curso. Isso significa que, em geral, cursos com mensalidades mais altas tendem a oferecer um maior número de bolsas.

# Dados dos top 10 cursos
cursos <- top_10_cursos$curso_busca
valor_total_mensalidade <- top_10_cursos$total_mensalidade
total_bolsas <- top_10_cursos$total_bolsas

# Criar um data frame com os dados
dados_top_10 <- data.frame(cursos, valor_total_mensalidade, total_bolsas)

# Gráfico de barras
ggplot(dados_top_10, aes(x = cursos, y = valor_total_mensalidade/total_bolsas, fill = cursos)) +
  geom_bar(stat = "identity") +
  labs(title = "Top 10 Cursos com Maior Valor de Mensalidade por Total de Bolsas",
       x = "Cursos",
       y = "Valor Total de Mensalidade por Bolsa") +
       theme(axis.text.x = element_text(angle = 70, hjust = 1),
       legend.position = "none", 
       plot.title = element_text(hjust = 1)) + 
  coord_flip()

Questão 3

Quais são os cursos tecnológicos do estado da Paraíba que oferecem mais bolsas de estudo e quantas bolsas de cada tipo estes cursos oferecem?

Para responder a essa pergunta, vamos:

  1. Filtrar os cursos tecnológicos do estado da Paraíba.

  2. Agrupar os dados por curso e tipo de bolsa para contar o número de bolsas de cada tipo.

  3. Ordenar os cursos pelo total de bolsas oferecidas.

# Define os cursos tecnológicos
cursos_tecn <- c("Sistemas de Informação", "Jogos Digitais", "Ciência da Computação", "Ciências da Computação", 
                     "Engenharia de Computação", "Análise e   Desenvolvimento de Sistemas", 
                     "Sistemas para Internet", "Redes de Computadores", "Gestão da Tecnologia da Informação", 
                     "Banco de Dados")

# Filtra os cursos tecnológicos do estado da Paraíba
df_cursos_paraiba <- dff %>%
  filter(curso_busca %in% cursos_tecn & uf_busca == "PB")

# Agrupa e resume os dados para obter o total de bolsas por curso
df_bolsas_por_curso <- df_cursos_paraiba %>%
  group_by(curso_busca) %>%
  summarise(
    total_bolsas_integral_cotas = sum(bolsa_integral_cotas, na.rm = TRUE),
    total_bolsas_integral_ampla = sum(bolsa_integral_ampla, na.rm = TRUE),
    total_bolsas_parcial_cotas = sum(bolsa_parcial_cotas, na.rm = TRUE),
    total_bolsas_parcial_ampla = sum(bolsa_parcial_ampla, na.rm = TRUE)
  )

# Ordena os cursos pelo total de bolsas de estudo
df_bolsas_por_curso <- df_bolsas_por_curso %>%
  arrange(desc(total_bolsas_integral_cotas + total_bolsas_integral_ampla + total_bolsas_parcial_cotas + total_bolsas_parcial_ampla))

# Exibir os cursos com o total de bolsas de cada tipo
df_bolsas_por_curso

Com base nos resutados, os cursos tecnológicos do estado da Paraíba que oferecem mais bolsas de estudo são:

Redes de Computadores: Oferece 16 bolsas integrais por cotas e 10 bolsas integrais amplas.

Gestão da Tecnologia da Informação: Oferece 12 bolsas integrais por cotas e 6 bolsas integrais amplas.

# Agrupa e resume os dados para obter o total de bolsas por curso
df_bolsas_por_curso <- df_cursos_paraiba %>%
  group_by(curso_busca) %>%
  summarise(
    total_bolsas_integral_cotas = sum(bolsa_integral_cotas, na.rm = TRUE),
    total_bolsas_integral_ampla = sum(bolsa_integral_ampla, na.rm = TRUE),
    total_bolsas_parcial_cotas = sum(bolsa_parcial_cotas, na.rm = TRUE),
    total_bolsas_parcial_ampla = sum(bolsa_parcial_ampla, na.rm = TRUE)
  )

# Reshape dos dados para o formato longo
df_bolsas_long <- tidyr::pivot_longer(df_bolsas_por_curso, cols = -curso_busca, names_to = "tipo_bolsa", values_to = "quantidade")

# Gráfico de barras
ggplot(df_bolsas_long, aes(x = curso_busca, y = quantidade, fill = tipo_bolsa)) +
  geom_bar(stat = "identity", position = "dodge") +
  labs(title = "Bolsas de Estudo Oferecidas por Curso Tecnológico na Paraíba",
       x = "Curso Tecnológico",
       y = "Quantidade de Bolsas",
       fill = "Tipo de Bolsa") +
  theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
  scale_fill_manual(values = c("blue", "red", "green", "orange"))

Questão 4

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?

Para calcular o percentual de bolsas ofertadas para cada modalidade por cada um dos cursos (Ciência da Computação, Engenharia da Computação e Sistemas de Informação) e identificar se existe uma modalidade predominante, vamos:

  1. Filtrar os dados para incluir apenas os cursos desejados (Ciência da Computação, Engenharia da Computação e Sistemas de Informação).

  2. Agrupar os dados por curso e modalidade, somando a quantidade de bolsas ofertadas para cada modalidade.

  3. Calcular o total de bolsas por curso.

  4. Calcular o percentual de bolsas para cada tipo em relação ao total por curso.

  5. Analisar os resultados para identificar a modalidade predominante.

# Filtra os cursos de interesse
cursos_interesse <- c("Ciência da Computação", "Engenharia da Computação", "Sistemas de Informação")
df_cursos_interesse <- dff %>% filter(curso_busca %in% cursos_interesse)

# Agrupa os dados por curso e turno, e calcula o total de bolsas por curso e turno
df_resumo_total <- df_cursos_interesse %>%
  group_by(curso_busca, turno) %>%
  summarise(
    total_bolsas_integral_cotas = sum(bolsa_integral_cotas, na.rm = TRUE),
    total_bolsas_integral_ampla = sum(bolsa_integral_ampla, na.rm = TRUE),
    total_bolsas_parcial_cotas = sum(bolsa_parcial_cotas, na.rm = TRUE),
    total_bolsas_parcial_ampla = sum(bolsa_parcial_ampla, na.rm = TRUE),
    total_bolsas = sum(total_bolsas_integral_cotas, total_bolsas_integral_ampla, total_bolsas_parcial_cotas, total_bolsas_parcial_ampla, na.rm = TRUE),
    .groups = 'drop'
  )

# Agrupa os dados por curso e turno, e calcula o total de bolsas por curso e turno
df_resumo_total <- df_cursos_interesse %>%
  group_by(curso_busca, turno) %>%
  summarise(
    total_bolsas = sum(bolsa_integral_cotas, bolsa_integral_ampla, bolsa_parcial_cotas, bolsa_parcial_ampla, na.rm = TRUE),
    .groups = 'drop'
  )

# Calcula o total de bolsas por curso
df_total_por_curso <- df_resumo_total %>%
  group_by(curso_busca) %>%
  summarise(total_bolsas_curso = sum(total_bolsas))

# Junta o total de bolsas por curso ao dataframe original
df_resumo_total <- df_resumo_total %>%
  left_join(df_total_por_curso, by = "curso_busca") %>%
  mutate(percentual = (total_bolsas / total_bolsas_curso) * 100) %>%
  select(-total_bolsas_curso)

# Exibe o resultado
df_resumo_total

Com base resultados, podemos ver que o percentual de bolsas ofertadas para cada modalidade (integral, matutino, noturno, etc.) varia entre os cursos:

Ciência da Computação

  • Integral: 1.26%

  • Matutino: 24.15%

  • Noturno: 73.52%

  • Vespertino: 1.07%

Engenharia da Computação

  • Integral: 18.18%

  • Matutino: 15.70%

  • Noturno: 66.12%

Sistemas de Informação

  • Curso a Distância: 4.94%

  • Matutino: 13.51%

  • Noturno: 78.65%

  • Vespertino: 2.91%

No geral, o turno noturno parece ser predominante em Ciência da Computação e Sistemas de Informação, enquanto na Engenharia da Computação, o turno noturno também é significativo, mas o integral também tem uma parcela considerável. O curso a distância em Sistemas de Informação também representa uma parte significativa das bolsas oferecidas.

# Cria o gráfico de barras
ggplot(df_resumo_total, aes(x = curso_busca, y = percentual, fill = turno)) +
  geom_bar(stat = "identity", position = "dodge") +
  labs(title = "Percentual de Bolsas por Modalidade e Curso",
       x = "Curso",
       y = "Percentual (%)",
       fill = "Turno") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))