Fontes de Dados

Para coleta das informações de estudantes de graduação e de docentes, utilizamos os dados do Censo da Educação Superior de 2022. Para os dados de pós-graduação, utilizamos (?????).

Em cada uma das abas abaixo são apresentados os códigos utilizados para computar as informações solicitadas, bem como a metodologia utilizada para obter o Full Time Equivalent para docentes e discentes.

Resultados

Nesta atualização de dados, procuramos seguir as {diretrizes} apontadas pelo QS World Rankings, exceto na sugestão de fórmula para calcular o FTE:

\[ FTE = FT + \frac{PT}{3} \] Em que \(FT\) é a quantidade observada de indivíduos em tempo integral e \(PT\) é a quantidade observada de indivíduos em tempo parcial.

Nossa definição para aluno em tempo integral \((=1)\) corresponde ao discente presencial matriculado no turno integral, enquanto os demais discentes são incluídos na categoria tempo parcial \((=0.5)\).

Analogamente, para os docentes a ideia é a mesma: aqueles que trabalham em tempo parcial são contados como 0.5, enquanto os docentes em tempo integral são contabilizados como 1.

Em cada um dos tópicos abaixo, apresentamos a metodologia, os resultados e a necessidade de novos dados para preenchimento completo do ranking.

Faculty Staff

Primeiramente, vamos abrir os dados de docentes utilizados no Censo da Educação Superior relativos a 2022 e verificar a distribuição por regime de trabalho. Tomamos como critério a exclusão dos docentes visitantes, além disso, há 70 docentes que não possuem registro do regime de trabalho. Estes também deverão ser excluídos do contagem. Neste ponto, já temos um total de 328 docentes em tempo parcial e 2651 docentes em tempo integral:

# QS World University Rankings - dados de 2022

library(readr)
library(dplyr)
library(readxl)
library(knitr)
library(countries)

#setwd("C:/Users/kassi/workspace/QS World University Rankings/Atualizacao_2022/")

# abrindo dados do censo 
dados_docentes_2022 <- read_delim("dados/relatorio_detalhado_docente_ies_580_20230728_134940 (2).csv", 
                                  delim = ";", escape_double = FALSE, 
                                  locale = locale(encoding = "ISO-8859-1"), 
                                  trim_ws = TRUE)

# Faculty Staff -----------------------------------------------------------

# Regra para o FULL TIME: se o regime de trabalho for tempo parcial = 0.5
dados_docentes_2022 %>% distinct(NU_CPF, .keep_all = TRUE) %>%
  filter(DOCENTE_VISITANTE=="Não") %>%
  mutate(FULL_TIME = ifelse(REGIME_TRABALHO=="Tempo Parcial", 0.5, 1)) ->
  dados_docentes_2022

# existem 70 docentes sem regime de trabalho preenchido
dados_docentes_2022 %>% select(FULL_TIME) %>% table(useNA = "ifany") %>% kable
FULL_TIME Freq
0.5 328
1 2651
NA 70

Os docentes em tempo integral podem ser “com dedicação exclusiva” ou “sem dedicação exclusiva”:

# numero total Full Time (nao eh o equivalente)
dados_docentes_2022 %>% group_by(REGIME_TRABALHO) %>% 
  summarise(Totais = n()) %>% kable
REGIME_TRABALHO Totais
Tempo Parcial 328
Tempo integral com DE 2208
Tempo integral sem DE 443
NA 70

Agora, criamos uma nova coluna para registrar os valores 1 ou 0.5, de acordo com o regime de trabalho do docente. Em seguida computamos as somas por sexo. Assim, obtemos o FTE por sexo para os docentes.

Para o sexo masculino, temos:

# contabilizando o FTE 
dados_docentes_2022$FULL_TIME %>% sum(na.rm = TRUE) -> faculty_staff_FTE

# por sexo

dados_docentes_2022 %>% group_by(REGIME_TRABALHO, SEXO) %>% 
  summarise(Totais = n(), fte=sum(FULL_TIME)) -> docentes_2022_sexo 

