Análise de Mensalidades - Ciência da Computação

Resumo Estatístico por Região

# Calculando estatísticas por região
resumo_regioes <- dados_cc_regioes %>%
  group_by(region) %>%
  summarise(
    media = mean(mensalidade),
    mediana = median(mensalidade),
    desvio_padrao = sd(mensalidade),
    n = n()
  )

kable(resumo_regioes, digits = 2)
region media mediana desvio_padrao n
NE 712.73 742.8 243.96 31
SE 899.06 779.0 448.52 113

Visualização da Distribuição das Mensalidades

# Boxplot das mensalidades por região
ggplot(dados_cc_regioes, aes(x = region, y = mensalidade, fill = region)) +
  geom_boxplot() +
  theme_bw() +
  labs(
    title = "Distribuição das Mensalidades por Região",
    x = "Região",
    y = "Mensalidade (R$)",
    fill = "Região"
  ) +
  scale_fill_brewer(palette = "Set2")

Teste de Significância Estatística

# Realizando teste t para amostras independentes
teste_t <- t.test(
  mensalidade ~ region,
  data = dados_cc_regioes,
  var.equal = FALSE
)

# Exibindo resultados do teste
cat("Resultado do Teste t:\n")
## Resultado do Teste t:
print(teste_t)
## 
##  Welch Two Sample t-test
## 
## data:  mensalidade by region
## t = -3.0631, df = 90.575, p-value = 0.002884
## alternative hypothesis: true difference in means between group NE and group SE is not equal to 0
## 95 percent confidence interval:
##  -307.16124  -65.48913
## sample estimates:
## mean in group NE mean in group SE 
##         712.7342         899.0594

Análise e Conclusões

Diferenças nas mensalidades:

Médias: Nordeste (NE): R$ 712,73 Sudeste (SE): R$ 899,06

Diferença nas médias: R$ 186,33 (SE é 26,1% mais cara)

Medianas: Nordeste (NE): R$ 742,80 Sudeste (SE): R$ 779,00 Diferença nas medianas: R$ 36,20 (SE é 4,9% mais cara)

Significância Estatística: O teste t realizado mostra que a diferença é estatisticamente significativa: p-valor = 0,002884 (< 0,05) t = -3,0631 Intervalo de confiança de 95%: [-307,16 a -65,49] Como o p-valor é menor que 0,05 e o intervalo de confiança não inclui zero, podemos concluir que a diferença entre as regiões é estatisticamente significativa.

Causas prováveis das diferenças: Existem vários fatores que podem explicar essa diferença:

  1. Fatores Econômicos: Maior custo de vida no Sudeste Maior concentração de renda na região Maior desenvolvimento econômico regional

  2. Fatores Educacionais: Maior concentração de universidades privadas tradicionais no Sudeste Maiores investimentos em infraestrutura e tecnologia Custos operacionais mais elevados (salários de professores, instalações, etc.)

  3. Fatores de Mercado: Maior demanda por profissionais de TI no Sudeste Maior concentração de empresas de tecnologia Expectativa de salários mais altos após a formação

O boxplot mostra que: O Sudeste apresenta maior variabilidade nas mensalidades (maior dispersão). Existem mais outliers (pontos extremos) no Sudeste. A distribuição é assimétrica em ambas as regiões. É interessante notar que a diferença nas medianas (R$ 36,20) é menor que a diferença nas médias (R$ 186,33), o que sugere que os valores extremos (outliers) no Sudeste puxam a média para cima, mas não afetam tanto a mediana. Em conclusão, existe uma diferença estatisticamente significativa entre as mensalidades das duas regiões, sendo o Sudeste mais caro. Esta diferença é mais pronunciada quando olhamos para as médias do que para as medianas, sugerindo que algumas instituições do Sudeste cobram valores consideravelmente mais altos que a tendência central, possivelmente devido à sua reputação ou infraestrutura diferenciada.

Análise de Mensalidades e Bolsas por Curso

Top 10 Cursos com Maior Valor de Mensalidade

