O Conselho Nacional de Desenvolvimento Científico e Tecnológico (CNPq) é uma agência do governo federal brasileiro, vinculada ao Ministério da Ciência, Tecnologia e Inovações, responsável pela promoção e financiamento da pesquisa científica e tecnológica no país.
O CNPq foi criado em 1951, no governo do então presidente Getúlio Vargas, e tem como objetivos promover o desenvolvimento científico e tecnológico do Brasil por meio do financiamento de projetos de pesquisa, concessão de bolsas de estudo e apoio a programas de pós-graduação além de avaliar e certificar programas de pós-graduação stricto sensu em todo o país.
A criação do CNPq foi motivada pela necessidade de desenvolver a ciência e a tecnologia no Brasil, num contexto em que o país estava em busca de modernização e industrialização. Contribuindo assim para a formação de gerações de pesquisadores e para o avanço da ciência e da tecnologia no Brasil.
Nos anos 1990 e 2000, o CNPq passou por um processo de reestruturação, com a criação de novos programas de fomento à pesquisa e a adoção de novas estratégias para promover a inovação e o desenvolvimento científico e tecnológico no país. A agência também se tornou responsável pela avaliação e certificação dos programas de pós-graduação stricto sensu em todo o país.
Nos últimos anos, o CNPq vem passando por diversas dificuldades que dificultam a distribuição de bolsas para as pesquisas, entre eles os principais são:
Segundo o Jornal do Comércio, o governo de Bolsonaro foi o que realizou mais cortes na educação desde 1999. Nos 4 anos de governo de Bolsonaro o MEC (Ministério da Educação) teve 20% de suas verbas cortadas. Na Educação, só o valor bloqueado de 2022 ultrapassa R$ 40 bilhões, quase o dobro dos R$ 24 bilhões cancelados nos três anos anteriores
Em 2022 o orçamento geral da CNPq foi de R$ 1.32 Bilhão, sendo R$ 35 milhões para Fomento a pesquisa e desenvolvimento e R$ 955 milhões para Formação de recursos humanos (bolsas), conforme tabela mostrada abaixo:
O relatório do CNPq que analisaremos contém informações sobre projetos de pesquisa financiados, incluindo a data de início e término do processo, a modalidade de pesquisa, a grande área, área e subárea de pesquisa, a instituição de destino, a região, o país destino e o valor pago. Elas foram obtidas através do site de dados abertos do Governo Federal.
objetivo deste relatório é analisar os dados obtidos e identificar tendências e padrões de pesquisa em diferentes áreas do conhecimento, regiões do Brasil e países de destino. Para abordar esse problema, usaremos uma abordagem de análise exploratória de dados, combinando técnicas de visualização (gráficos) e análise estatística.
Este trabalho irá auxiliar a entender melhor as tendências de pesquisa em diferentes áreas do conhecimento e regiões geográficas. Além disso, os pesquisadores poderão usar nossos insights para identificar oportunidades de financiamento e entender melhor o cenário de pesquisa em suas áreas de interesse. Outro benefício do trabalho é orientar a alocação de recursos e a formulação de políticas públicas de fomento à pesquisa.
Os pacotes a seguir são necessários para a execução do código que você verá nesse projeto. Sem eles, o código aqui demonstrado não será executado com sucesso.
tidyr: Usado para manipulação de dados e transformação de dados em formatos mais organizados.
dplyr: Utilizado para a manipulação de dados, fornecendo funções para filtrar, selecionar, agrupar e resumir dados em data frames.
lubridate: Fornece funções para trabalhar com datas e horas em R.
formattable: Usado para formatar dados em tabelas de forma mais legível e visualmente atraente.
DT: Útil para criar e manipular tabelas interativas no R.
knitr: Utilizado para produzir relatórios e documentos em R Markdown.
Nessa seção você encontrará com detalhes as operações que foram realizadas para normalizar o dataset.
Os Dados foram obtidos através do site de dados abertos do Governo Federal no dia 28 de fevereiro de 2023 e retratam o pagamento de bolsas e auxílios durante o ano de 2022 pela CNPq (Conselho Nacional de Desenvolvimento Científico e Tecnológico). Caso queira ter acesso aos dados, basta clicar aqui.
O arquivo extraído pelo site indicado acima vem em formato .csv com 227257 linhas e 27 variáveis, porém as quatro primeiras linhas dizem apenas respeito a informações do dataset, como nome, ano e data de gração do relatório, demonstradas na imagem abaixo:
Por isso, as primeiras 4 linhas foram removidas para que fosse possível utilizar a primeira linha como nome das colunas no Data Frame utilizado.
A última linha também continha apenas o valor total das bolsas pagas e distorce dos dados das outras linhas. Por esse motivo, removi a última linha para conter apenas os valores correspondentes para cada coluna.
Outra alteração manual necessária foi o cabeçalho do dataset, pois a maioria das colunas possuiam nomes que não se encaixavam no formato correto, com espaços entre as palavras e acentos. O nome das colunas tiveram os acentos removidos e os espaços entre palavras trocados por “_“.
Após as alterações, o Data Frame contou com 27 variáveis e 227257 linhas. Um exemplo das 10 primeiras linhas do Data Frame
Nas abas seguintes, serão mostradas as alterações em algumas colunas da tabela.
Algumas colunas foram removidas por não apresentar relevância para a análise dos dados. Foram estas:
O código
cnpq <- cnpq[, -c(1,2,5,6,8,9,10,14,15,16,19,20,23,24,25,26)]
removeu todas as colunas não necessárias, restando 12 colunas no Data
Frame a ser utilizado.
As colunas Inicio_Processo e Termino_Processo vieram com as datas no formato dd/mm/yyyy porém no tipo de Character. Para conseguir manipular as duas variáveis, foi preciso converter as duas colunas do tipo Char para o tipo Date, ficando no formato yyyy-mm-dd.
cnpq$Inicio_Processo <- lubridate::dmy(cnpq$Inicio_Processo)
cnpq$Termino_Processo <- lubridate::dmy(cnpq$Termino_Processo)
str(cnpq$Inicio_Processo)
## Date[1:227257], format: "2021-09-01" "2022-09-01" "2021-09-01" "2022-05-01" "2021-11-01" ...
str(cnpq$Termino_Processo)
## Date[1:227257], format: "2022-08-31" "2023-08-31" "2022-08-31" "2023-03-31" "2022-08-31" ...
Depois de mudar para o formato de data, percebi que existiam linhas em que os Processo se iniciavam após 2022, o que não faz sentido, visto que uma bolsa não poderia ser paga em 2022 se o Processo foi iniciado após esse ano. Além disso, percebi que também existiam linhas em que o Termino do Processo era anterior ao ano de 2022, o que não faz sentido , visto que não se deveria pagar uma bolsa após ter finalizado o Processo. Por exemplo:
## [1] "Inicio de Processos: 2023-01-01" "Inicio de Processos: 2023-01-01"
## [3] "Inicio de Processos: 2023-03-01" "Inicio de Processos: 2023-02-01"
## [5] "Inicio de Processos: 2023-02-01" "Inicio de Processos: 2023-01-01"
## [1] "Término de Processos: 2021-11-30" "Término de Processos: 2021-10-31"
## [3] "Término de Processos: 2021-09-30" "Término de Processos: 2021-10-31"
## [5] "Término de Processos: 2021-11-30" "Término de Processos: 2020-06-30"
Para resolver isso, eliminei as linhas que continham o término do Processo antes do ano de 2022 e as linhas que continham o Início do processo após 2022:
cnpq <- cnpq %>% filter(year(Inicio_Processo) <= 2022 & year(Termino_Processo) >= 2022)
Para simplificar o Data Frame, decidi unificar as colunas Instituicao_Destino com a Sigla_Instituicao, visto que elas tratavam de itens semelhantes, porém de forma diferente. Para isso, utilizei o seguinte trecho de código:
cnpq <- cnpq %>% unite( col = "Instituicao_Destino", Instituicao_Destino, Sigla_Instituicao, sep = " - ")
Eis exemplos de como ficou o resultado:
## [1] "Universidade Federal do Rio de Janeiro - UFRJ"
## [2] "Universidade Federal do Rio Grande do Sul - UFRGS"
## [3] "Universidade do Estado do Rio de Janeiro - UERJ"
## [4] "Instituto Nacional de Matematica Pura e Aplicada - IMPA"
## [5] "Universidade de Fortaleza - UNIFOR"
## [6] "Universidade do Estado do Rio de Janeiro - UERJ"
Algumas linhas vieram com os dados referentes pela coluna Regiao preenchidas por siglas ou nomes de estado ao invés de vir a sigla do nome da região, como exemplo:
regiaoErrada <- cnpq %>% filter(Regiao != "NO" & Regiao != "NE" &
Regiao != "SE" & Regiao != "CO" & Regiao != "SU" )
head(regiaoErrada$Regiao)
## [1] "SP" "SP" "MG" "MG" "MS" "SP"
Para solucionar o problema, removi todas as linhas cujo a coluna Regiao fosse diferente de uma sigla de Região do Brasil realmente ou seja do Exterior.
cnpq <- cnpq %>% filter(Regiao == "NO" | Regiao == "NE" | Regiao == "SE" | Regiao == "CO" | Regiao == "SU" | Regiao == "Exterior" )
A coluna Pais_Destino diz respeio ao país em que se encontra o recebedor da bolsa da CNPq. Porém, existem alguns dados que ao invés de vir o país, está vindo como a sigla do Estado ou região do Brasil. Como por exemplo:
paisErrado <- cnpq %>% filter(nchar(Pais_Destino) < 3)
head(paisErrado$Pais_Destino)
## [1] "NE" "NE" "NE" "NE" "NE" "NE"
Para corrigir, mudei os dados que estavam com apenas a sigla de um estado ou região para receber o país ‘BRA - Brasil’.
cnpq$Pais_Destino <- ifelse(nchar(cnpq$Pais_Destino) < 3, "BRA - Brasil",cnpq$Pais_Destino)
A coluna Valor_Pago contém os valores de bolsas pagas para os alunos, porém ela veio com Letras e símbolos no formato de Caracter, como mostra o exemplo:
cnpq$Valor_Pago[1]
## [1] "R$ 1.200,00"
typeof(cnpq$Valor_Pago)
## [1] "character"
Por isso, foi necessário realizar algumas alterações:
Remover o símbolo R$ para que ficassem apenas os números:
#Filtrando apenas os que contém R$ no início
aux <- grepl("^R",cnpq$Valor_Pago)
cnpq <- cnpq %>% filter(aux)
# Removendo o símbolo R$
cnpq$Valor_Pago <- substr(cnpq$Valor_Pago, 4, 12)
Remover os pontos no meio do número:
# Removendo o ponto no meio dos números
cnpq$Valor_Pago <- gsub("[.]", "", cnpq$Valor_Pago)
# Substitui vírgula por ponto
cnpq$Valor_Pago <- gsub(",", ".", cnpq$Valor_Pago)
Transformar a coluna Valor_Pago no tipo numérico:
cnpq$Valor_Pago <- as.numeric(cnpq$Valor_Pago)
Com as alterações, os valores da coluna ficaram como no exemplo:
cnpq$Valor_Pago[1]
## [1] 1200
typeof(cnpq$Valor_Pago)
## [1] "double"
Ao verificar o summary da coluna Valor_Pado, percebi que existiam colunas com o valor 0. Esses valores provavelmente são erros, pois não existem bolsas no valor de 0 reais. Além disso, também notei que o máximo passava de 4 milhões de reais, o que não fazia sentido. Ao olhar o site do Governo Federal, vi que a bolsa mais alta da CNPq é de R$14.000 podendo ter adicionais.
summary(cnpq$Valor_Pago)
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## 0 400 1200 7196 3200 4497070 5
Para resolver isso, decidi deixar apenas as linhas onde os Valores_Pagos fossem acima ou igual de R$300.00 e abaixo ou igual a R$20000.00
cnpq <- cnpq %>% filter(Valor_Pago >= 300 & Valor_Pago <= 20000 )
summary(cnpq$Valor_Pago)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 300 600 1200 3056 3200 20000
Algumas colunas do Data Frame possuem valores em comum em seus dados, representando uma classe daquela coluna. Por isso, fez sentido convertê-las para o tipo Fator, com o intuito de melhor classificar os valores de cada dado.
As colunas que foram convertidas para fator foram: Modalidade, Grande_Area, Area, Subarea, Regiao e Pais_Destino.
print(paste("Modalidade - ", typeof(cnpq$Modalidade)))
## [1] "Modalidade - character"
print(paste("Grande_Area - ", typeof(cnpq$Grande_area)))
## [1] "Grande_Area - character"
print(paste("Area - ", typeof(cnpq$Area)))
## [1] "Area - character"
print(paste("Subarea - ", typeof(cnpq$Subarea)))
## [1] "Subarea - character"
print(paste("Regiao - ", typeof(cnpq$Regiao)))
## [1] "Regiao - character"
print(paste("Pais_Destino - ", typeof(cnpq$Pais_Destino)))
## [1] "Pais_Destino - character"
Conversão para Fator:
cnpq$Modalidade <- as.factor(cnpq$Modalidade)
cnpq$Grande_area <- as.factor(cnpq$Grande_area)
cnpq$Area <- as.factor(cnpq$Area)
cnpq$Subarea <- as.factor(cnpq$Subarea)
cnpq$Regiao <- as.factor(cnpq$Regiao)
cnpq$Pais_Destino <- as.factor(cnpq$Pais_Destino)
str(cnpq$Modalidade)
## Factor w/ 37 levels "ADC - Apoio a Difusao do Conhecimento",..: 21 24 21 22 21 21 33 33 21 21 ...
str(cnpq$Grande_area)
## Factor w/ 11 levels "Ciencias Agrarias",..: 2 6 7 4 6 4 1 1 7 7 ...
str(cnpq$Area)
## Factor w/ 113 levels "","\xc1reas Tecnologicas de Fisica e Matematica",..: 16 32 44 71 32 60 5 5 44 44 ...
str(cnpq$Subarea)
## Factor w/ 1263 levels "\xc1gua","\xc1guas Subterraneas e Pocos Profundos",..: 131 295 444 596 298 750 466 466 743 234 ...
str(cnpq$Regiao)
## Factor w/ 6 levels "CO","Exterior",..: 5 6 5 5 3 5 1 1 3 3 ...
str(cnpq$Pais_Destino)
## Factor w/ 22 levels "ARG - Argentina",..: 5 5 5 5 5 5 5 5 5 5 ...
Após as modificações realiadas nas colunas do Data Frame, Decidi
limpar todas as linhas que poussíam pelo menos algum dado com NA, para
evitar problemas futuros em equações e manipulação dos dados através do
código cnpq <- na.omit(cnpq)
. Após a eliminação das
linhas que continham NAs, o Data frame ficou com 180245 linhas e 10
variáveis.
As 10 variáveis restantes são:
Esse é um exemplod das 6 primeiras linhas do Data Frame após o refinamento:
Inicio_Processo | Termino_Processo | Modalidade | Grande_area | Area | Subarea | Instituicao_Destino | Regiao | Pais_Destino | Valor_Pago |
---|---|---|---|---|---|---|---|---|---|
2021-09-01 | 2022-08-31 | IC - Iniciacao Cientifica | Ciencias Biologicas | Bioquimica | Biologia Molecular | Universidade Federal do Rio de Janeiro - UFRJ | SE | BRA - Brasil | 1200 |
2022-09-01 | 2023-08-31 | IT - Iniciacao Tecnologica | Ciencias Sociais Aplicadas | Direito | Direito Privado | Universidade Federal do Rio Grande do Sul - UFRGS | SU | BRA - Brasil | 1600 |
2021-09-01 | 2022-08-31 | IC - Iniciacao Cientifica | Engenharias | Engenharia Civil | Estruturas | Universidade do Estado do Rio de Janeiro - UERJ | SE | BRA - Brasil | 3200 |
2022-05-01 | 2023-03-31 | ICJ - Iniciacao Cientifica Junior | Ciencias Exatas e da Terra | Matematica | Geometria e Topologia | Instituto Nacional de Matematica Pura e Aplicada - IMPA | SE | BRA - Brasil | 500 |
2021-11-01 | 2022-08-31 | IC - Iniciacao Cientifica | Ciencias Sociais Aplicadas | Direito | Direito Publico | Universidade de Fortaleza - UNIFOR | NE | BRA - Brasil | 3200 |
2021-09-01 | 2022-02-28 | IC - Iniciacao Cientifica | Ciencias Exatas e da Terra | Fisica | Materiais Magneticos e Propriedades Magneticas | Universidade do Estado do Rio de Janeiro - UERJ | SE | BRA - Brasil | 800 |
As análises aqui realizadas serão divididas em tópicos, acompanhadas de sua motivação, para com isso guiar as análises realizadas na base utilizada.
As colunas Inicio_Processo e Termino_Processo marcam o inicio e o fim, respectivamente, do Processo de recebimento de bolsas da CNPq. Mas, das bolsas recebidas em 2022, quais foram os anos em que essas bolsas começaram a serem pagas?
A data do Processo mais antigo do dataset disponibilizado pela CNPq pode ser obtido assim
# Pega o caso mais antigo
print(paste("Data do Processo mais antigo:", min(cnpq$Inicio_Processo)))
## [1] "Data do Processo mais antigo: 2012-06-01"
Enquanto podemos obter a data do caso que iniciará mais tardiamente das bolsas recebidas em 2022:
# Pega o caso iniciado mais tardiamente
print(paste("Data do Processo iniciado mais tardiamente:", max(cnpq$Inicio_Processo)))
## [1] "Data do Processo iniciado mais tardiamente: 2022-12-21"
A data do Processo que encerrará mais cedo do dataset disponibilizado pela CNPq pode ser obtido assim
# Pega o caso que encerrará mais cedo
print(paste("Data do Processo que encerrará mais cedo:", min(cnpq$Termino_Processo)))
## [1] "Data do Processo que encerrará mais cedo: 2022-01-31"
Já a data do Processo, das bolsas pagas em 2022, que será mais longevo será:
# Pega o caso que demorará mais para encerrar
print(paste("Data do Processo iniciado mais longevo:", max(cnpq$Termino_Processo)))
## [1] "Data do Processo iniciado mais longevo: 2027-06-30"
Podemos analisar os dados pela perspectivas de quantos Processos foram iniciados e terminados em cada ano registrado.
# Cria novas colunas para receber apenas os anos do inínio e término do Processo
cnpq_por_ano <- cnpq %>% mutate(
Ano_Inicio = year(cnpq$Inicio_Processo),
Ano_Termino = year(cnpq$Termino_Processo)
)
# separa a quantidade de inicio de Processo por ano
inicio_Processo <- cnpq_por_ano %>% group_by(Ano_Inicio) %>%
summarise(quantidade = n())
# Ajusta margem do gráfico
par(mar = c(4, 4, 2, 2))
# Gera gráfico de barras mostrando a quantidade de inicio de Processo por ano
bp <- barplot(inicio_Processo$quantidade,
names.arg = inicio_Processo$Ano_Inicio,
xlab = "Ano de início dos Processos",
ylab = "Quantidade de Processos iniciados",
main = "Quantidade de Processos iniciados por ano",
col = "red",
ylim = c(0, 150000)
)
# Adiciona texto em cima de cada coluna
text(bp, inicio_Processo$quantidade, labels = inicio_Processo$quantidade, pos = 3)
# separa a quantidade de inicio de Processo por ano
termino_Processo <- cnpq_por_ano %>% group_by(Ano_Termino) %>%
summarise(quantidade = n())
# Ajusta margem do gráfico
par(mar = c(4, 4, 2, 2))
# Gera gráfico de barras mostrando a quantidade de inicio de Processo por ano
bp <- barplot(termino_Processo$quantidade,
names.arg = termino_Processo$Ano_Termino,
xlab = "Ano de término dos Processos",
ylab = "Quantidade de Processos terminados",
main = "Quantidade de Processos terminados por ano",
col = "red",
ylim = c(0, 150000)
)
# Adiciona texto em cima de cada coluna
text(bp, termino_Processo$quantidade, labels = termino_Processo$quantidade, pos = 3)
Filtrando apenas os Processos iniciados em 2022, podemos ter uma linha do tempo de quantos Processos foram iniciando em cada mês do ano em questão.
# filtrando os Processos que se iniciaram em 2022
Processos_2022 <- cnpq_por_ano %>% filter(Ano_Inicio == 2022)
# Pega apenas o mês de início do Processo
Processos_2022$Inicio_Processo <- month(Processos_2022$Inicio_Processo)
# Agrupa data frame por mês
Processos_2022 <- Processos_2022 %>% group_by(Inicio_Processo) %>%
summarise(quantidade = n())
# Ajusta margem do gráfico
par(mar = c(4, 4, 2, 2))
# Cria gráfico de linha
x <- plot(
Processos_2022$Inicio_Processo,
Processos_2022$quantidade,
type = "b",
xlab = "Mês Início de Processo",
ylab = "Quantidade de Processos Iniciados",
ylim = c(0,80000),
main = "Quantidade de processos iniciados por mês em 2022",
col = "red"
)
text(Processos_2022$quantidade, labels = Processos_2022$quantidade, pos = 3)
A coluna Modalidade diz respeito a qual modalidade a pesquisa que recebeu a bolsa se encaixou, podendo ser desde Iniciação científica até Pós-Doutorado.Neste capítulo será mostrado como ficou a distribuição de bolsas pelo olhar das áreas de estudos
Dentro do Data Frame existem um total de 37 modalidades de pesquisa que receberam bolsa em 2022. As modalidades existentes podem ser mostradas nessa tabela:
# Cria um vetor com as modalidades
modalidades <- levels(cnpq$Modalidade)
# Cria uma matriz 4x8 com os levels
matriz_modalidades <- matrix(modalidades, nrow = 4, ncol = 8, byrow = TRUE)
## Warning in matrix(modalidades, nrow = 4, ncol = 8, byrow = TRUE): data length
## [37] is not a sub-multiple or multiple of the number of rows [4]
# Cria a tabela
kable(matriz_modalidades, format = "markdown")
ADC - Apoio a Difusao do Conhecimento | AED - Auxilio a Editoracao e Publicacao | APQ - Auxilio a Pesquisa | ARC - Promocao de Eventos Cientificos | AT - Apoio Tecnico a Pesquisa | ATP - Apoio Tecnico em Extensao no Pais | BJT - Atracao de Jovens Talentos | DCR - Desenvolvimento Cientifico Regional |
DEJ - Desenvolvimento Tecnologico e Inovacao | DES - Desenvolvimento Tecnologico e Inovacao | DT - Produtividade Desen. Tec. e Extensao | DTC - Desenvolvimento Tecnologico em TICs | DTI - Desenvolvimento Tecnologico Industrial | EPI - Bolsa de Treinamento - Programa | ESN - Estagio Senior no Exterior | EV - Especialista Visitante |
EXP - Extensao no Pais | GD - Doutorado | GDE - Doutorado no Exterior | GM - Mestrado | IC - Iniciacao Cientifica | ICJ - Iniciacao Cientifica Junior | IEX - Iniciacao ao Extensionismo | IT - Iniciacao Tecnologica |
ITC - Iniciacao Tecnologica em TICs | ITI - Iniciacao Tecnologica e Industrial | PAV - Bolsa Pesquisador-Avaliador | PCI - Programa de Capacitacao Institucional | PDE - Pos-doutorado no Exterior | PDI - Pos-doutorado Empresarial | PDJ - Pos-doutorado Junior | PDS - Pos-doutorado Senior |
Dentre as 37 modalidades, as 3 mais utilizadas são:
# Pega as 3 modalidades mais utilizadas
modalidades_mais_utilizadas <- cnpq %>%
count(Modalidade) %>%
arrange(desc(n))
# Gera a tabela
kable(head(modalidades_mais_utilizadas, 3), col.names = c("Modalidade", "Quantidade"))
Modalidade | Quantidade |
---|---|
IC - Iniciacao Cientifica | 89577 |
ICJ - Iniciacao Cientifica Junior | 22974 |
PQ - Produtividade em Pesquisa | 15651 |
E as 3 modalidades menos utilizadas são:
# Pega as 3 modalidades menos utilizadas
modalidades_menos_utilizadas <- cnpq %>%
count(Modalidade) %>%
arrange(desc(n))
# Gera a tabela
kable(tail(modalidades_menos_utilizadas, 3), col.names = c("Modalidade", "Quantidade"))
Modalidade | Quantidade | |
---|---|---|
35 | ESN - Estagio Senior no Exterior | 2 |
36 | BJT - Atracao de Jovens Talentos | 1 |
37 | DES - Desenvolvimento Tecnologico e Inovacao | 1 |
Podemos agrupar as modalidades por valores recebidos no total na ordem decrescente:
# Divide por valores
modalidade_valor <- aggregate(cnpq$Valor_Pago,
by = list(cnpq$Modalidade),
sum)
colnames(modalidade_valor) <- c("Modalidade", "Valor_Total")
# Ordena por ordem decrescente
modalidade_valor <- modalidade_valor %>%
arrange(desc(Valor_Total))
Dentre as modalidades, as 3 que receberam as maiores quantidade de dinheiro no total foram:
kable(head(modalidade_valor, 3), col.names = c("Modalidade", "Valor Total Recebido"))
Modalidade | Valor Total Recebido |
---|---|
IC - Iniciacao Cientifica | 132918800 |
PQ - Produtividade em Pesquisa | 125556638 |
GM - Mestrado | 79416000 |
E as 3 que receberam as menores quantidade de dinheiro no total foram:
kable(tail(modalidade_valor, 3), col.names = c("Modalidade", "Valor Total Recebido"))
Modalidade | Valor Total Recebido | |
---|---|---|
35 | DES - Desenvolvimento Tecnologico e Inovacao | 19423.51 |
36 | ESN - Estagio Senior no Exterior | 15942.47 |
37 | BJT - Atracao de Jovens Talentos | 8200.00 |
O valor total recebido por cada Modalidade pode ser encontrado nesta tabla:
datatable(modalidade_valor, options = list(scrollX = TRUE, scrollY = '300px'))
Neste capítulo iremos fazer análises de como fciou a distribuição da verba de bolsas da CNPq entre as Grande Áreas e Áreas de estudo. Dentro do Data Frame existem 11 Grandes Áreas, que diz respeito a área de ensino. Cada Grande Área possui suas Áreas específicas e cada Área possui as suas Subarea. Nos nossos dados existem 113 Áreas e 1263 Subareas. Ex: Ciência Biólogicas - Bioquímica - Biologia Molecular.
As 11 Grandes Áreas existentes são:
## [1] "Ciencias Agrarias" "Ciencias Biologicas"
## [3] "Ciencias da Saude" "Ciencias Exatas e da Terra"
## [5] "Ciencias Humanas" "Ciencias Sociais Aplicadas"
## [7] "Engenharias" "Indefinido"
## [9] "Linguistica, Letras e Artes" "Outra"
## [11] "Tecnologias"
Podemos organizar as Grandes Áreas pela quantidade de bolsas recebidas:
Ga <- cnpq %>% group_by(Grande_area) %>%
summarise(Quantidade_Bolsas = n()) %>%
arrange(desc(Quantidade_Bolsas))
O ranking das áreas com mais bolsas recebidas são:
datatable(Ga, options = list(scrollX = TRUE, scrollY = '300px'))
A Grande Área com mais bolsas recebidas foi a “Ciencias Exatas e da Terra” com 9 Areas e 224 Subareas.
Podemos também ordenar as Grande Áreas pelo valor total das bolsas recebidas:
Ga_valor <- aggregate(cnpq$Valor_Pago,
by = list(cnpq$Grande_area),
sum)
colnames(Ga_valor) <- c("Grande_Area", "Valor_Total")
# Ordena por ordem decrescente
Ga_valor <- Ga_valor %>%
arrange(desc(Valor_Total))
datatable(Ga_valor, options = list(scrollX = TRUE, scrollY = '300px'))
A primira colocação permaneceu a mesma entra a distribuição por quantidade de bolsas e o valor total recebido, entretanto já percebe-se a diferença a partir do segundo e terceiro lugar.
Do total investido para pagamento de bolsas da CNPq, a divisão(em porcentagem) para cada Grande Área de pesquisa ficou assim:
colors <- c("#F8766D", "#C49A00", "#53B400", "#00C094", "#00B6EB", "#A58AFF", "#FB61D7", "#F6D54A", "#FFBF00", "#E6AB02", "#A1CAF1")
par(mar = c(4, 2, 4, 2))
x <- Ga_valor$Valor_Total
pct <- round(x / sum(x) * 100)
lbls <- paste(pct, "%", sep="")
pie(x, labels = lbls,
main = "Distribuição do valor total por Área (%)",
col = colors)
legend("topright", legend = Ga_valor$Grande_Area,
cex = 0.65, fill = colors)
Dentre as Áreas, as 6 que mais receberam investimendo (em quantidade de bolsas) da CNPq foram as:
# Ordena quais Áreas mais receberam bolsas
areas <- cnpq %>%
group_by(Area, Grande_area) %>%
summarise(Quantidade = n(), Valor_Total = sum(Valor_Pago)) %>%
arrange(desc(Quantidade))
## `summarise()` has grouped output by 'Area'. You can override using the
## `.groups` argument.
# Gera tabela
areas %>% head() %>% formattable::formattable()
Area | Grande_area | Quantidade | Valor_Total |
---|---|---|---|
Matematica | Ciencias Exatas e da Terra | 14401 | 14608373 |
Agronomia | Ciencias Agrarias | 10047 | 30281379 |
Quimica | Ciencias Exatas e da Terra | 7612 | 24962205 |
Educacao | Ciencias Humanas | 6782 | 19086433 |
Medicina | Ciencias da Saude | 5540 | 17054590 |
Saude Coletiva | Ciencias da Saude | 5273 | 14729441 |
As Instituições de Destino se refere para qual universidade foi destinada a bolsa paga pela CNPq. Nesta coluna, se encontram universidades de todas as regiões do país e do exterior.
Neste capítulo iremos explorar apenas as Instituições presentes em território nacional e ver como ficou a distribuição de bolsas entre elas.
O top-10 das Instituições que mais receberam bolsas da CNPq foram as:
bolsas_instituicoes_qtd <- cnpq %>% filter(Pais_Destino == "BRA - Brasil")
bolsas_instituicoes_qtd <- bolsas_instituicoes_qtd %>% group_by(Instituicao_Destino) %>%
summarise(Bolsas_recebidas = n()) %>%
arrange(desc(Bolsas_recebidas))
datatable(bolsas_instituicoes_qtd[1:10, ], options = list(scrollX = TRUE, scrollY = '400px'))
Enquanto as Instituições que mais receberam dinheiro das bolsas da CNPq foram as:
bolsas_instituicoes <- cnpq %>% filter(Pais_Destino == "BRA - Brasil")
bolsas_instituicoes <- bolsas_instituicoes %>% group_by(Instituicao_Destino) %>%
summarise(Total_Recebido = sum(Valor_Pago)) %>%
arrange(desc(Total_Recebido))
datatable(bolsas_instituicoes[1:10, ], options = list(scrollX = TRUE, scrollY = '400px'))
Já a Universidade Federal Rural de Pernambuco - UFRPE se encontra na 36° posição de Instituições que mais receberam bolsas e foi a 36° que recebeu o maior valor de bolsas.
Instituicao_Destino | Quantidade_Bolsas | Valor_Recebido |
---|---|---|
Universidade Federal Rural de Pernambuco - UFRPE | 1284 | 3478116 |
Instituições das 5 regiões do Brasil foram contempladas com bolsas da CNPq no ano de 2022. Neste capítulo veremos como ficou a distribuição da verba entre as regiões do país.
regioes <- cnpq %>% filter(Regiao != "Exterior") %>%
group_by(Regiao) %>%
summarise(Quantidade_Bolsas = n(), Valor_Pago = sum(Valor_Pago)) %>%
arrange(desc(Quantidade_Bolsas))
A região que mais recebeu bolsa foi a SE, recebendo um total de 89337 bolsas da CNPq totalizando o valor de R$284491967.2 recebidos. Isso é justificado por termos 6 das 10 Instituições que maias receberam bolsas sendo da região Sudeste.
Comparando a quantidade de bolsas recebidas por cada região, obtemos o seguinte resultado:
bp <- barplot(regioes$Quantidade_Bolsas,
names.arg = regioes$Regiao,
xlab = "Regiões",
ylab = "Quantidade de de bolsas pagas",
main = "Quantidade de bolsas pagas por Região do Brasil em 2022",
col = "red",
ylim = c(0, 100000)
)
# Adiciona texto em cima de cada coluna
text(bp, regioes$Quantidade_Bolsas, labels = regioes$Quantidade_Bolsas, pos = 3)
x <- regioes$Quantidade_Bolsas
pct <- round(x / sum(x) * 100)
lbls <- paste(pct, "%", sep="")
pie(x, labels = lbls,
main = "Distribuição de bolsas por Região (%) em 2022",
col = rainbow(length(x)))
legend("topright", legend = regioes$Regiao,
cex = 0.8, fill = rainbow(length(x)))
Se olharmos pelo ponto de vista dos valores recebidos, podemos ver a distribuição, em porcentagem, do valor total de R$549387512.8 entre as 5 regiões do Brasil:
bp <- barplot(regioes$Valor_Pago,
names.arg = regioes$Regiao,
xlab = "Regiões",
ylab = "Valores totais pagos",
main = "Valores totais pagos por Região do Brasil em 2022",
col = "red",
ylim = c(0, 500000000)
)
# Adiciona texto em cima de cada coluna
text(bp, regioes$Valor_Pago, labels = regioes$Valor_Pago, pos = 3)
x <- regioes$Valor_Pago
pct <- round(x / sum(x) * 100)
lbls <- paste(pct, "%", sep="")
pie(x, labels = lbls,
main = "Distribuição do valor total por Região (%) em 2022",
col = rainbow(length(x)))
legend("topright", legend = regioes$Regiao,
cex = 0.8, fill = rainbow(length(x)))
A coluna Regiao indica em qual região do Brasil é a Instituicao_Destino que recebeu a bolsa. Quando a Instituição é fora do Brasil, a coluna Regiao indica ‘Exterior’. Já a coluna Pais_Destino, como o próprio nome diz, se refere a qual país a Instituicao_Destino pertence. Neste capítulo, iremos analisar como ficou a distribuição das bolsas entre as Instituições de outros países além do Brasil. Contando com o Brasil, existem 22 países que receberam pelo menos uma bolsa entre R$100 e R$20000 em 2022.
Considerando apenas os países do Exterior, o país que mais recebeu bolsas da CNPq foi EUA - Estados Unidos com um total de 26 bolsas recebidas, seguido por POR - Portugal e ESC - Escocia. A seguir podemos ver quantas bolssas cada país do exterior recebeu:
# Filtra os países fora o Brasil
ext <- cnpq %>% filter(Pais_Destino != "BRA - Brasil")
# Ordena os paises por quantidade de bolsas recebidas.
ext <- ext %>% group_by(Pais_Destino) %>%
summarise(Bolsas_recebidas = n()) %>%
arrange(desc(Bolsas_recebidas))
# Gera tabela
datatable(ext, options = list(scrollX = TRUE, scrollY = '400px'))
Já se analisarmos o valor recebido por cada país, vemos uma inversão de posição entre Estados Unidos e Portugal, assim como Inglaterra ocupou o lugar da Escócia.
# Filtra os países fora o Brasil
ext <- cnpq %>% filter(Pais_Destino != "BRA - Brasil")
# Ordena os paises por quantidade de bolsas recebidas.
ext <- ext %>% group_by(Pais_Destino) %>%
summarise(Valor_Recebido = sum(Valor_Pago)) %>%
arrange(desc(Valor_Recebido))
# Gera tabela
datatable(ext, options = list(scrollX = TRUE, scrollY = '400px'))
Já com relação as instituições do exterior, podemos obter as seguitnes análises:
# Filtra as Instituições fora do Brasil
ext <- cnpq %>% filter(Pais_Destino != "BRA - Brasil")
# Transforma as instituições em Fator
ext$Instituicao_Destino <- as.factor(ext$Instituicao_Destino)
Existem um total de 78 de Instituições que receberam bolsas da CNPq, totalizando R$1439212.5 investidos em pesquisas no exterior. Ranqueando as Instituições do exterior que mais receberam bolsas, obtemos o seguinte resultado:
# Ordena as instituições do exterior por quantidade de bolsas recebidas.
ext <- ext %>% group_by(Instituicao_Destino) %>%
summarise(Bolsas_recebidas = n()) %>%
arrange(desc(Bolsas_recebidas))
# Gera Tabela com ranking das instituições do exterior que mais receberam
datatable(ext, options = list(scrollX = TRUE, scrollY = '400px'))
Neste gráfico, podemos ver a diferença entre a quantidade de bolsas distribuídas no Brasil e no Exterior:
Neste capítulo, iremos analisar as principais estatísticas dos valores pagos pela CNPq em 2022.
No total, tivemos um total de R$550826725.3 investidos em bolsas de pesquisa no ano de 2022. A média das bolsas pagas é de 3055 e a mediana dos valores é 1200
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 300 600 1200 3056 3200 20000
Os valores pagos possuem um desvio padrão de 4065.1143475. Porém esse valor está distorcido devido aos outliers que puxam o valor para cima, tornando a coluna Valor_Pago assimétrica à direita. Por isso, calculeri o Desvio Absoluto Médio (MAD) 1186.08. Calculando a porcentagem de pessoas que ficaram dentro do desvio absoluto, abaixo ou acima.
# Cálculo da média e do desvio padrão
media <- mean(cnpq$Valor_Pago)
# Desvio absoluto médio
desvio_abs <- mad(cnpq$Valor_Pago)
# Contagem dos valores abaixo, acima ou próximos à média
abaixo_media <- sum(cnpq$Valor_Pago < media - desvio_abs)
proxima_media <- sum(cnpq$Valor_Pago >= media - desvio_abs & cnpq$Valor_Pago <= media + desvio_abs)
acima_media <- sum(cnpq$Valor_Pago > media + desvio_abs)
# Criação do df
df <- data.frame(Categoria = c("Abaixo da média", "Próximo à média", "Acima da média"),
Quantidade = c(abaixo_media, proxima_media, acima_media),
Porcentagem = c(round(abaixo_media/nrow(cnpq)*100, 2),
round(proxima_media/nrow(cnpq)*100, 2),
round(acima_media/nrow(cnpq)*100, 2)))
df %>% formattable()
Categoria | Quantidade | Porcentagem |
---|---|---|
Abaixo da média | 102609 | 56.93 |
Próximo à média | 46332 | 25.71 |
Acima da média | 31304 | 17.37 |
A moda dos valores pagos pela CNPq em 2022 é de 400. Ou seja, esse valor foi o que mais se repetiu dentre todos os outros valores.
Podemos visualizar o gráfico de densidade evidenciando a moda e o Histograma visualizando a distribuição dos valores pagos em 2022. Podemos perceber que a coluna Valor_Pago não segue uma distribuição normal.
# Calcula a densidade
dens <- density(cnpq$Valor_Pago)
# Gera o gráfico
plot(dens, main = "Gráfico de densidade")
# Adiciona linha vertical para a moda
abline(v = dens$x[which.max(dens$y)], col = "red")
hist(cnpq$Valor_Pago, col = "aliceblue", probability = T,
main = "Histograma de Valor_Pago",
xlab = "Valor Pago")
lines(
density(cnpq$Valor_Pago))
# Gera o boxplot
boxplot(cnpq$Valor_Pago,
main="Distribuição Valor Pago",
boxwex=0.5, col="lightblue",
notch=TRUE, notchwidth=0.5,
outline=FALSE)
# Adiciona a legenda
legend("topright", legend="Valor Pago",
col="lightblue", lty=1, box.lty=0)
# Gera o boxplot
boxplot(Valor_Pago ~ Regiao, data = cnpq,
main="Distribuição Valor Pago por Região",
xlab="Valor Pago", ylab="Regiões",
boxwex=0.5, col="lightblue",
notch=TRUE, notchwidth=0.5,
outline=FALSE)
# Adiciona a legenda
legend("topright", legend="Valor Pago",
col="lightblue", lty=1, box.lty=0)
Esse trabalho teve o intuito de realizar uma análise exploratória do pagamento de bolsas através da CNPq no ano de 2022, utilizando o filtre das bolsas que possuem o valor entre R$100 e R$20000 com o intuito de entender quais são as tendências de envio de bolsas por Instituições, Regiões, Modalidade de Pesquisa e entre outros.
O Data Frame utilizado sofreu algums filtros com o intuito de evitar problemas na hora de analisar cada dado, como por exemplo a remção de linhas que continham NA em seus valores. Ao final a massa dados ficou com 10 colunas/variáveis e um total de 180245 bolsas pagas no ano de 2022.
A média das bolsas pagas foi R$3055, enquanto o valor de bolsa que mais se repetiu foi 400. Sendo assim, conseguimos concluir que o valor das bolsas é assimétrica à direita devido aos outliers que puxam a média e a mediana para cima com os altos valores das bolsas em alguns casos.
Das 37 modalidades que estavam dentro dos dados utilizados, a que mais recebeu bolsa foi a Iniciação Científica(IC), juntamente com Iniciacao Cientifica Junior(ICJ) , totalizando 112551 bolsas distribuídas para essas duas midalidades. Também foi possível visualizar que a Área que mais recebeu bolsas em 2022 foi Ciencias Exatas e da Terra recebendo um total de R$93313340.22.
Já pela perspectiva das regiões, a região Sudeste recebeu quase a mesma quantidade de bolsas do que todas as outras 4 regiões juntas, sendo quase 50% de todas as bolsas. Enquanto só a região Sudeste recebeu 89337 bolsas, as bolsas enviadas para a região Nordeste, Sul, Centro-Oeste e Norte soamadas dão 90779. A região que menos recebeu foi a região Norte, com apenas 9062 bolsas recebdias.
Esse cenário é comprovado quando vemos que 6 das 10 Instituições que maias receberam bolsas sendo da região Sudeste. A instituição que recebeu a maior quantidade de bolsas foi a Instituto Nacional de Matematica Pura e Aplicada - IMPA (RJ), seguidoa por Universidade de Sao Paulo - USP e Universidade Federal do Rio de Janeiro - UFRJ.
Também foram distribuídas bolsas de pesquisa para fora do país. No total foram t8 instituições de 21 países que receberam investimentos da CNPq, onde os principas países foram: Estados Unidos, Portugal e Escócia e instituição do exterior que mais recebeu investimento foi a Universidade do Porto - U.PORTO.