docentes_2022_sexo %>% filter(SEXO=="Masculino") %>% kable 
REGIME_TRABALHO SEXO Totais fte
Tempo Parcial Masculino 179 89.5
Tempo integral com DE Masculino 1124 1124.0
Tempo integral sem DE Masculino 210 210.0
NA Masculino 35 NA

Para o sexo feminino:

docentes_2022_sexo %>% filter(SEXO=="Feminino") %>% kable
REGIME_TRABALHO SEXO Totais fte
Tempo Parcial Feminino 149 74.5
Tempo integral com DE Feminino 1084 1084.0
Tempo integral sem DE Feminino 233 233.0
NA Feminino 35 NA

Para os docentes estrangeiros, basta filtrar a base de dados onde a nacionalidade é diferente de “Brasileira”. Novamente, a partir do regime de trabalho, computamos o total headcount e o FTE:

# international

dados_docentes_2022 %>% 
  mutate(ESTRANGEIRO=ifelse(NOME_NACIONALIDADE!="Brasileira", "Sim", "Não")) ->
  dados_docentes_2022


dados_docentes_2022 %>% group_by(ESTRANGEIRO, REGIME_TRABALHO) %>% 
  summarise(Total = n(), fte = sum(FULL_TIME)) %>% kable
ESTRANGEIRO REGIME_TRABALHO Total fte
Não Tempo Parcial 328 164
Não Tempo integral com DE 2189 2189
Não Tempo integral sem DE 439 439
Não NA 70 NA
Sim Tempo integral com DE 19 19
Sim Tempo integral sem DE 4 4

Finalmente, para preenchimento do ranking, temos para os docentes os seguintes dados:

Full Time Part Time HC FTE
Faculty Staff 2651 328 2979 2815
Faculty Staff Male 1334 179 1513 1423,5
Faculty Staff Female 1317 149 1466 1391,5
International Faculty Staff 23 0 23 23

Students - Undergraduate

Para os estudantes, temos três casos:

  1. Estudantes vinculados apenas em 2022.1;
  2. Estudantes vinculados apenas em 2022.2;
  3. Estudantes vinculados em 2022.1 e 2022.2.

Assim, o primeiro passo é obter todos os números de CPF que aparecem no ano de 2022.

Em seguida, obtemos os CPFs dos alunos matriculados apenas em 2022.1 ou 2022.2 e utilizamos para separar os três conjuntos de dados.

dados_alunos <- readRDS("./dados/base_censo_2013_2022_V2.rds")

# Students - Undergraduate ------------------------------------------------

dados_alunos %>% filter(ANO=="2022") -> dados_alunos_2022

# cpf dos alunos que aparecem em pelo menos um semestre 
dados_alunos_2022 %>% select(NU_CPF) %>% unique -> CPFs_2022 

# cpf dos alunos que aparecem em 2022.1
dados_alunos_2022 %>% filter(PERIODO_REFERENCIA == 1) %>% select(NU_CPF) %>%
  unique -> CPFs_2022.1

# cpf dos alunos que aparecem em 2022.2
dados_alunos_2022 %>% filter(PERIODO_REFERENCIA == 2) %>% select(NU_CPF) %>%
  unique -> CPFs_2022.2

# dim(CPFs_2022)
# dim(CPFs_2022.1)
# dim(CPFs_2022.2)

# CPFs que aparecem em dois semestres
intersect(CPFs_2022.1, CPFs_2022.2) -> alunos_2_semestres

# CPFs que aparecem somente em 2022.1
setdiff(CPFs_2022.1, alunos_2_semestres) -> alunos_so_2022.1

# CPFs que aparecem somente em 2022.2
setdiff(CPFs_2022.2, alunos_2_semestres) -> alunos_so_2022.2 

Utilizando os CPFs nos três casos, podemos agora criar em cada dataframe a coluna FULL_TIME guardando o FTE de cada aluno. Novamente, atribuimos o valor 1 para o estudantes em turno integral e 0.5 para os demais, excluindo os alunos EaD do cálculo.

# agora, faz o filtro

# testar com 0.5 e 1 mesmo se ele passou somente um semestre 

