Esta análise explanatória será feita utilizando dados sobre a turma de Fundamentos de Pesquisa de Ciência da Computação 2. Logo abaixo será respondido 6 perguntas tomando como base os dados fornecidos.
Antes de tudo, será importado as nossas bibliotecas que serão utilizadas para a plotagem dos gráficos para responder as perguntas.
Logo após, será importado a nossa base de dados.
dadosFPCC2 <- read.csv("/home/mattheusbr/git/fpcc2-lab1-MattheusB/data/dados-fpcc2.csv")
Antes de partir para as perguntas, é preciso entender o que cada coluna da nossa base de dados significa:
Para responder a questão acima, teremos que calcular a média e o desvio padrão da idade e do nível de interesse. Após realizar isso, é necessário que ordene os resultados.
dadosAdicionais <-
summarise(dadosFPCC2,
desvio_padrao_interesse = sd(Nível.de.interesse.na.pós.gradução, na.rm = TRUE),
desvio_padrao_idade = sd(Idade, na.rm = TRUE),
media_interesse = mean(Nível.de.interesse.na.pós.gradução, na.rm = TRUE),
media_idade = mean(Idade, na.rm = TRUE)) %>%
arrange(desc(desvio_padrao_interesse, media_interesse, desvio_padrao_idade, media_idade))
dadosAdicionais
## desvio_padrao_interesse desvio_padrao_idade media_interesse media_idade
## 1 0.3563483 5.013606 2.857143 25.89286
Os resultados obtidos foram: desvio padrão interesse = 0.3844259, desvio padrão idade = 4.952484, média interesse = 2.827586, média idade = 25.7931.
Após isso, vamos salvar o data frame em um arquivo csv.
write.csv(dadosAdicionais, "dados_adicionais.csv")
Para responder a questão acima, teremos que agrupar os dados por Curso no Programa de Pós Graduação em Ciência da Computação (PPGCC) e calcular a média de cada um.
cursoMaiorIdade <- dadosFPCC2 %>%
group_by(Curso.no.PPGCC...UFCG) %>%
summarise(media_idade = mean(Idade)) %>%
arrange(desc(media_idade))
cursoMaiorIdade
## # A tibble: 4 x 2
## Curso.no.PPGCC...UFCG media_idade
## <fct> <dbl>
## 1 "Aluno especial" 36.3
## 2 "Doutorado" 30.2
## 3 "Mestrado" 23.6
## 4 "" NA
Podemos afirmar que o curso com maior idade média é o de Alunos Especiais que é aproximadamente de 36 anos, seguido por doutorado que é aproximadamente 30 anos e por fim o curso de mestrado com média aproximadamente de 23 anos.É aceitável que a média de idade dos doutorandos seja maior do que a de mestrandos. No entando, a média de alunos especiais é maior que a dos outros cursos, isso acontece devido ao fato de que o número de alunos especiais é de apenas 3 pessoas, e analisando o total de alunos da turma que é 29 estudantes, isso não é significativamente representativo.
cursoMaiorIdade %>%
plot_ly(x=~Curso.no.PPGCC...UFCG, y=~media_idade, type="bar", color=~Curso.no.PPGCC...UFCG) %>%
layout(title = "Média de idade por curso",
xaxis = list(title="Curso do PPGCC"),
yxaxis = list(title="Idade Média"))
## Warning: Ignoring 1 observations
## Warning: 'layout' objects don't have these attributes: 'yxaxis'
## Valid attributes include:
## 'font', 'title', 'titlefont', 'autosize', 'width', 'height', 'margin', 'paper_bgcolor', 'plot_bgcolor', 'separators', 'hidesources', 'showlegend', 'colorway', 'datarevision', 'template', 'dragmode', 'hovermode', 'hoverdistance', 'spikedistance', 'hoverlabel', 'selectdirection', 'grid', 'calendar', 'xaxis', 'yaxis', 'ternary', 'scene', 'geo', 'mapbox', 'polar', 'radialaxis', 'angularaxis', 'direction', 'orientation', 'editType', 'legend', 'annotations', 'shapes', 'images', 'updatemenus', 'sliders', 'barmode', 'bargap', 'mapType'
Após a plotagem do gráfico, fica evidente o que foi falado anteriormente. Ou seja, o número de alunos de cada curso é muito importante para tirar uma conclusão. Devido a isso, os alunos especiais tem uma média de idade maior que os outros dois cursos.
Para responder a questão acima, é necessário agrupar os dados por Estado de nascimento e fazer a contagem de cada um. Após isso, será plotado um gráfico de pizza para analisar melhor os dados.
percentualAlunos <- dadosFPCC2 %>%
mutate(Estado.de.nascimento..abreviado. = ifelse(Estado.de.nascimento..abreviado. == "Paraíba", "PB",
ifelse(Estado.de.nascimento..abreviado. == "Ceará", "CE",
ifelse(Estado.de.nascimento..abreviado. == "Santa Catarina", "SC",
Estado.de.nascimento..abreviado.)))) %>%
group_by(Estado.de.nascimento..abreviado.) %>%
summarise(totalAlunos = n())
percentualAlunos %>%
plot_ly(labels= ~Estado.de.nascimento..abreviado., values= ~totalAlunos, type="pie") %>%
layout(title = "Percentual de alunos por estado de origem",
xaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE),
yaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE), showlegend = FALSE)
Após observar o gráfico, vemos o estado da Paraíba com predominância sob os outros estados, com aproximadamente 62% dos alunos, o que impressionou foi os estados de Bahia e São Paulo atingir aproximadamente 7% cada, devido ao fato de que são estados distantes da Paraíba, principalmente São Paulo.
Para responder a pergunta acima, temos que ordenar por maior e menor idade, e calcular as três médias solicitadas.
idade_top <- top_n(dadosFPCC2, 5, Idade)
idade_bottom <- top_n(dadosFPCC2, -5, Idade)
media_idade_top <- summarise(idade_top, mean(Idade))
media_idade_bottom <- summarise(idade_bottom, mean(Idade))
dadosMedias <- dadosFPCC2 %>%
summarise(media_total = mean(dadosFPCC2$Idade, na.rm = TRUE),
media_top = media_idade_top$`mean(Idade)`,
media_bottom = media_idade_bottom$`mean(Idade)`)
dadosMedias
## media_total media_top media_bottom
## 1 25.89286 35.2 21.875
Observando o resultado, vimos que a diferença é média, tendo uma média dos 5 mais velhos como aproximadamente 35 anos e a média dos 5 mais novos como 22 anos aproximadamente. Além disso, a média total da idade dos alunos é aproximadamente 26 anos. Isso significa que não há muitos dados que se afastem muito da média.
Após isso, vamos salvar o data frame em um arquivo csv.
write.csv(dadosMedias, "dados_medias.csv")
Para responder a pergunta acima, temos que agrupar os dados por nível interesse e idade e fazer a soma.
group_idade <- dadosFPCC2 %>%
group_by(Nível.de.interesse.na.pós.gradução, Idade) %>%
summarise(quantidade = n())
group_idade
## # A tibble: 15 x 3
## # Groups: Nível.de.interesse.na.pós.gradução [3]
## Nível.de.interesse.na.pós.gradução Idade quantidade
## <int> <int> <int>
## 1 2 22 1
## 2 2 24 1
## 3 2 26 2
## 4 3 21 1
## 5 3 22 6
## 6 3 23 6
## 7 3 24 2
## 8 3 26 1
## 9 3 28 1
## 10 3 29 2
## 11 3 32 1
## 12 3 33 1
## 13 3 35 1
## 14 3 38 2
## 15 NA NA 1
Após isso, os dados estão complicados de entender. Então vamos plotar um gráfico de pontos para facilitar o entendimento.
group_idade %>%
plot_ly(x= ~Idade, y= ~Nível.de.interesse.na.pós.gradução,size = ~quantidade, type= "scatter", mode= "markers") %>%
layout(title="Relação Nível Interesse/Idade",
xaxis=list(title="Idade"),
yaxis=list(title="Nível Interesse"), barmode="stack")
## Warning: Ignoring 1 observations
## Warning: `line.width` does not currently support multiple values.
Após observar o gráfico, pode-se afirmar que a maioria das pessoas com menor idade tem um interesse grande pelo programa (visualizando que os pontos estão maiores quando estão no nível 3 de interesse), assim como as pessoas que tem maior idade também tem um nível grande de interesse. Por isso, dá para concluir que não existe uma relação entre idade e nível de interesse. Além disso, os dados são poucos e não dá pra tomar uma conclusão com maior confiança.