Introdução

Sobre a CNPq

O que é?

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.

História

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.

Dificuldades enfrentadas

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:

  • Redução no orçamento: O orçamento destinado à pesquisa tem sido constantemente reduzido, comprometendo a capacidade da agência de financiar projetos e programas de pós-graduação.
  • Falta de recursos para o pagamento de bolsas: . Muitos bolsistas têm enfrentado atrasos no recebimento das bolsas, afetando a continuidade de suas pesquisas e estudos.
  • Desmonte de programas e projetos: ários programas e projetos importantes foram desmontados ou tiveram seus recursos reduzidos.
  • Pandemia de COVID-19: a pandemia de COVID-19 afetou significativamente a realização de pesquisas, pois muitos projetos foram interrompidos ou tiveram que ser adaptados para serem realizados remotamente.

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

Orçamento para o ano de 2022.

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:

Sobre os dados

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.

Pacotes Requeridos

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.

Preparação dos dados

Nessa seção você encontrará com detalhes as operações que foram realizadas para normalizar o dataset.

Carregamento de Dados

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.

Tratamento inicial da base:

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.

Colunas removidas

Algumas colunas foram removidas por não apresentar relevância para a análise dos dados. Foram estas:

  • Ano_Referencia: A Coluna Ano_Referencia não se fez necessária, visto que a base trata apenas do pagamento de bolsas no ano de 2022.
  • Processo: A coluna Processo foi excluída da base, pois esta coluna apenas apresenta o número do Processo de pagamento da Bolsa e não interferir nas analises.]`
  • Beneficiario: Essa coluna traz o nome das pessoas beneficiadas, porém não é um dado muito importante para as analises que pretendo fazer
  • Linha_Fomento: As colunas Linha_Fomento e Modalidade retratam o mesmo dado. Devido a isso, preferi deixar a coluna Modalidade e remover a coluna Linha_Fomento
  • Categoria: Poucas linhas possuem a coluna Categoria preenchida, por isso nnão se faz necessário utilziá-la.
  • Nome_Chamada: Esta coluna não possui dados relevantes para a pesquisa.
  • Programa_CNPq: Essa coluna também apresenta um dado parecido a coluna Modalidade, por isso não se faz necessária.
  • Instituição: A coluna Instituição possui o mesmo dado da coluna Insttuição_Destino. Por isso preferi deixar a coluna Instituição_Destino.
  • UF: Essa coluna traz apenas a sigla do estado, porém a instituição de ensino já diz de qual estado ela pertnce.
  • Pais_Origem: Por se tratar de bolsas de pesquisas da CNPq, o único país destino possível é o Brasil.
  • Sigla_Instituicao_Macro: Os dados dessa coluna já se encontram na coluna Sigla_Instituicao.
  • Sigla_UF_Destino: Essa coluna traz apenas a sigla do estado, porém a instituição de ensino já diz de qual estado ela pertnce.
  • Titulo_Projeto: Esse dado não é relevante para a minha pesquisa.
  • Palavra_Chave: Esse dado não é relevante para a minha pesquisa.
  • UO: Nesta coluna, todas as linhas mostram apenas o valor “CONSELHO NAC.DE DESENV.CIENTIF.E TECNOLOGICO”
  • Natureza_Despesa: Não consegui compreender toralmente o que este dado representa, pois muitas linhas possuem o mesmo valor.

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.

Colunas Inicio_Processo e Termino_Processo

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)

Colunas Instituicao_Destino e Sigla_Instituicao

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"

Coluna Regiao.

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" )

Coluna Pais_Destino

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)

Coluna Valor_Pago

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

Conversão para Fator

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

Resultado final

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:

  • Inicio_Processo: Tipo Nume que representa quando se iniciou o Processo de pagamento da bolsa.
  • Termino_Processo: Tipo Numeric que representa quando se concluiu o Processo de pagamento da bolsa.
  • Modalidade: Tipo Factor com 37 levels que representa qual a modalidade daquela bolsa: Mestrado, Doutorado, IC e etc.
  • Grade_Area: Tipo Factor com 11 levels que representam qual a grande área de estudo do trabalho que recebeu a bolsa: Ciencias Biologicas, Ciencias Sociais Aplicadas, Engenharias e etc.
  • Area: Tipo Factor com 113 levels que representam qual a área dentro da grande área de estudo do trabalho que recebeu a bolsa: Bioquimica, Direito, Engenharia Civil e etc.
  • Subrea: Tipo Factor com 1263 levels que representam qual a subárea dentro da área de estudo do trabalho que recebeu a bolsa: Biologia Molecular, Direito Privado, Estruturas e etc.
  • Instituicao_Destino: Tipo Character que representa qual a faculdade do aluno que recebeu a bolsa.
  • Regiao: Tipo Factor com 6 levels que representam qual a Região da Instituição do aluno que recebeu a bolsa.
  • Pais_Destino: Tipo Factor com 22 que representam o país da Instituição que recebeu a bolsa.
  • Valor_Pago: Tipo Numeric que representa o valor de cada bolsa paga pela CNPq.

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

Análise exploratória dos dados

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.

Período de Início e Término de Processos

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?

Inicio_Processo mais antigo e mais recente

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"

Termino_Processo mais recente e mais longevo

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"

Análise dos dados por ano

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)
)

Processos iniciados:

# 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)

Processos finalizados:

# 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)

Processos iniciados em 2022

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)

Análise por Modalidade

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

Modalidades mais utilizadas

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

Divisão de valores por Modalidade.

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'))

Análise por Áreas

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"

Distribuição de bolsas por Áreas

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.

Distribuição de valores por Áreas

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

Análise por Instituições Destinos (Brasileiras)

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

Análise das bolsas por Regiao

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)))

Análise das bolsas pagas fora do Brasil

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.

Distribuição de bolsas no Exterior

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:

Análise dos Valores Pagos

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

Desvio Absoluto Médio

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

Moda

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.

Gráfico de Densidade e Histograma

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))

Gráfico de caixa dos valores pagos

# 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)

Gráfico de caixa dos valores pagos por Região

# 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)

Conclusão

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.