# apenas 2022.1
dados_alunos_2022 %>% filter(NU_CPF %in% alunos_so_2022.1$NU_CPF,
                             VINCULADO=="Sim", TURNO!="Ead") %>% 
  mutate(FULL_TIME = ifelse(TURNO!="Integral", 0.5, 1)) -> dados_alunos_so_2022.1
  
# apenas 2022.2
dados_alunos_2022 %>% filter(NU_CPF %in% alunos_so_2022.2$NU_CPF, VINCULADO=="Sim",
                             TURNO!="Ead") %>% 
  mutate(FULL_TIME = ifelse(TURNO!="Integral", 0.5, 1)) -> dados_alunos_so_2022.2

# ambos
dados_alunos_2022 %>% filter(NU_CPF %in% alunos_2_semestres$NU_CPF, VINCULADO=="Sim",
                             TURNO!="Ead") %>% 
  distinct(NU_CPF, .keep_all = TRUE) %>% 
  mutate(FULL_TIME = ifelse(TURNO!="Integral", 0.5, 1))  -> dados_alunos_ambos

Agora, utilizamos a coluna FULL_TIME anteriormente criada para computar o FTE, o número de discentes em tempo integral e o número de discentes em tempo parcial. Vamos somar os totais de alunos FTE para os presentes em apenas um semestre e os presentes em ambos os semestres:

# FTE
dados_alunos_so_2022.1 %>% select(FULL_TIME) %>% sum +
dados_alunos_so_2022.2 %>% select(FULL_TIME) %>% sum +
dados_alunos_ambos %>% select(FULL_TIME) %>% sum
## [1] 25660

Utilizamos o mesmo procedimento para obter a quantidade de alunos de graduação em tempo integral, somando os totais de alunos (não o FTE):

# Full Time
(dados_alunos_so_2022.1 %>% group_by(TURNO) %>% summarise(Total=n()) %>% filter(TURNO=="Integral"))$Total +
(dados_alunos_so_2022.2 %>% group_by(TURNO) %>% summarise(Total=n()) %>% filter(TURNO=="Integral"))$Total +
(dados_alunos_ambos %>% group_by(TURNO) %>% summarise(Total=n()) %>% filter(TURNO=="Integral"))$Total
## [1] 16691

FInalmente, a quantidade de alunos de graduação em tempo parcial:

# Part Time
((dados_alunos_so_2022.1 %>% group_by(TURNO) %>% summarise(Total=n()) %>% filter(TURNO!="Integral"))$Total +
(dados_alunos_so_2022.2 %>% group_by(TURNO) %>% summarise(Total=n()) %>% filter(TURNO!="Integral"))$Total +
(dados_alunos_ambos %>% group_by(TURNO) %>% summarise(Total=n()) %>% filter(TURNO!="Integral"))$Total) %>% sum
## [1] 17938

Para computar o número de estudantes de graduação estrangeiros, realizamos o mesmo procedimento, filtrando os alunos cujo país de origem é diferente de “Brasil”.

  • Estrangeiros na graduação apenas em 2022.1:
# undergraduate international students
dados_alunos_so_2022.1 %>% filter(NOME_PAIS_ORIGEM != "Brasil") %>% 
  group_by(TURNO) %>% summarise(Total=n(), FTE=sum(FULL_TIME)) %>% kable
TURNO Total FTE
Integral 3 3.0
Matutino 1 0.5
Noturno 1 0.5
  • Estrangeiros na graduação apenas em 2022.2:
dados_alunos_so_2022.2 %>% filter(NOME_PAIS_ORIGEM != "Brasil") %>% 
  group_by(TURNO) %>% summarise(Total=n(), FTE=sum(FULL_TIME)) %>% kable
TURNO Total FTE
Integral 3 3.0
Noturno 1 0.5
  • Estrangeiros na graduação em ambos os semestres:
dados_alunos_ambos %>% filter(NOME_PAIS_ORIGEM != "Brasil") %>% 
  group_by(TURNO) %>% summarise(Total=n(), FTE=sum(FULL_TIME)) %>% kable
