Importando dados

## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.1 ──
## ✓ ggplot2 3.3.5     ✓ purrr   0.3.4
## ✓ tibble  3.1.6     ✓ dplyr   1.0.8
## ✓ tidyr   1.2.0     ✓ stringr 1.4.0
## ✓ readr   2.1.2     ✓ forcats 0.5.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
## 
## Attaching package: 'scales'
## The following object is masked from 'package:purrr':
## 
##     discard
## The following object is masked from 'package:readr':
## 
##     col_factor
## here() starts at /home/laryssa/Laryssa/Mestrado/1º-Trimestre/FPCC2/fpcc2-lab1-laryssamilanez-master
## Rows: 24 Columns: 18
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (18): Curso no PPGCC / UFCG, Tipo de matrícula, Quão confiante você se s...
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
## Rows: 24
## Columns: 18
## $ `Curso no PPGCC / UFCG`                                                                                                                  <chr> …
## $ `Tipo de matrícula`                                                                                                                      <chr> …
## $ `Quão confiante você se sente com as seguintes tarefas [Descrever uma variável usando conceitos como média, mediana e desvio padrão]`    <chr> …
## $ `Quão confiante você se sente com as seguintes tarefas [Criar visualizações de dados como histogramas e gráficos de dispersão]`          <chr> …
## $ `Quão confiante você se sente com as seguintes tarefas [Ler material técnico em inglês]`                                                 <chr> …
## $ `Quão confiante você se sente com as seguintes tarefas [Programar em R]`                                                                 <chr> …
## $ `Quão confiante você se sente com as seguintes tarefas [Descrever um modelo de regressão linear]`                                        <chr> …
## $ `Quão confiante você se sente com as seguintes tarefas [Descrever um modelo de regressão logística]`                                     <chr> …
## $ `Você tem experiência com: [Pesquisa]`                                                                                                   <chr> …
## $ `Você tem experiência com: [Desenvolvimento de software (fora de disciplinas)]`                                                          <chr> …
## $ `Você tem experiência com: [Administração de sistemas]`                                                                                  <chr> …
## $ `Descreva essas experiências por favor`                                                                                                  <chr> …
## $ `Em que área você entende que será o seu mestrado/doutorado? (Ex: sistemas distribuídos, IA, interface humano-máquina)`                  <chr> …
## $ `Alguma outra informação, experiência, expectativa ou qualquer outra coisa que você queira compartilhar sobre você relacionado a FPCC2?` <chr> …
## $ `Sua idade (pode mentir se preferir)`                                                                                                    <chr> …
## $ `Quantidade de irmãos (pode mentir se preferir)`                                                                                         <chr> …
## $ `A sua altura em cm (pode mentir se preferir)`                                                                                           <chr> …
## $ `O seu estado (UF) de origem (pode mentir se preferir)`                                                                                  <chr> …
## Rows: 24
## Columns: 18
## $ tipo_curso    <chr> "Mestrado", "Doutorado", "Mestrado", "Mestrado", "Mestra…
## $ matricula     <chr> "Regular", "Regular", "Regular", "Regular", "Regular", "…
## $ conf_sumarios <chr> "Bastante confiante", "Bastante confiante", "Um pouco", …
## $ conf_histo    <chr> "Bastante confiante", "Bastante confiante", "Um pouco", …
## $ ler_ingles    <chr> "Bastante confiante", "Médio", "Um pouco", "Totalmente c…
## $ prog_r        <chr> "Médio", "Médio", "Nenhuma confiança", "Médio", "Nenhuma…
## $ linear        <chr> "Um pouco", "Médio", "Um pouco", "Médio", "Médio", "Bast…
## $ logistica     <chr> "Um pouco", "Um pouco", "Um pouco", "Médio", "Nenhuma co…
## $ exp_pesq      <chr> "1 ano", "3 anos", "0 anos", "3 anos", "0 anos", "2 anos…
## $ exp_dev       <chr> "3 anos", "1 ano", "0 anos", "1 ano", "4+ anos", "1 ano"…
## $ exp_admin     <chr> "0 anos", "1 ano", "0 anos", "2 anos", "0 anos", "0 anos…
## $ exp_desc      <chr> NA, "Pesquisa: Mestrado e Projetos PIBIC e PIBITI. Desen…
## $ area          <chr> "IA, NLP", "Inteligência Artificial na Educação", "Siste…
## $ outra         <chr> NA, NA, NA, "Tenho bastante interesse nas áreas de lingu…
## $ idade         <chr> "29", "36", "26", "29", "25", "22", "24", "28", "27", "3…
## $ irmaos        <chr> "3", "1", "2", "2", "1", "1", "0", "1", "2", "1", "4", "…
## $ altura        <chr> "178", "152", "1,65", "170,5", "174", "167", "180", "176…
## $ uf            <chr> "PB", "Alagoas", "Opção 1", "PB", "PB", "PB", "Opção 1",…