# Calculando o valor total de mensalidade e total de bolsas por curso
top_cursos <- dff %>%
  group_by(curso_busca) %>%
  summarise(
    valor_total_mensalidade = sum(mensalidade),
    total_instituicoes = n(),
    total_bolsas = sum(bolsa_integral_ampla + bolsa_integral_cotas + 
                      bolsa_parcial_ampla + bolsa_parcial_cotas),
    media_mensalidade = mean(mensalidade)
  ) %>%
  arrange(desc(valor_total_mensalidade)) %>%
  head(10)

kable(top_cursos, digits = 2)
curso_busca valor_total_mensalidade total_instituicoes total_bolsas media_mensalidade
Administração 1495415.1 2754 NA 543.00
Direito 1234375.6 1093 NA 1129.35
Engenharia Civil 1028389.5 906 NA 1135.09
Ciências Contábeis 1014847.3 2056 NA 493.60
Educação Física 963784.2 1528 NA 630.75
Pedagogia 945726.5 2555 NA 370.15
Enfermagem 904351.9 903 NA 1001.50
Medicina 888874.3 124 NA 7168.34
Psicologia 732045.4 647 NA 1131.45
Engenharia de Produção 727005.5 803 NA 905.36

Relação entre Mensalidade e Total de Bolsas

# Preparando os dados para o gráfico
dados_bolsas <- dff %>%
  group_by(curso_busca) %>%
  summarise(
    mensalidade_media = mean(mensalidade),
    total_bolsas = sum(bolsa_integral_ampla + bolsa_integral_cotas + 
                      bolsa_parcial_ampla + bolsa_parcial_cotas)
  )

# Gráfico de dispersão
ggplot(dados_bolsas, aes(x = mensalidade_media, y = total_bolsas)) +
  geom_point(alpha = 0.5) +
  geom_smooth(method = "lm", se = TRUE) +
  theme_bw() +
  labs(
    title = "Relação entre Mensalidade Média e Total de Bolsas por Curso",
    x = "Mensalidade Média (R$)",
    y = "Total de Bolsas (Todos os Tipos)"
  )
## `geom_smooth()` using formula = 'y ~ x'
## Warning: Removed 287 rows containing non-finite outside the scale range
## (`stat_smooth()`).
## Warning: Removed 287 rows containing missing values or values outside the scale range
## (`geom_point()`).

# Correlação
correlacao <- cor(dados_bolsas$mensalidade_media, dados_bolsas$total_bolsas)
cat("\nCoeficiente de Correlação:", round(correlacao, 3))
## 
## Coeficiente de Correlação: NA

Análise e Conclusões sobre Mensalidades e Bolsas

Top 10 cursos com maior valor total de mensalidade:

1 - Administração: R$ 1.495.415,10 (2.754 bolsas) 2 - Direito: R$ 1.234.375,60 (1.093 bolsas) 3 - Engenharia Civil: R$ 1.028.389,50 (906 bolsas) 4 - Ciências Contábeis: R$ 1.014.847,30 (2.056 bolsas) 5 - Educação Física: R$ 963.784,20 (1.528 bolsas) 6 - Pedagogia: R$ 945.726,50 (2.555 bolsas) 7 - Enfermagem: R$ 904.351,90 (903 bolsas) 8 - Medicina: R$ 888.874,30 (124 bolsas) 9 - Psicologia: R$ 732.045,40 (647 bolsas) 10 - Engenharia de Produção: R$ 727.005,50 (803 bolsas)

Relação entre valor total de mensalidade e total de bolsas:

Correlação Negativa Fraca: O gráfico mostra uma tendência levemente negativa (linha azul descendente) Isso indica que, em geral, cursos com mensalidades mais altas tendem a ter menos bolsas

Padrões Interessantes: Cursos como Administração, Pedagogia e Ciências Contábeis apresentam alto número de bolsas (>2.000) com mensalidades médias relativamente baixas (R$ 543,00, R$ 370,15 e R$ 493,60 respectivamente) Medicina tem a maior média de mensalidade (R$ 7.168,34) mas um número baixo de bolsas (124) A maioria dos cursos se concentra na região inferior do gráfico, com menos de 1.000 bolsas

Justificativa da Relação: A relação inversa entre mensalidade e número de bolsas pode ser explicada por: Política do ProUni de democratizar o acesso ao ensino superior; Maior disponibilidade de bolsas em cursos mais acessíveis financeiramente; Limitações orçamentárias do programa para cursos mais caros; Estratégias das instituições de ensino em distribuir mais bolsas em cursos de menor custo operacional;

