Objetivo: O objetivo do estudo é verificar se existe correlação entre a produção de aplicativos e a diversidade de formação de professores de programas de pós gradução brasileiros.
Hipótese: A diversidade de formação esta correlacionada com a produção de aplicação em um recorte temporal de 2013 até 2016.
Recorte de análise: Todos os programas que produziram ao 1 aplicativo de 2013 até 2016.
Contexto dos programas brazileiros de pós gradução: Quantos programas existiam em 2016 por (GRÁFICO), Por Instituição público e privada, Por grande área, por conceito.
Contexto dos programas que produzem aplicativos: Por Estado, Por Instituição público e privada, Por grande área,por conceito, Nuvem de termos DS_FINALIDADE (TODOS GRÁFICOS).
Os dados são provenientes das seguintes fonte:
Abaixo o código para importar os dados que estão em formato CSV.
#Import Data
library(readr)
setwd("~/Artigo-da-tese-de-vivian-master2")
Apps <- read_delim("Dados dos aplicativos 2013-2016.csv",";",escape_double = FALSE, trim_ws = TRUE)
## Parsed with column specification:
## cols(
## .default = col_character(),
## CD_CONCEITO_PROGRAMA = col_double(),
## AN_BASE_PRODUCAO = col_double(),
## ID_ADD_PRODUCAO_INTELECTUAL = col_double(),
## ID_TIPO_PRODUCAO = col_double(),
## ID_SUBTIPO_PRODUCAO = col_double(),
## IN_GLOSA = col_double()
## )
## See spec(...) for full column specifications.
Professors <- read_delim("Docentes.csv", ";", escape_double = FALSE, trim_ws = TRUE)
## Warning: Missing column names filled in: 'X32' [32]
## Parsed with column specification:
## cols(
## .default = col_character(),
## seq_pessoa_fisica = col_double(),
## seq_area_basica = col_double(),
## nro_nota_doutorado = col_double(),
## nro_nota_mestrado = col_double(),
## nro_nota_mestrado_prof = col_double(),
## seq_tipo_categoria_vinculo = col_double(),
## ano_inicio_formacao = col_double(),
## ano_fim_formacao = col_double(),
## cod_area_curso_formacao = col_double(),
## X32 = col_logical()
## )
## See spec(...) for full column specifications.
## Warning: 6 parsing failures.
## row col expected actual file
## 137219 cod_area_curso_formacao a double Engenharia de produtos Naturais 'Docentes.csv'
## 137219 X32 1/0/T/F/TRUE/FALSE Engenharia de Materiais e Metalúrgica 'Docentes.csv'
## 137220 cod_area_curso_formacao a double Engenharia de produtos Naturais 'Docentes.csv'
## 137220 X32 1/0/T/F/TRUE/FALSE Engenharia de Materiais e Metalúrgica 'Docentes.csv'
## 137221 cod_area_curso_formacao a double Engenharia de produtos Naturais 'Docentes.csv'
## ...... ....................... .................. ...................................... ..............
## See problems(...) for more details.
Graduate_2016 <- read_delim("Programas PPG 2016.csv",";", escape_double = FALSE, trim_ws = TRUE)
## Parsed with column specification:
## cols(
## .default = col_character(),
## AN_BASE = col_double(),
## CD_AREA_AVALIACAO = col_double(),
## CD_CONCEITO_PROGRAMA = col_double(),
## ANO_INICIO_PROGRAMA = col_double(),
## ID_ADD_FOTO_PROGRAMA_IES = col_double(),
## ID_ADD_FOTO_PROGRAMA = col_double()
## )
## See spec(...) for full column specifications.
Essas são as variáveis e funções criadas para realizar a limpeza e organização dos dados
Variável Area_Form_Prof_prog: Tabulação de quantidade de área de formação por programa.
Variável Perm_Prof_prog: Tabulação de quatidade de professores por programas. Filtra somente os professores permanentes.
Variável Tidy_frame: Concatena as variáveis 1 e 2.
Variável App_prog: Tabulação dos aplicativos por programa.
Variável Tidy_frame2: Concatena Aplicativos com as variáveis anteriores.
Variável Metric_frame: Calcula as métricas da tese da Vivian: 6.1: Div_Prof_Perm: Diversidade de formação dos professores permanentes (DFPP); 6.2: Prod_App_prof: Produtividade de aplicativo por professores permanentes (PAPP).
Variável Metric_frame2: concatena todas as variáveis anteriores com os metadados dos programas de pós-graduação. 7.1 Foi verificado que só ha um nível nesta variável (Em funcionamento). Há diversas linhas sem dado. Verificar como tratar isso.
# Function
# Transform vector into a data frame with frequency of levels and proportion
.Unianalysis = function (x) {
y <- as.data.frame(as.table(table(x)))
y <- mutate(y, proportion = prop.table(y$Freq) *100)#Proportion
y <- arrange(y, desc(y$Freq))
return(y)
}
#1. Area of Professors per program
Area_Form_Prof_prog <-
Professors %>%
filter(seq_tipo_categoria_vinculo == 3)%>%
group_by(cod_programa) %>%
summarise(Area_Formacao_Prof = n_distinct(area_curso_formacao)) %>%
arrange(desc(Area_Formacao_Prof))
dim(Area_Form_Prof_prog )
## [1] 3867 2
DT::datatable(Area_Form_Prof_prog)
#2. Permanents Professors per Program
Perm_Prof_prog <-
Professors %>%
filter(seq_tipo_categoria_vinculo == 3)%>%
group_by(cod_programa) %>%
summarise(Professores_Perm = n_distinct(nro_id_cnpq)) %>%
arrange(desc(Professores_Perm))
dim(Perm_Prof_prog)
## [1] 3867 2
DT::datatable(Perm_Prof_prog)
#3. Une codigo de programas com quantidade de professores e quantidade de área de formação
Tidy_frame <- merge(Perm_Prof_prog, Area_Form_Prof_prog, all = TRUE)
dim(Tidy_frame)
## [1] 3867 3
DT::datatable(Tidy_frame)
#4. Apps per program
App_prog <-
Apps %>%
group_by(CD_PROGRAMA_IES)%>%
summarise(Apps = n_distinct(ID_ADD_PRODUCAO_INTELECTUAL)) %>%
arrange(desc(Apps))
dim(App_prog)
## [1] 1126 2
DT::datatable(App_prog)
#5. Concatena Aplicativos com as variáveis anteriores
Tidy_frame2 <- merge(App_prog, Tidy_frame, by.x="CD_PROGRAMA_IES", by.y="cod_programa", all = TRUE)
DT::datatable(Tidy_frame2)
## 6. Variável Calcula as métricas da tese da Vivian
## Div_Prof_Perm: Diversidade de formação dos professores permanentes (DFPP)
## Prod_App_prof: Produtividade de aplicativo por professores permanentes (PAPP)
Metric_frame <-
Tidy_frame2 %>%
group_by(CD_PROGRAMA_IES) %>%
mutate(Div_Prof_Perm = Area_Formacao_Prof / Professores_Perm,
Prod_App_prof = Apps / Professores_Perm)
dim(Metric_frame)
## [1] 4011 6
DT::datatable(Metric_frame)
## 7. Variável concatena todas as variáveis anteriores com os metadados dos programas de pós-graduação
Metric_frame2 <- merge(Metric_frame,
Graduate_2016,
by ="CD_PROGRAMA_IES", all = TRUE)
dim(Metric_frame2)
## [1] 4387 35
DT::datatable(Metric_frame2)
## Warning in instance$preRenderHook(instance): It seems your data is too
## big for client-side DataTables. You may consider server-side processing:
## https://rstudio.github.io/DT/server.html
Os graficos e tabelas a seguir apresentam o contexto dos programas de pós graduação no Brasil, em uma perspectiva geográfica.
Variável Regiao_hab_prog e gráfico: apresenta a distribuição dos programas de pós-graduação no Brasil por região. A tabela apresenta também os dados dos habitantes por região (Habitantes_p_Regiao), retirado do site https://www.ibge.gov.br/estatisticas/sociais/populacao/17374-indicadores-sociais-minimos.html?=&t=resultados.
Variável UF_prog, gráfico e tabela: Quantidade de programas de pós-graduação no Brasil por Estado
#Funções para gráficos
#Fun Plot
.Plot_FunPlot = function(x,y) {
fan.plot(x$Freq,
max.span=pi,
labels=paste(x$x, x$Freq, sep=": "),
main=y,ticks=360)
}
# Painel contexto - Região, habitantes por região, programas por região, programas por habitantes por região
#1. Graduate per Region
Regiao_prog <-.Unianalysis(Metric_frame2$NM_REGIAO)
Regiao_hab_prog <- mutate(Regiao_prog,
Habitantes_p_Regiao = rbind(12342627, 11296224, 46995094, 24546983, 70190565))
Regiao_hab_prog <- mutate(Regiao_hab_prog, prop_Habitantes_p_Regiao = prop.table(Regiao_hab_prog$Habitantes_p_Regiao) * 100 )
DT::datatable(Regiao_hab_prog)
x <- barplot(Regiao_hab_prog$proportion,
names.arg= Regiao_hab_prog$x,
ylab="Percentual",
ylim = c(0, 50),
las = 2,
col=rainbow(8),
main="Proporção de PPG por região e habi. por região",border="red")
lines(x, Regiao_hab_prog$prop_Habitantes_p_Regiao, ylim= c(0,100))
points(x, Regiao_hab_prog$prop_Habitantes_p_Regiao, ylim= c(0,100))
x
## [,1]
## [1,] 0.7
## [2,] 1.9
## [3,] 3.1
## [4,] 4.3
## [5,] 5.5
#2. Graduate per State
UF_prog <- .Unianalysis(Metric_frame2$SG_UF_PROGRAMA)
barplot(UF_prog$Freq,
names.arg=UF_prog$x,
xlab="Estados brasileiros",
ylab="Quantidade de programas",
ylim = c(0, 1000),
las = 2,
col=rainbow(8),
main="5. Programas de Pós Graduação por Estado",border="red")
## 1.2 Tabela de programas por Estado
DT::datatable(UF_prog)
Variável Pub_Priv_prog e gráfico: Quantidade de programas de pós-graduação no Brasil por instituição pública e privada.
Variável Tipo_prog e gráfico: Quantidade de programas de pós-graduação no Brasil por Tipo.
Variável Conceito_prog e gráfico: Quantidade de programas de pós-graduação no Brasil por conceito CAPES.
Variável Area_Avalia_prog e tabela: apresenta a distribuição dos programas de pós-graduação no Brasil por área de avaliação da Capes.
Variável Ano_prog e tabela: apresenta a distribuição dos programas de pós-graduação no Brasil por no de início do programa.
#1. Graduate per Public or Private
Pub_Priv_prog <-.Unianalysis(Metric_frame2$DS_DEPENDENCIA_ADMINISTRATIVA)
.Plot_FunPlot(Pub_Priv_prog, "2. Programa por insti. Publica ou Privada")
#2. per Type
Tipo_prog <-.Unianalysis(Metric_frame2$NM_GRAU_PROGRAMA)
barplot(Tipo_prog$Freq,
names.arg=paste(as.integer(Tipo_prog$proportion), "%"),
xlab="Percentual",
ylab="Quantidade de programas",
legend=Tipo_prog$x,
col=rainbow(8),
main="3. Programas de Pós Graduação por tipo",border="red")
#3. Graduate per Capes Score
Conceito_prog <- .Unianalysis(Metric_frame2$CD_CONCEITO_PROGRAMA)
barplot(Conceito_prog$Freq,
names.arg=Conceito_prog$x,
xlab="Conceito Capes",
ylab="Quantidade de programas",
legend= paste(as.integer(Conceito_prog$proportion), "%"),
ylim = c(0, 2000),
col=rainbow(8),
main="4. Programas de Pós Graduação por Conceito Capes",border="red")
#4. Graduate per field
Area_Avalia_prog <- .Unianalysis(Metric_frame2$NM_AREA_AVALIACAO)
DT::datatable(Area_Avalia_prog)
#5. Programa por ano
Ano_prog <- .Unianalysis(Metric_frame2$ANO_INICIO_PROGRAMA)
Ano_prog <- arrange(Ano_prog, desc(Ano_prog$Freq))
DT::datatable(Ano_prog)
Falta documentar e colocar nos graficos
#Graduate Diversity and Apps production indicators per field
Ano_inicio_prog<-Metric_frame2 %>%
group_by(ANO_INICIO_PROGRAMA) %>%
summarise(Prodessores_Perm = sum(Professores_Perm),
Prod_App_prof = sum(Prod_App_prof),
Div_Prof_Perm = sum(Div_Prof_Perm))%>%
arrange(ANO_INICIO_PROGRAMA)
DT::datatable(Ano_inicio_prog)
Conceito_prog<-Metric_frame2 %>%
group_by(CD_CONCEITO_PROGRAMA) %>%
summarise(media_Div_Prof_Perm = mean(Div_Prof_Perm),
media_Prod_App_prof = mean(Prod_App_prof))%>%
arrange(CD_CONCEITO_PROGRAMA)
DT::datatable(Conceito_prog)
Area_prog<-Metric_frame2 %>%
group_by(NM_AREA_CONHECIMENTO) %>%
summarise(media_Div_Prof_Perm = mean(Div_Prof_Perm),
media_Prod_App_prof = mean(Prod_App_prof))%>%
arrange(NM_AREA_CONHECIMENTO)
DT::datatable(Area_prog)
par(mfrow=c(2,2))
Falta documentar e colocar nos graficos
Ver gráficos http://rstudio-pubs-static.s3.amazonaws.com/333174_2dd6bca1e4cc43159f088229bb76633e.html
#Histogram
histogram=function(x){
hist(x,prob=T)
lines(density(x),col="red")
curve(dnorm(x,mean(x), sd(x)),add=T,col="blue")
}
## Diversity and Apps production indicators
#Graduate Diversity and Apps production indicators per field
Ano_inicio_prog<-Metric_frame2 %>%
group_by(ANO_INICIO_PROGRAMA) %>%
summarise(media_Div_Prof_Perm = mean(Div_Prof_Perm),
media_Prod_App_prof = mean(Prod_App_prof))%>%
arrange(ANO_INICIO_PROGRAMA)
DT::datatable(Ano_inicio_prog)
Conceito_prog<-Metric_frame2 %>%
group_by(CD_CONCEITO_PROGRAMA) %>%
summarise(media_Div_Prof_Perm = mean(Div_Prof_Perm),
media_Prod_App_prof = mean(Prod_App_prof))%>%
arrange(CD_CONCEITO_PROGRAMA)
DT::datatable(Ano_inicio_prog)
Area_prog<-Metric_frame2 %>%
group_by(NM_AREA_CONHECIMENTO) %>%
summarise(soma_Div_Prof_Perm = sum(Div_Prof_Perm),
soma_Prod_App_prof = sum(Prod_App_prof))%>%
arrange(NM_AREA_CONHECIMENTO)
DT::datatable(Area_prog)
Regiao_prog<-Metric_frame2 %>%
group_by(NM_REGIAO) %>%
summarise(soma_Div_Prof_Perm = sum(Div_Prof_Perm),
soma_Prod_App_prof = sum(Prod_App_prof))%>%
arrange(NM_REGIAO)
DT::datatable(Area_prog)