Questão 1

Calcule média e desvio padrão da idade e nível de interesse. As métricas contendos as métricas calculadas para idade e devem ser apresentadas de forma ordenada, da maior idade para a menor. Além de apresentar no relatório, os resultados devem ser salvos em um arquivo csv, que deve ser adicionado ao repositório.

# Cálculo realizado para idade
df_idade <- turma_fpcc2 %>% select(idade) %>% 
  mutate(idade_int = as.integer(gsub("[a-z]|\\.", "", idade)))

media_id = mean(df_idade$idade_int)
desvio_id = sd(df_idade$idade_int)
sort(df_idade$idade_int, decreasing = TRUE)
##  [1] 39 39 38 38 37 36 35 34 30 30 29 29 28 27 26 26 25 25 25 25 24 23 22 22
# Cálculo realizado para nível de interesse
df_progR<-turma_fpcc2 %>% select(prog_r)%>%
  mutate(prog_r = case_when(
    prog_r == "Nenhuma confiança" ~ "nc",
    prog_r == "Um pouco" ~ "pc",
    prog_r == "Médio" ~ "md",
    prog_r == "Bastante confiante" ~ "bc",
    TRUE ~ prog_r
  ))%>%
  count(prog_r)

media_int = mean(df_progR$n)
desvio_int = sd(df_progR$n)

# Criando o Dataframe com os valores
campos <- c("Media Idade","Media Nível Interesse", "Desvio Padrão Idade", "Desvio Padrão Nível Interesse")
valores <- c(media_id,media_int,desvio_id,desvio_int)
df_data <- data.frame(campos, valores)
valores_ordenados <- df_data[order(-valores),]

# Exibindo o data Frame
valores_ordenados
##                          campos   valores
## 1                   Media Idade 29.666667
## 2         Media Nível Interesse  6.000000
## 3           Desvio Padrão Idade  5.798551
## 4 Desvio Padrão Nível Interesse  2.708013
#Salvando em um arquivo csv
write.csv(valores_ordenados,"quest1.csv")

Questão 2

Qual o curso com maior valor médio de idade? Discutir os resultados com base nos dados disponíveis em termos de representatividade.

df_curso <- turma_fpcc2 %>% select(tipo_curso, idade)%>%
  mutate(idade_int = as.integer(gsub("[a-z]|\\.", "", idade)))
df_idade1 <- df_curso %>% select(tipo_curso, idade_int)%>%
  group_by(tipo_curso) %>% 
  summarise(num = n(), idade = mean(idade_int))%>%
  mutate(maior_media = as.integer(idade))
pos <- which.max(df_idade1$maior_media)
df_idade1[pos, c('tipo_curso', 'maior_media')]
## # A tibble: 1 × 2
##   tipo_curso maior_media
##   <chr>            <int>
## 1 Doutorado           35

CONCLUSÃO: O curso com maior valor médio de idade é o de “Doutorado”, onde apresenta uma média de 35 anos de idade, porém o curso apresenta apenas 12,5% de representatividade, já o de Mestrado temos 87,5% de representatividade.

Questão 3

Crie um gráfico que mostra a idade média para cada curso. Apresente o gráfico e discuta os resultados no relatório. O gráfico também deve ser salvo em uma imagem no formato png, que deve ser adicionada ao repositório.

df_curso1 <- turma_fpcc2 %>% select(tipo_curso, idade)%>%
  mutate(idade_int = as.integer(gsub("[a-z]|\\.", "", idade)))%>%
  group_by(tipo_curso)%>%
  summarise(media = mean(idade_int))

