Com base no arquivo de dados (no diretório data) responda as questões abaixo, gerando um relatório final com as respostas. Cada resposta deve gerar tabelas e/ou gráficos para apresentar os resultados obtidos, além de uma justificativa para a escolha de métricas, estatísticas e visualizações. Vocês podem se basear no arquivo R Markdown gerado em sala (no diretório reports). O relatório final deve ser adicionado ao repositório do seu lab (por exemplo, um arquivo PDF).

OBSERVAÇÕES: Antes de responder às questões, vamos carregar as bibliotecas que serão utilizadas e o data_set referente aos cursos contemplados pelo prouni e aos estados Brasileiros.

library(readr)
library(tidyr)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(plotly)
## Carregando pacotes exigidos: ggplot2
## 
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
## 
##     last_plot
## The following object is masked from 'package:stats':
## 
##     filter
## The following object is masked from 'package:graphics':
## 
##     layout
data_set_prouni <- read_csv("C:/Users/Iried/Desktop/Workspace/UFCG/AULAS/FPCC2/fpcc2-lab-1-IriedsonSouto/FPCC2 - LAB 1/cursos-prouni.csv", show_col_types = FALSE)

data_set_estados <- read_csv("C:/Users/Iried/Desktop/Workspace/UFCG/AULAS/FPCC2/fpcc2-lab-1-IriedsonSouto/FPCC2 - LAB 1/estados.csv", show_col_types = FALSE)

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.

Inicialmente, filtramos os dados dos valores das mensalidades dos cursos de Ciência da Computação, atribuindo a cada curso uma região do Brasil:

data_curso_valor_regiao <- data_set_prouni %>%
        filter(grepl("Ciência da Computação", curso_busca, ignore.case = TRUE)) %>%
        select(curso_busca, mensalidade, uf_busca) %>%
        inner_join(data_set_estados, by = c("uf_busca" = "subdivision")) %>%
        select(curso_busca, mensalidade, uf_busca, region)

Em seguida, calculamos a média e a mediana para as regiões desejadas e representamos graficamente para uma análise facilitada:

data_regiao_media_mediana <- data_curso_valor_regiao %>% 
        filter(region == "NE" | region == "SE") %>% 
        group_by(region) %>% 
        summarize(media = mean(mensalidade), mediana = median(mensalidade))

plot_regiao_media_mediana <- plot_ly(data_regiao_media_mediana, x = ~region, y = ~media,
        type = 'bar', name = 'Média') %>%
        add_trace(y = ~mediana, name = 'Mediana') %>%
        layout(title = "Média e Mediana da Mensalidade por Região",
                xaxis = list(title = "Região"),
                yaxis = list(title = "Valor"),
                barmode = 'group',
                margin = list(l = 20, r = 20, t = 30, b = 20, pad = 4))

plot_regiao_media_mediana

Observando a discrepância entre as médias e medianas de ambas as regiões, podemos extrair alguns insights estatisticamente pouco relevantes, considerando que os dados se referem a apenas um ano e podem sofrer variações não monitoradas. No entanto, é curioso notar que as medianas de ambas as regiões são bastante próximas. Ao mesmo tempo, as médias diferem muito, sugerindo que a região Sudeste tem uma maior tendência em ter faculdades com mensalidades mais caras do que a região Nordeste. Por outro lado, na nossa comparação, a região Nordeste pode apresentar faculdades com mensalidades mais acessíveis.

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.

Primeiro começaremos filtrando apenas os dados necessários para nossa análise, fazendo uma limpeza nos valores nulos, agregando os tipos de bolsa e obtendo o valor de Total de Mensalidades por Total de Bolsas:

data_curso_valor_bolsas <- data_set_prouni %>%
        group_by(curso_busca) %>% 
        summarize(total_bolsas = sum(
                  bolsa_integral_cotas, 
                  bolsa_integral_ampla, 
                  bolsa_parcial_cotas, 
                  bolsa_parcial_ampla, na.rm = TRUE),
                  mensalidade_total = sum(mensalidade, na.rm = TRUE),
                  mensalidade_por_bolsa = mensalidade_total / total_bolsas)

Agora ordenamos os cursos com maior mensalidade por total de bolsa e representamos graficamente para auxiliar nossa análise:

data_order_curso_bolsa_mensalidade <- data_curso_valor_bolsas %>%
        arrange(desc(mensalidade_por_bolsa)) %>%
        head(10)

plot_order_curso_bolsa_mensalidade <- plot_ly(data_order_curso_bolsa_mensalidade, x = ~mensalidade_por_bolsa, 
        y = ~reorder(curso_busca, mensalidade_por_bolsa), type = "bar", orientation = 'h') %>%
        layout(title = "Top 10 Cursos Total Mensalidade por Total Bolsa",
               xaxis = list(title = "Mensalidade por Bolsa"),
               yaxis = list(title = "Curso"))

