Nesta análise, faremos uma simples análise descritiva do perfil dos alunos inscritos em uma turma de uma disciplina de Pós Graduação em Ciência da Computação. Esta disciplina foi ofertada pela UFCG, universidade no estado da Paraíba (Brasil).
library(here)
library(magrittr)
library(tidyverse)
readr::read_csv(here::here('data/dados-fpcc2.csv'),
col_types = cols(`Carimbo de data/hora` = col_character(),
Idade = col_integer(),
`Você é` = col_character(),
`Curso no PPGCC / UFCG` = col_character(),
`Área de pesquisa` = col_character(),
`Nível de interesse na pós-gradução` = col_integer(),
`Programa em R` = col_character(),
`Instituição de origem (abreviado)` = col_character(),
`Estado de nascimento (abreviado)` = col_character(),
`Número de irmãos (irmãs)` = col_character(),
`Altura (em centímetros)` = col_double()),
progress = F) %>%
dplyr::rename(timestamp = `Carimbo de data/hora`,
age = `Idade`,
sex = `Você é`,
course = `Curso no PPGCC / UFCG`,
research_area = `Área de pesquisa`,
pg_interest_lvl = `Nível de interesse na pós-gradução`,
programs_in_R = `Programa em R`,
home_inst = `Instituição de origem (abreviado)`,
home_state = `Estado de nascimento (abreviado)`,
n_siblings = `Número de irmãos (irmãs)`,
height_cm = `Altura (em centímetros)`) -> df
df %>%
glimpse()
## Observations: 29
## Variables: 11
## $ timestamp <chr> "2020/03/10 11:05:00 AM GMT-3", "2020/03/10 11:0…
## $ age <int> 22, 22, 22, 23, 24, 24, 28, 26, 23, 23, 26, 32, …
## $ sex <chr> "Homem", "Homem", "Homem", "Homem", "Homem", "Ho…
## $ course <chr> "Mestrado", "Mestrado", "Mestrado", "Mestrado", …
## $ research_area <chr> "Análise de dados", "Mobilidade Urbana", "Redes …
## $ pg_interest_lvl <int> 3, 3, 3, 3, 3, 2, 3, 2, 3, 3, 2, 3, 3, 3, 3, 3, …
## $ programs_in_R <chr> "Sim", "Sim", "Não", "Sim", "Não", "Sim", "Não",…
## $ home_inst <chr> "UFCG", "UFCG", "UFCG", "UFCG", "IFCE Campus Cra…
## $ home_state <chr> "PB", "PB", "PB", "DF", "SP", "BA", "SE", "PB", …
## $ n_siblings <chr> "5", "1", "0", "2", "02", "1", "3", "2", "2", "0…
## $ height_cm <dbl> 178.00, 175.00, 173.00, 184.00, 168.00, 165.00, …
df %>%
select(age, pg_interest_lvl) %>%
gather("variable", "value") %>%
group_by(variable) %>%
summarise(mean = mean(value),
sd = sd(value)) %>%
ungroup() %>%
gather("metric", "value", mean, sd) %>%
arrange(metric, desc(value)) -> global_metrics
global_metrics
global_metrics %>%
write_csv(here::here("data/global_metrics.csv"))
total_students <- nrow(df)
print(paste("Número total de estudantes:", total_students))
## [1] "Número total de estudantes: 29"
df %>%
group_by(course) %>%
summarise(avg_age = mean(age),
sd_age = sd(age)) %>%
ungroup()
df %>%
group_by(course) %>%
summarise(avg_age = mean(age),
sd_age = sd(age)) %>%
ungroup() %>%
ggplot(aes(reorder(course, avg_age), avg_age)) +
geom_col() +
labs(x = "Curso no PPGCC / UFCG", y="Idade Média") -> p1
ggsave(here::here("data/avg_age_by_course.jpeg"), plot=p1,
device="jpeg", height=4, width=7)
p1
Existe uma tendência vísivel, em que alunos de Doutorado são mais velhos que os de Mestrado. O que faz sentido, já que normalmente alunos de Doutorado passaram um certo número de anos cursando o Mestrado.
Curiosamente, os alunos especiais em média são mais velhos que alunos de Mestrado e Doutorado.
Doutorado é o curso/programa com os alunos mais velhos. Se considerássemos Alunos especiais como um grupo por si só (já que não temos identificação de qual programa participam) este seriam o grupo com os alunos mais velhos.
df %>%
select(home_state) %>%
unique()
df %>%
mutate(home_state = ifelse(home_state == 'Paraíba', 'PB', home_state)) %>%
mutate(home_state = ifelse(home_state == 'Ceará', 'CE', home_state)) %>%
mutate(home_state = ifelse(home_state == 'Santa Catarina', 'SC', home_state)) -> df
df %>%
select(home_state) %>%
unique()
df %>%
group_by(home_state) %>%
summarise(perc = 100 * n() / total_students) %>%
ungroup() %>%
ggplot(aes(reorder(home_state, perc), perc)) +
geom_col() +
labs(x = "Estado de nascimento (abreviado)", y="Percentagem (%)") -> p2
ggsave(here::here("data/stdnt_perc_by_home_state.jpeg"), plot=p2,
device="jpeg", height=4, width=7)
p2
global_metrics %>%
filter(variable == "age" & metric == "mean") %$%
value -> overall_age
df %>%
mutate(overall = overall_age) -> df
df %>%
glimpse()
## Observations: 29
## Variables: 12
## $ timestamp <chr> "2020/03/10 11:05:00 AM GMT-3", "2020/03/10 11:0…
## $ age <int> 22, 22, 22, 23, 24, 24, 28, 26, 23, 23, 26, 32, …
## $ sex <chr> "Homem", "Homem", "Homem", "Homem", "Homem", "Ho…
## $ course <chr> "Mestrado", "Mestrado", "Mestrado", "Mestrado", …
## $ research_area <chr> "Análise de dados", "Mobilidade Urbana", "Redes …
## $ pg_interest_lvl <int> 3, 3, 3, 3, 3, 2, 3, 2, 3, 3, 2, 3, 3, 3, 3, 3, …
## $ programs_in_R <chr> "Sim", "Sim", "Não", "Sim", "Não", "Sim", "Não",…
## $ home_inst <chr> "UFCG", "UFCG", "UFCG", "UFCG", "IFCE Campus Cra…
## $ home_state <chr> "PB", "PB", "PB", "DF", "SP", "BA", "SE", "PB", …
## $ n_siblings <chr> "5", "1", "0", "2", "02", "1", "3", "2", "2", "0…
## $ height_cm <dbl> 178.00, 175.00, 173.00, 184.00, 168.00, 165.00, …
## $ overall <dbl> 25.7931, 25.7931, 25.7931, 25.7931, 25.7931, 25.…
df %>%
top_n(5, age) %$%
age %>%
mean() -> top_5_avg_age
print(paste("Idade Média dos Top 5:", top_5_avg_age))
## [1] "Idade Média dos Top 5: 35.2"
df %>%
top_n(-5, age) %$%
age %>%
mean() -> bottom_5_avg_age
print(paste("Idade Média dos Bottom 5:", bottom_5_avg_age))
## [1] "Idade Média dos Bottom 5: 21.875"
df %>%
mutate(top_5 = top_5_avg_age,
bottom_5 = bottom_5_avg_age) -> df
df %>%
glimpse()
## Observations: 29
## Variables: 14
## $ timestamp <chr> "2020/03/10 11:05:00 AM GMT-3", "2020/03/10 11:0…
## $ age <int> 22, 22, 22, 23, 24, 24, 28, 26, 23, 23, 26, 32, …
## $ sex <chr> "Homem", "Homem", "Homem", "Homem", "Homem", "Ho…
## $ course <chr> "Mestrado", "Mestrado", "Mestrado", "Mestrado", …
## $ research_area <chr> "Análise de dados", "Mobilidade Urbana", "Redes …
## $ pg_interest_lvl <int> 3, 3, 3, 3, 3, 2, 3, 2, 3, 3, 2, 3, 3, 3, 3, 3, …
## $ programs_in_R <chr> "Sim", "Sim", "Não", "Sim", "Não", "Sim", "Não",…
## $ home_inst <chr> "UFCG", "UFCG", "UFCG", "UFCG", "IFCE Campus Cra…
## $ home_state <chr> "PB", "PB", "PB", "DF", "SP", "BA", "SE", "PB", …
## $ n_siblings <chr> "5", "1", "0", "2", "02", "1", "3", "2", "2", "0…
## $ height_cm <dbl> 178.00, 175.00, 173.00, 184.00, 168.00, 165.00, …
## $ overall <dbl> 25.7931, 25.7931, 25.7931, 25.7931, 25.7931, 25.…
## $ top_5 <dbl> 35.2, 35.2, 35.2, 35.2, 35.2, 35.2, 35.2, 35.2, …
## $ bottom_5 <dbl> 21.875, 21.875, 21.875, 21.875, 21.875, 21.875, …
df %>%
select(overall,top_5,bottom_5) %>%
reshape2::melt(measure.vars = c("overall","top_5","bottom_5"),
variable.name = "var") %>%
unique() %>%
ggplot(aes(reorder(var, value), value)) +
geom_col() +
labs(x = "",
y = "Idade Média (Anos)")
df %>%
write_csv(here::here("data/df_plus_means.csv"))
df %>%
mutate(pg_interest_lvl = as.factor(pg_interest_lvl)) %>%
ggplot(aes(pg_interest_lvl, age)) +
geom_jitter() +
labs(x="Nível de interesse na pós-gradução",
y="Idade (anos)")
Em suma, os alunos mais velhos (de idade mais próxima a 30 anos) parecem se concentrar entre os mais interessados (nível 3).