ggplot(df_curso1, aes(tipo_curso, media, fill = tipo_curso)) + 
  geom_bar(stat = "identity") + 
  xlab("Tipo de curso") +
  ylab("Número de alunos") + 
  theme_bw(base_size = 14) + 
  theme(legend.position = "None")

# Salvando o gráfico
ggsave("alunos_curso_idade.png")
## Saving 7 x 5 in image

Vemos pelo gráfico que os alunos do Mestrado possuem a menor média de idade, podendo concluir assim que a maioria deles concluíram o curso recentemente. Os alunos de Doutorado possuem a média mais alta.

Questão 4

Crie um gráfico que mostra o percentual de alunos para cada estado de origem. Apresente o gráfico e discuta os resultados no relatório. O gráfico também deve ser salvo em uma imagem no formato png, que deve ser adicionada ao repositório.

df_reg <- turma_fpcc2 %>% select(uf) %>% 
  filter(uf != "Opção 1")

df_reg <- turma_fpcc2 %>% select(uf) %>% 
  mutate(uf = ifelse(uf == "Opção 1", NA, uf)) %>% 
  mutate(uf = case_when(
    uf == "Paraiba" ~ "PB", 
    uf == "Paraíba" ~ "PB",
    uf == "PB (Campina Grande)" ~ "PB",
    uf == "Acre" ~ "AC",
    uf == "Alagoas" ~ "AL",
    uf == "Pernambuco, mas moro em Campina Grande há mais de 20 anos" ~ "PE",
    TRUE ~ uf
  )) %>% 
  filter(!is.na(uf)) %>%
  count(uf) %>%
  arrange(-n, uf)%>%
  group_by(uf)%>%
  summarise(num = n)%>%
  mutate(perc2 = num / nrow(turma_fpcc2))

ggplot(df_reg, aes(uf, num, fill = uf)) + 
  geom_bar(stat = "identity") + 
  xlab("Uf") +
  ylab("% de alunos por estado") + 
  theme_bw(base_size = 14) + 
  theme(legend.position = "None")

ggsave("alunos_percent_estado.png")
## Saving 7 x 5 in image

Podemos perceber pelo gráfico que a maior parte dos alunos do curso são do próprio estado, ou seja, temos mais alunos da Paraíba em relação aos demais estados listados.

Questão 5

Compare a média de idade geral com a média de idade dos top-5 e dos bottom-5. Além de apresentar e discutir os resultados no relatório, salvar em uma tabela (dataframe) com as médias em questão.

df_mediageral <- turma_fpcc2 %>% select(idade) %>% 
  mutate(idade_int = as.integer(gsub("[a-z]|\\.", "", idade)))

#Top-5
df_top5 <- df_mediageral %>%
  arrange(desc(idade_int)) %>%
  slice(1:5)
df_top5
## # A tibble: 5 × 2
##   idade   idade_int
##   <chr>       <int>
## 1 39 anos        39
## 2 39             39
## 3 38             38
## 4 38             38
## 5 37             37
df_bottom5 <- df_mediageral %>%
  arrange(idade_int) %>%
  slice(1:5)
df_bottom5
## # A tibble: 5 × 2
##   idade idade_int
##   <chr>     <int>
## 1 22           22
## 2 22           22
## 3 23           23
## 4 24           24
## 5 25           25
# Média Geral do vetor idade_int
md = mean(df_mediageral$idade_int)


# Média do Top-5
mtd = mean(df_top5$idade_int)

# Média do Bottom-5
mbd = mean(df_bottom5$idade_int)

# Criando o Dataframe com os valores
df_idade_quest5 <- data.frame(md, mtd, mbd)


# renomeando colunas
colnames <- c("Média Geral de Idades", "Média de Idades TOP-5", "Média de Idades BOTTOM-5")
colnames(df_idade_quest5) <- colnames

print(df_idade_quest5)
##   Média Geral de Idades Média de Idades TOP-5 Média de Idades BOTTOM-5
## 1              29.66667                  38.2                     23.2

CONCLUSÃO: Podemos verificar que na média geral das idades, 29 anos, fica mais aproxima das idades dos mais velhos, que apresentam uma média de 38 anos.