TURNO Total FTE
Integral 35 35
Matutino 2 1
Noturno 8 4

Os totais para estudantes internacionais na graduação: somando as quantidades das tabelas acima, temos 47.5 alunos estrangeiros equivalente, 41 alunos em tempo integral e 13 em tempo parcial.

  • Quantidade de alunos de graduação da UFPE em mobilidade internacional em tempo integral: filtramos os dados onde a variável MOB_ACAD_PAISDESTINO está preenchida. Tal como antes, realizamos o procedimento para alunos presentes em apenas um dos semestres e em ambos os semestres.
# undergraduate Exchange Student - Outbound

# Full time
dados_alunos_2022 %>% filter(!is.na(MOB_ACAD_PAISDESTINO)) %>% 
  distinct(NU_CPF, CODIGO_CURSO, .keep_all = TRUE) %>% 
  select(TURNO) %>% 
  filter(TURNO=="Integral") %>% nrow 
## [1] 66
dados_alunos_so_2022.1 %>% filter(!is.na(MOB_ACAD_PAISDESTINO)) %>% 
  distinct(NU_CPF, CODIGO_CURSO, .keep_all = TRUE) %>% select(TURNO) %>% 
  filter(TURNO=="Integral") %>% nrow 
## [1] 0
dados_alunos_so_2022.2 %>% filter(!is.na(MOB_ACAD_PAISDESTINO)) %>% 
  distinct(NU_CPF, CODIGO_CURSO, .keep_all = TRUE) %>% select(TURNO) %>% 
  filter(TURNO=="Integral") %>% nrow 
## [1] 0
  • Quantidade de alunos de graduação da UFPE em mobilidade internacional em tempo parcial:
# Partial Time
dados_alunos_2022 %>% filter(!is.na(MOB_ACAD_PAISDESTINO)) %>% 
  distinct(NU_CPF, CODIGO_CURSO, .keep_all = TRUE) %>% select(TURNO) %>% 
  filter(TURNO!="Integral") %>% nrow
## [1] 18
  • FTE de alunos de graduação da UFPE em mobilidade internacional:
# FTE
dados_alunos_2022 %>% filter(!is.na(MOB_ACAD_PAISDESTINO)) %>% 
  distinct(NU_CPF, CODIGO_CURSO, .keep_all = TRUE) %>% 
  mutate(FULL_TIME = ifelse(TURNO=="Integral", 1, 0.5)) %>% select(FULL_TIME) %>%
  sum
## [1] 75

Em relação ao número de graduandos estrangeiros na UFPE em programas de mobilidade (Undergraduate Exchange Students – Inbound), não há disponibilidade destes dados no Censo da Educação Superior. Necessitamos de outra fonte de dados para obter esta informação.

Finalmente, para o item Students - Undergraduate, fornecemos os seguintes dados:

Full Time Part Time HC FTE
Undergraduate Students 16691 17938 34629 25660
Undergraduate International Students 41 13 54 47,5
Undergraduate Exchange Students – Inbound
Undergraduate Exchange Students – Outbound 66 18 84 75

Students - Graduate/Postgraduate

Para pós-graduação, consideramos os matriculados em cursos de mestrado e doutorado. Consideramos todos os alunos da pós stricto sensu como tempo integral.

dados_pos <- read_excel("dados/relatorio_dados_enviados_coleta_publico (3) (1).xlsx")


dados_pos %>% filter(`Situação Discente` == "MATRICULADO", 
                     `Nível Discente` %in% c("Mestrado", "Doutorado")) %>% dim
## [1] 9596   18

Nesta seção, maior parte dos dados exige informações que não consta nas planilhas da pós-graduação:

  1. Número de alunos de pós-graduação estrangeiros (não há coluna de nacionalidade nos dados);
  2. Número de alunos de pós-graduação da UFPE em intercâmbio (sanduíche?) em outros países;
  3. Número de alunos de pós-graduação estrangeiros em intercâmbio na UFPE.
  • Dados coletados até o momento para esta seção:
Full Time Part Time HC FTE
Graduate/Postgraduate Students 9596 0 9596 9596
Graduate/Postgraduate International Students
Graduate/Postgraduate Exchange Inbound Students – Inbound
Graduate/Postgraduate Outbound Exchange Students

Students - Overall

Os dois primeiros dados solicitados são apenas a soma do total de estudantes e o total de estudantes internacionais.

  • Vamos computar o número de estudantes EaD (Students - Distance):
# FTE
dados_alunos_so_2022.1 %>% filter(TURNO=="EaD") %>% nrow +
dados_alunos_so_2022.2 %>% filter(TURNO=="EaD") %>% nrow +
dados_alunos_ambos %>% filter(TURNO=="EaD") %>% nrow 
## [1] 800

Os dados solicitados nesta seção que não temos são:

  1. International Students – distance
  2. Exchange Students – Inbound
  3. Exchange Students – Outbound

Students Demographics

Na planilha utilizada para os dados da pós-graduação, não temos a coluna SEXO, não sendo possível calcular estes dados.

Primeiramente vamos computar o número de estudantes FTE por sexo na graduação, obtendo os valores de 12974.5 discentes do sexo feminino e 12685.5 do sexo masculino. Note que a soma (25660) é o número de estudantes FTE informado anteriormente.

# FTE por sexo
(dados_alunos_so_2022.1 %>% group_by(SEXO) %>% 
  summarise(Total = n(), FTE = sum(FULL_TIME)))$FTE +
(dados_alunos_so_2022.2 %>% group_by(SEXO) %>% 
  summarise(Total = n(), FTE = sum(FULL_TIME)))$FTE +
(dados_alunos_ambos %>% group_by(SEXO) %>% 
  summarise(Total = n(), FTE = sum(FULL_TIME)))$FTE 
## [1] 12974.5 12685.5
  • O número de estudantes de graduação full time (integral) por sexo: 7984 (feminino) e 8707 (masculino):
# Full Time por sexo
(dados_alunos_so_2022.1 %>% group_by(TURNO, SEXO) %>% summarise(Total=n()) %>% 
   filter(TURNO=="Integral"))$Total +
(dados_alunos_so_2022.2 %>% group_by(TURNO, SEXO) %>% summarise(Total=n()) %>% 
   filter(TURNO=="Integral"))$Total +
(dados_alunos_ambos %>% group_by(TURNO, SEXO) %>% summarise(Total=n()) %>%
   filter(TURNO=="Integral"))$Total 
## [1] 7984 8707
  • O número de estudantes de graduação em tempo parcial por sexo: 9981 (feminino) e 7957 (masculino).
# Part Time por sexo
(dados_alunos_so_2022.1  %>% filter(TURNO!="Integral") %>% group_by(SEXO) %>% 
   summarise(Total=n()))$Total +
(dados_alunos_so_2022.2  %>% filter(TURNO!="Integral") %>% group_by(SEXO) %>% 
   summarise(Total=n()))$Total +
(dados_alunos_ambos  %>% filter(TURNO!="Integral") %>% group_by(SEXO) %>% 
   summarise(Total=n()))$Total  
## [1] 9981 7957
  • Total de nacionalidades: ao todo, os estudantes estrangeiros são oriundos dos 29 países listados abaixo. Note que há um registro de aluno da Antártida, que não está listada na planilha fornecida pelo QS. Assim, são 28 países e 53 alunos.
# total de nacionalidades
(dados_alunos_so_2022.1 %>% filter(NOME_PAIS_ORIGEM!="Brasil"))$NOME_PAIS_ORIGEM %>%
  table %>% as.data.frame -> internacional_2022.1
(dados_alunos_so_2022.2 %>% filter(NOME_PAIS_ORIGEM!="Brasil"))$NOME_PAIS_ORIGEM %>%
  table %>% as.data.frame -> internacional_2022.2
(dados_alunos_ambos %>% filter(NOME_PAIS_ORIGEM!="Brasil"))$NOME_PAIS_ORIGEM %>%
  table %>% as.data.frame -> internacional_ambos