plot_order_curso_bolsa_mensalidade

Por fim, mediremos a correlação entre Total de Mensalidade, com Total de Bolsas e exibiremos graficamente está relação:

plot_correlacao_curso_bolsa_mensalidade <- plot_ly(data_order_curso_bolsa_mensalidade, x = ~total_bolsas, 
        y = ~mensalidade_total, text = ~curso_busca, type = "scatter", mode = "markers", marker = list(color = "blue")) %>%
        add_lines(x = ~total_bolsas, y = ~fitted(lm(mensalidade_total ~ total_bolsas)),
        type = "scatter", mode = "lines", line = list(color = "red")) %>%
        layout(title = "Correlação entre Mensalidade e Total de Bolsas",
                xaxis = list(title = "Total de Bolsas"),
                yaxis = list(title = "Total de Mensalidade"))

plot_correlacao_curso_bolsa_mensalidade
## A marker object has been specified, but markers is not in the mode
## Adding markers to the mode...
correlacao <- cor(data_order_curso_bolsa_mensalidade$mensalidade_total, data_order_curso_bolsa_mensalidade$total_bolsas)
cat("Valor de correlação do Total de Mensalidades com o Total de Bolsas: ", correlacao, "\n")
## Valor de correlação do Total de Mensalidades com o Total de Bolsas:  0.9011614

Ao observar o gráfico e o valor de correlação, torna-se evidente que o valor total das mensalidades de um curso está diretamente relacionado à quantidade de total de bolsas. É importante ressaltar que essa relação é influenciada pelo fato de nossos dados se referirem exclusivamente às vagas em que foram concedidas bolsas. No entanto, uma análise mais aprofundada poderia revelar quais cursos apresentam as mensalidades mais altas, considerando a quantidade total de bolsas concedidas. Isso permitiria identificar os cursos que são mais caros em relação a poucas oportunidades de bolsas. Entretanto, é crucial reconhecer que outros fatores também influenciam esse resultado, como a quantidade de vagas disponíveis para os cursos ou mesmo disparidades na oferta de diferentes cursos.

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?

Vamos começar filtrando os dados que serão necessários e aproveitando para limpar valores nulos:

data_curso_tecnologo_pb_bolsa <- data_set_prouni %>%
        filter(uf_busca == "PB", grau == "Tecnológico") %>%
        group_by(nome) %>%
        summarize(bolsa_integral_ampla = sum(bolsa_integral_ampla, na.rm = TRUE),
                  bolsa_parcial_ampla = sum(bolsa_parcial_ampla, na.rm = TRUE),
                  bolsa_integral_cotas = sum(bolsa_integral_cotas, na.rm = TRUE),
                  bolsa_parcial_cotas = sum(bolsa_parcial_cotas, na.rm = TRUE),
                  total_bolsas = sum(
                          bolsa_integral_ampla,
                          bolsa_parcial_ampla,
                          bolsa_integral_cotas,
                          bolsa_parcial_cotas)) %>%
        arrange(desc(total_bolsas))

Agora podemos analisar graficamente, para saber qual curso mais dispõem de bolsas e qual curso mais dispõe bolsa dependendo do tipo da bolsa:

plot_curso_tecnologo_pb_bolsa <- plot_ly(data_curso_tecnologo_pb_bolsa, x = ~nome,
        y = ~total_bolsas, type = "bar", name = "Total de Bolsas",
                marker = list(color = "rgba(55, 128, 191, 0.7)")) %>%
        add_trace(y = ~bolsa_integral_ampla, name = "Integral Ampla",
                marker = list(color = "rgba(255, 153, 51, 0.7)")) %>%
        add_trace(y = ~bolsa_parcial_ampla, name = "Parcial Ampla",
                marker = list(color = "rgba(128, 0, 128, 0.7)")) %>%
        add_trace(y = ~bolsa_integral_cotas, name = "Integral Cotas",
                marker = list(color = "rgba(0, 128, 0, 0.7)")) %>%
        add_trace(y = ~bolsa_parcial_cotas, name = "Parcial Cotas",
                marker = list(color = "rgba(255, 51, 51, 0.7)")) %>%
        layout(title = "Bolsas por Curso - Cursos Tecnológicos na Paraíba",
                xaxis = list(title = "Curso"),
                yaxis = list(title = "Total de Bolsas"),
                barmode = "stack")

plot_curso_tecnologo_pb_bolsa

