Para sabermos o total de indivíduos em uma instituição, a simples contagem é uma medida pobre, pois não considera que alguns dos indivíduos trabalham/estudam em tempo parcial. Isto torna a contagem artificialmente elevada, superestimando custos, etc.
A principal medida adotada para contornar este problema é padronizar os dados para que seja fornecido o número de indivíduos em relação a um referencial, a saber, um estudante ou funcionário em tempo integral. De acordo com o relatório do THE:
1.0 FTE may be thought of as one person working full time for a year, while an FTE of 0.5 means half of a full work or study load. The FTE for a student or staff member could be calculated as the total number of hours worked (or modules studied) during the year, divided by the number of working hours or modules of a full time person.
Em relação aos docentes e técnicos administrativos, a medida é simples de ser adotada, pois as cargas horárias são bem definidas. Por exemplo, toma-se o técnico administrativo em tempo integral como aquele que trabalha 40 horas/semana. Desta forma, um técnico em regime de 30 horas é equivalente a \(30/40 = 0.75\) vezes um técnico em tempo integral.
A complexidade aumenta quando tratamos de estudantes, pelos seguintes motivos:
Temos dois conjuntos de dados correspondendo aos estudantes matriculados no primeiro e segundo semestres de 2017, com suas respectivas cargas horárias. Definimos a carga horária de um estudante em tempo integral do curso \(x\) como a carga horária total do curso dividida pelo seu número de semestres.
library(dplyr)
library(readxl)
setwd("C:/Users/erica.santos/workspace/trabalho/THE_rankings/Impact Ranking/")
# Abrir carga horária média por curso:
carga_horaria_cursos_graduacao_ufersa <- read_excel("cargahorariacursosgraduacaoUfersaprograd.xlsx",
col_types = c("blank", "text", "blank",
"text", "blank", "blank", "blank",
"blank", "blank", "blank", "blank",
"numeric"))
colnames(carga_horaria_cursos_graduacao_ufersa) <- c("curso","campus","CH_media")
# Abrir conjunto de dados dos alunos 2017.1
alunos_1 = read.csv("./Lista de todos os alunos matriculados em cursos de graduação em 2017.1(com ch_total) sem matriculas status cumpriu.csv", sep=";", header = TRUE)
alunos_1 %>% mutate_if(is.factor, as.character) -> alunos_1
# Abrir conjunto de dados dos alunos 2017.2
alunos_2 = read.csv("./Lista de todos os alunos matriculados em cursos de graduação em 2017.2(com ch_total) sem matriculas status cumpriu.csv", sep=";", header = TRUE)
alunos_2 %>% mutate_if(is.factor, as.character) -> alunos_2
A carga horária total dos cursos apresenta diferenças de acordo com o turno e campus. Por exemplo, o mesmo curso de engenharia pode apresentar cargas horárias diferentes a depender destes fatores. Como nos dados dos alunos não temos o turno em que eles estão matriculados para fazer um inner join por curso, turno e campus, vamos considerar apenas o curso. Para tanto, agrupamos os cursos, tirando a média da carga horária total daqueles que apresentem valores diferentes:
# Pegando cada curso e tirando a média (independente de turno e campus)
carga_horaria_cursos_graduacao_ufersa %>%
group_by(curso) %>%
summarise(., CH_media = mean(CH_media)) -> carga_horaria_cursos_graduacao_ufersa
carga_horaria_cursos_graduacao_ufersa
## # A tibble: 40 x 2
## curso CH_media
## <chr> <dbl>
## 1 ADMINISTRAÇÃO 333.
## 2 AGRONOMIA 396
## 3 ARQUITETURA E URBANISMO 375
## 4 BIOTECNOLOGIA 422.
## 5 CIÊNCIA DA COMPUTAÇÃO 340
## 6 CIÊNCIA E TECNOLOGIA 371.
## 7 CIÊNCIAS BIOLÓGICAS 229.
## 8 CIÊNCIAS CONTÁBEIS 333.
## 9 COMPUTAÇÃO 409.
## 10 COMPUTAÇÃO E INFORMÁTICA 358.
## # ... with 30 more rows
Finalmente, podemos fazer um inner join dos dados dos alunos com os dados da carga horária dos cursos. Assim, teremos uma nova coluna nos dados dos alunos correspondendo à carga horária média do curso em que o aluno está matriculado. Nossos dados agora contém uma nova coluna chamada CH_media:
alunos_1 = inner_join(alunos_1, carga_horaria_cursos_graduacao_ufersa, by="curso")
#names(alunos_1)
alunos_2 = inner_join(alunos_2, carga_horaria_cursos_graduacao_ufersa, by="curso")
names(alunos_2)
## [1] "nome" "matricula" "cpf"
## [4] "curso" "campus" "ano_ingresso"
## [7] "carga_horaria_total" "CH_media"
Agora podemos computar o Estudante Equivalente para cada indivíduo, e depois somar para obter o total de estudantes equivalente da UFERSA.
Vamos separar os estudantes em três grupos para facilitar o cálculo. O primeiro grupo contém os estudantes que estão matriculados nos dois semestres: somados, eles equivalem a \(4345.759\) alunos em tempo integral.
# Conjunto dos alunos que estudaram o primeiro e segundo semestres:
alunos_em_comum = intersect(alunos_1$matricula, alunos_2$matricula)
# Dados destes alunos no semestre 1:
alunos_em_comum_1 = alunos_1 %>%
filter(., alunos_1$matricula %in% alunos_em_comum) %>% arrange(., nome)
# Dados destes alunos no semestre 2:
alunos_em_comum_2 = alunos_2 %>%
filter(., alunos_2$matricula %in% alunos_em_comum) %>% arrange(., nome)
nrow(alunos_em_comum_1)
## [1] 5696
# dados dos alunos em comum
alunos_em_comum_total = data.frame(matricula = alunos_em_comum_1$matricula,
curso = alunos_em_comum_1$curso,
carga_horaria_total = alunos_em_comum_1$carga_horaria_total +
alunos_em_comum_2$carga_horaria_total,
CH_media = alunos_em_comum_1$CH_media)
names(alunos_em_comum_total)
## [1] "matricula" "curso" "carga_horaria_total"
## [4] "CH_media"
alunos_em_comum_total %>% mutate(., FTE_individual = carga_horaria_total/(2*CH_media)) ->
alunos_em_comum_total
FTE_12 = sum(alunos_em_comum_total$FTE_individual)
FTE_12
## [1] 4345.759
Adotamos o mesmo procedimento para os alunos que estiveram matriculados somente no primeiro semestre, obtendo o valor de \(542.7657\) estudantes equivalentes.
# Alunos matriculados apenas no primeiro semestre
alunos_so_1 = alunos_1 %>%
filter(., !(alunos_1$matricula %in% alunos_em_comum)) %>% arrange(., nome)
alunos_so_1 %>% mutate(., FTE_individual = carga_horaria_total/(2*CH_media)) ->
alunos_so_1
FTE_1 = sum(alunos_so_1$FTE_individual)
FTE_1
## [1] 542.7657
Os estudantes matriculados apenas no segundo semestre foram equivalentes a \(483.2822\) estudantes em tempo integral:
# Alunos matriculados apenas no segundo semestre
alunos_so_2 = alunos_2 %>%
filter(., !(alunos_2$matricula %in% alunos_em_comum)) %>% arrange(., nome)
alunos_so_2 %>% mutate(., FTE_individual = carga_horaria_total/(2*CH_media)) ->
alunos_so_2
FTE_2 = sum(alunos_so_2$FTE_individual)
FTE_2
## [1] 483.2822
Finalmente, somando as três quantidades, obtemos o total de estudantes equivalente: \(5371.807\), ou seja, aproximadamente \(73.7\%\) da média dos estudantes de graduação matriculados nos dois semestres de 2017 (\(7286\)).
# Número de estudantes equivalente total:
FTE_12 + FTE_1 + FTE_2
## [1] 5371.807