Observações Adicionais: Cursos tradicionais (Administração, Direito) lideram em valor total devido ao alto volume de bolsas Cursos da área de saúde (Medicina, Enfermagem) aparecem com altas mensalidades médias Cursos de licenciatura (Pedagogia, Educação Física) têm mensalidades médias mais baixas mas alto número de bolsas

Portanto, é possível observar que existe uma relação inversa entre o valor da mensalidade e o total de bolsas, mas essa relação não é forte ou determinística. O valor total de mensalidade parece ser mais influenciado pelo volume de bolsas do que pelo valor individual da mensalidade, como evidenciado pelos casos de Administração e Pedagogia, que lideram o ranking principalmente devido ao alto número de bolsas oferecidas.

Análise dos Cursos Tecnológicos na Paraíba

# Primeiro, vamos ver os dados brutos dos cursos tecnológicos da PB
dados_brutos_pb <- dff %>%
  filter(
    uf_busca == "PB",
    grau == "Tecnológico"
  ) %>%
  select(curso_busca, grau, bolsa_integral_ampla, bolsa_integral_cotas, 
         bolsa_parcial_ampla, bolsa_parcial_cotas)

# Mostrando os dados brutos
print("Dados brutos dos cursos tecnológicos da PB:")
## [1] "Dados brutos dos cursos tecnológicos da PB:"
print(dados_brutos_pb)
## # A tibble: 167 × 6
##    curso_busca                grau     bolsa_integral_ampla bolsa_integral_cotas
##    <chr>                      <chr>                   <dbl>                <dbl>
##  1 Marketing                  Tecnoló…                    2                    3
##  2 Gestão de Recursos Humanos Tecnoló…                    2                    3
##  3 Gestão Financeira          Tecnoló…                    2                    3
##  4 Jogos Digitais             Tecnoló…                    1                    2
##  5 Gastronomia                Tecnoló…                    1                    1
##  6 Gastronomia                Tecnoló…                    2                    3
##  7 Gastronomia                Tecnoló…                    2                    2
##  8 Gastronomia                Tecnoló…                    2                    2
##  9 Gastronomia                Tecnoló…                    1                    1
## 10 Radiologia                 Tecnoló…                   13                    4
## # ℹ 157 more rows
## # ℹ 2 more variables: bolsa_parcial_ampla <dbl>, bolsa_parcial_cotas <dbl>
# Agora vamos fazer a agregação correta
cursos_pb_tec <- dados_brutos_pb %>%
  group_by(curso_busca) %>%
  summarise(
    total_bolsas = sum(bolsa_integral_ampla, na.rm = TRUE) + 
                  sum(bolsa_integral_cotas, na.rm = TRUE) + 
                  sum(bolsa_parcial_ampla, na.rm = TRUE) + 
                  sum(bolsa_parcial_cotas, na.rm = TRUE),
    bolsas_integrais_ampla = sum(bolsa_integral_ampla, na.rm = TRUE),
    bolsas_integrais_cotas = sum(bolsa_integral_cotas, na.rm = TRUE),
    bolsas_parciais_ampla = sum(bolsa_parcial_ampla, na.rm = TRUE),
    bolsas_parciais_cotas = sum(bolsa_parcial_cotas, na.rm = TRUE)
  ) %>%
  arrange(desc(total_bolsas))

# Mostrando os resultados em uma tabela formatada
kable(cursos_pb_tec, 
      col.names = c("Curso", "Total de Bolsas", "Integrais Ampla", 
                   "Integrais Cotas", "Parciais Ampla", "Parciais Cotas"),
      digits = 0)