Deste modo, fica perceptível que em geral o curso de Gestão de Recursos Humanos é o que mais dispõe de bolsas. E avaliando por tipos de bolsa especificas, temos que respectivamente para os tipos de bolsa “Bolsa Integral Ampla, Bolsa Parcial Ampla, Bolsa Integral Cotas e Bolsa Parcial Cotas”, estão relacionados aos cursos de “Radiologia, Segurança no Trabalho, Gestão de Recursos Humanos e Gestão Comercial”.

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?

Para realizar nossa análise, começaremos filtrando os cursos desejados e agrupando-os por turnos. Esse passo nos permitirá examinar a distribuição das vagas de forma mais específica:

data_curso_turno <- data_set_prouni %>%
        filter(curso_busca %in% c("Ciência da Computação", "Engenharia da Computação", "Sistemas de Informação")) %>%
        group_by(curso_busca, turno) %>%
        summarise(bolsa_integral_ampla = sum(bolsa_integral_ampla, na.rm = TRUE),
                  bolsa_parcial_ampla = sum(bolsa_parcial_ampla, na.rm = TRUE),
                  bolsa_integral_cotas = sum(bolsa_integral_cotas, na.rm = TRUE),
                  bolsa_parcial_cotas = sum(bolsa_parcial_cotas, na.rm = TRUE),
                  total_bolsas = sum(
                          bolsa_integral_ampla,
                          bolsa_parcial_ampla,
                          bolsa_integral_cotas,
                          bolsa_parcial_cotas))
## `summarise()` has grouped output by 'curso_busca'. You can override using the
## `.groups` argument.

Em seguida, analisaremos o total de porcentagem por turno para cada curso. Isso nos dará uma visão geral da distribuição das vagas em relação aos diferentes períodos do dia:

data_curso_turno_porcentagem <- data_curso_turno %>%
        mutate(
              bolsa_integral_ampla = (bolsa_integral_ampla / total_bolsas) * 100,
              bolsa_parcial_ampla = (bolsa_parcial_ampla / total_bolsas) * 100,
              bolsa_integral_cotas = (bolsa_integral_cotas / total_bolsas) * 100,
              bolsa_parcial_cotas = (bolsa_parcial_cotas / total_bolsas) * 100)

E exibindo graficamente teremos o seguinte resultado:

plot_curso_turno_porcentagem <- plot_ly(data_curso_turno_porcentagem, x = ~curso_busca, 
        y = ~total_bolsas, color = ~turno, type = "bar", hoverinfo = "y+name") %>%
        layout(title = "Distribuição de Bolsas por Curso e Turno",
                xaxis = list(title = "Curso"),
                yaxis = list(title = "Total de Vagas"),
                barmode = "stack")

plot_curso_turno_porcentagem

Deste modo podemos observar que uma forte preferência em vagas no turno da noite, isso para ambos os cursos, outra coisa interessante é que o curso de Sistemas de Informação é o único com modalidade à distância. Porém, podemos ir mais a fundo e observar também por tipo de bolsa, como será que funciona a distribuição em aspecto de porcentagem nos cursos por turno, plotaremos graficamente para obter essa informação mais detalhada:

plot_curso_turno_tipo_porcentagem <- plot_ly(data_curso_turno_porcentagem, x = ~paste(curso_busca, turno), y = ~bolsa_integral_ampla,
        type = "bar", name = "Integral Ampla", marker = list(color = "rgba(55, 128, 191, 0.7)")) %>%
        add_trace(y = ~bolsa_parcial_ampla, name = "Parcial Ampla", 
                  marker = list(color = "rgba(255, 153, 51, 0.7)")) %>%
        add_trace(y = ~bolsa_integral_cotas, name = "Integral Cotas", 
                  marker = list(color = "rgba(128, 0, 128, 0.7)")) %>%
        add_trace(y = ~bolsa_parcial_cotas, name = "Parcial Cotas", 
                  marker = list(color = "rgba(0, 128, 0, 0.7)")) %>%
        layout(title = "Porcentagem de Bolsas por Curso e Turno",
               xaxis = list(title = "Curso e Turno"),
               yaxis = list(title = "Porcentagem de Bolsas"),
               barmode = "stack")

plot_curso_turno_tipo_porcentagem

Ao analisar o gráfico, percebemos a comparação dos tipos de bolsa implementadas por curso em cada turno, sendo assim, podemos observar que a maior porcentagem de bolsas integrais é encontrada no curso de Sistemas de Informação, especialmente no turno a distância. O curso de Engenharia da Computação também apresenta uma alta porcentagem de bolsas integrais no turno matutino. Por outro lado, o curso de Sistemas de Informação destaca-se por ter ao mesmo tempo a maior porcentagem de bolsas parciais, desta vez especialmente no turno vespertino. Essa análise pode fornecer insights adicionais ao relacionar essas porcentagens de bolsas com mensalidades ou notas integrais dos cursos.