internacional_2022.1 %>% bind_rows(internacional_2022.2) %>% 
  bind_rows(internacional_ambos) -> internacional 
  
colnames(internacional) = c("Origem", "Discentes")

internacional$Origem %>% unique
##  [1] Argentina                      Cabo Verde                    
##  [3] Costa Rica                     Honduras                      
##  [5] Suíça                          Estados Unidos                
##  [7] França                         Japão                         
##  [9] Alemanha                       Antártida                     
## [11] Benim                          Bolívia                       
## [13] Camarões                       Canadá                        
## [15] Colômbia                       Espanha                       
## [17] Gabão                          Guatemala                     
## [19] Guiné-Bissau                   Haiti                         
## [21] Israel                         Itália                        
## [23] Namíbia                        Peru                          
## [25] Portugal                       Reino Unido                   
## [27] República Democrática do Congo São Tomé e Príncipe           
## [29] Venezuela                     
## 29 Levels: Argentina Cabo Verde Costa Rica Honduras Suíça ... Venezuela
internacional$Origem <- internacional$Origem %>% 
  country_name(to="name_en")
  
internacional %>% group_by(Origem) %>% summarise(Discentes=sum(Discentes)) %>%
  kable
Origem Discentes
Antarctica 1
Argentina 3
Benin 3
Bolivia (Plurinational State of) 1
Cabo Verde 4
Cameroon 1
Canada 1
Colombia 1
Congo, Democratic Republic of the 1
Costa Rica 2
France 1
Gabon 1
Germany 1
Guatemala 1
Guinea-Bissau 1
Haiti 1
Honduras 3
Israel 1
Italy 1
Japan 5
Namibia 1
Peru 1
Portugal 4
Sao Tome and Principe 1
Spain 2
Switzerland 2
United Kingdom of Great Britain and Northern Ireland 2
United States of America 6
Venezuela (Bolivarian Republic of) 1
  • Ao final, os dados desta seção serão os seguintes:
Full Time Part Time HC FTE
Students Male 8707 7957 16664 12685.5
Students Female 7984 9981 17965 12974.5
Students Other 0 0 0 0

Total de países: 28.

Additional Statistics

  • Número de cursos de graduação. A partir dos dados, vamos ver em quantos cursos há alunos registrados. São 57 cursos integrais, 49 em tempo parcial (matutino, noturno e vespertino) e 6 EaD, num total de 112 cursos.
dados_alunos_2022 %>% distinct(NOME_CURSO, CODIGO_CURSO, .keep_all = TRUE) %>% 
  nrow
## [1] 112
  • Número de cursos de pós-graduação. A partir dos dados, vamos ver em quantos cursos há alunos registrados.
dados_pos %>% distinct(`Código do PPG`, `Nome do PPG`) %>% unique() %>% nrow
## [1] 97
  • Número de cursos de graduação ofertados online EaD:
dados_alunos_2022 %>% distinct(NOME_CURSO, CODIGO_CURSO, .keep_all = TRUE) %>% 
  filter(TURNO=="EaD") %>% nrow
## [1] 6

Em relação aos demais dados solicitados neste tópico:
1. Student Continuation Rate (in %): trata-se da porcentagem de discentes de graduação que se formam e ingressam em pós-graduação na mesma instituição ou em outras em menos de dois anos. Atualmente não temos estes dados.
2. Student Retention Rate (in %): Percentual de alunos ingressantes em tempo integral que continua seus estudos no segundo ano.
3. Completion Rate (in %): percentual dos estudantes de graduação em um coorte que completam o curso em 100% do tempo alocado.
4. First Generation Learners: percentual de estudantes cujos guardiões não obtiveram algum grau universitário.

Average Tuition Fees

  • Questões a respeito de taxas e mensalidades.

Employment Statistics

Para preencher esta seção, seria necessário realizar o acompanhamento dos egressos. Os dados necessários são o número de estudantes com empregos no prazo de 15 meses após conclusão dos estudos e sua média salarial.

Employment Statistics Evidence

Evidências dos dados apresentados anteriormente, a saber, a pesquisa com os egressos.