Curso Total de Bolsas Integrais Ampla Integrais Cotas Parciais Ampla Parciais Cotas
Gestão de Recursos Humanos 124 20 31 70 3
Segurança no Trabalho 110 7 11 91 1
Redes de Computadores 106 10 16 80 0
Gestão da Tecnologia da Informação 99 6 12 80 1
Negócios Imobiliários 95 4 6 85 0
Logística 80 3 9 67 1
Design de Interiores 53 10 13 30 0
Radiologia 53 30 12 10 1
Gestão Comercial 27 5 14 3 5
Marketing 27 8 15 0 4
Gastronomia 24 10 13 0 1
Gestão Financeira 22 6 14 0 2
Análise e Desenvolvimento de Sistemas 19 5 12 0 2
Estética e Cosmética 19 6 7 6 0
Gestão Pública 14 3 9 0 2
Construção de Edifícios 9 1 3 2 3
Sistemas para Internet 9 3 6 0 0
Design Gráfico 6 2 4 0 0
Gestão Ambiental 6 1 4 0 1
Design de Moda 5 1 4 0 0
Gestão Hospitalar 4 1 2 0 1
Processos Gerenciais 4 0 1 1 2
Produção Publicitária 4 2 2 0 0
Secretariado 4 0 1 0 3
Eventos 3 1 2 0 0
Gestão da Produção Industrial 3 0 1 1 1
Jogos Digitais 3 1 2 0 0
Comércio Exterior 2 0 0 0 2
Embelezamento e Imagem Pessoal 2 1 1 0 0
Gestão de Empreendimentos Esportivos 2 1 1 0 0
Banco de Dados 1 0 0 0 1
Gestão da Qualidade 1 0 0 0 1
Gestão de Serviços Jurídicos e Notariais 1 0 1 0 0
Gestão do Agronegócio 1 0 0 0 1
# Visualização dos cursos por total de bolsas
ggplot(cursos_pb_tec, 
       aes(x = reorder(curso_busca, total_bolsas), y = total_bolsas)) +
  geom_col(fill = "steelblue") +
  coord_flip() +
  theme_bw() +
  labs(
    title = "Cursos Tecnológicos na Paraíba por Total de Bolsas",
    x = "Curso",
    y = "Total de Bolsas"
  )

# Visualização da distribuição dos tipos de bolsas
dados_tipos_bolsas <- cursos_pb_tec %>%
  pivot_longer(
    cols = c(bolsas_integrais_ampla, bolsas_integrais_cotas,
             bolsas_parciais_ampla, bolsas_parciais_cotas),
    names_to = "tipo_bolsa",
    values_to = "quantidade"
  )

ggplot(dados_tipos_bolsas, 
       aes(x = reorder(curso_busca, quantidade), 
           y = quantidade, 
           fill = tipo_bolsa)) +
  geom_col(position = "stack") +
  coord_flip() +
  theme_bw() +
  labs(
    title = "Distribuição dos Tipos de Bolsas nos Cursos Tecnológicos - PB",
    x = "Curso",
    y = "Quantidade de Bolsas",
    fill = "Tipo de Bolsa"
  ) +
  scale_fill_brewer(palette = "Set2",
                    labels = c("Integral Ampla", "Integral Cotas",
                             "Parcial Ampla", "Parcial Cotas"))

Análise dos Resultados - Cursos Tecnológicos na Paraíba

A análise dos cursos tecnológicos na Paraíba revela:

Distribuição Total de Bolsas:

Os três cursos com maior oferta de bolsas são: 1 - Gestão de Recursos Humanos (124 bolsas) 2 - Segurança no Trabalho (110 bolsas) 3 - Redes de Computadores (106 bolsas)

Existe uma grande variação no total de bolsas, desde 124 até apenas 1 bolsa A maioria dos cursos (20 dos 34) oferece menos de 20 bolsas no total

Análise das Modalidades dos Cursos de Computação

# Filtrando os cursos de computação
cursos_comp <- dff %>%
  filter(curso_busca %in% c(
    "Ciência da Computação",
    "Engenharia da Computação",
    "Engenharia de Computação",
    "Ciências da Computação",
    "Sistemas de Informação"
  ))

# Calculando percentuais por modalidade para cada curso
modalidades_comp <- cursos_comp %>%
  group_by(curso_busca, turno) %>%
  summarise(
    total_bolsas = sum(bolsa_integral_ampla + bolsa_integral_cotas + 
                      bolsa_parcial_ampla + bolsa_parcial_cotas, na.rm = TRUE)
  ) %>%
  group_by(curso_busca) %>%
  mutate(
    percentual = (total_bolsas / sum(total_bolsas)) * 100
  ) %>%
  arrange(curso_busca, desc(percentual))
## `summarise()` has grouped output by 'curso_busca'. You can override using the
## `.groups` argument.
# Mostrando resultados em tabela
kable(modalidades_comp, 
      col.names = c("Curso", "Modalidade", "Total de Bolsas", "Percentual (%)"),
      digits = 2)
Curso Modalidade Total de Bolsas Percentual (%)
Ciência da Computação Noturno 191 74.03
Ciência da Computação Matutino 67 25.97
Ciência da Computação Integral 0 0.00
Ciência da Computação Vespertino 0 0.00
Ciências da Computação Noturno 11 55.00
Ciências da Computação Matutino 9 45.00
Engenharia da Computação Integral 0 NaN
Engenharia da Computação Matutino 0 NaN
Engenharia da Computação Noturno 0 NaN
Engenharia de Computação Noturno 85 55.56
Engenharia de Computação Matutino 54 35.29
Engenharia de Computação Curso a Distância 14 9.15
Engenharia de Computação Integral 0 0.00
Engenharia de Computação Vespertino 0 0.00
Sistemas de Informação Noturno 318 67.95
Sistemas de Informação Matutino 90 19.23
Sistemas de Informação Vespertino 56 11.97
Sistemas de Informação Curso a Distância 4 0.85
# Visualização em gráfico de barras empilhadas
ggplot(modalidades_comp, 
       aes(x = curso_busca, y = percentual, fill = turno)) +
  geom_bar(stat = "identity", position = "stack") +
  coord_flip() +
  theme_bw() +
  labs(
    title = "Distribuição de Bolsas por Modalidade nos Cursos de Computação",
    x = "Curso",
    y = "Percentual de Bolsas (%)",
    fill = "Modalidade"
  ) +
  scale_fill_brewer(palette = "Set3")
## Warning: Removed 3 rows containing missing values or values outside the scale range
## (`geom_bar()`).

# Calculando totais gerais para comparação
totais_modalidade <- cursos_comp %>%
  group_by(turno) %>%
  summarise(
    total_bolsas = sum(bolsa_integral_ampla + bolsa_integral_cotas + 
                      bolsa_parcial_ampla + bolsa_parcial_cotas, na.rm = TRUE)
  ) %>%
  mutate(
    percentual = (total_bolsas / sum(total_bolsas)) * 100
  ) %>%
  arrange(desc(percentual))

# Mostrando totais gerais
cat("\nPercentual total por modalidade (todos os cursos de computação):\n")
## 
## Percentual total por modalidade (todos os cursos de computação):
kable(totais_modalidade, 
      col.names = c("Modalidade", "Total de Bolsas", "Percentual (%)"),
      digits = 2)
Modalidade Total de Bolsas Percentual (%)
Noturno 605 67.30
Matutino 220 24.47
Vespertino 56 6.23
Curso a Distância 18 2.00
Integral 0 0.00

Análise das Modalidades dos Cursos de Computação

No contexto dos dados analisados, é importante destacar que há diferenças de nomenclatura entre os cursos de “Ciência da Computação”, “Ciências da Computação”, “Engenharia da Computação” e “Engenharia de Computação”. Essas variações refletem tanto particularidades institucionais quanto registros distintos no sistema de oferta de bolsas. No gráfico apresentado, cada uma dessas denominações aparece de forma separada, o que pode gerar pequenas diferenças na distribuição das bolsas por modalidade. Portanto, ao interpretar os resultados, é fundamental considerar que, embora os nomes sejam semelhantes e muitas vezes se refiram a formações equivalentes, eles foram tratados individualmente na análise para garantir a fidelidade aos dados originais.

Dito isto, é possível afirmar que existe uma modalidade predominante. Observando os percentuais, fica claro que: A modalidade Noturno é predominante nos cursos de Ciência da Computação, Engenharia da Computação e Sistemas de Informação, representando a maior parte das bolsas ofertadas (no seu exemplo, 67,3% das bolsas são para o turno Noturno). As demais modalidades (Matutino, Vespertino, Curso a Distância e Integral) têm percentuais bem menores, sendo que em alguns casos (como Integral), o percentual é zero, o que pode ser justificado por uma questão de modalidades dos cursos de faculdade particulares.