Data Visualization parte 2: gráficos com multivariáveis | Alura Cursos Online
Primeiras aulas do curso Data Visualization parte 2: gráficos com multivariáveis
Data Visualization parte 2: gráficos com multivariáveis
Importação e seleção dos dados - Introdução
Olá, seja bem-vindo a mais um curso da Alura, o curso Data Visualization - Gráfico multivariáveis. Meu nome é Gabriel e eu serei o instrutor durante todo o curso.
Aqui, você irá aprender a criar códigos em R para fazer análises de dados por meio de gráficos, o que é muito mais fácil de se fazer do que analisar uma tabela com centenas de linhas ou até milhares de linhas, não é mesmo?
Ao se trabalhar com análise de dados, visualização de dados, você precisa ter um problema em mãos para ser resolvido.
O nosso problema a ser resolvido será atender a algumas solicitações de um cursinho preparatório para o exame do ENEM. Ou seja, nós vamos trabalhar com a análise dos microdados do ENEM entre 2010 e 2017.
Esse cursinho tem filiais no Ceará, Minas Gerais, Rio Grande do Sul e DF, porém nós vamos fazer uma análise nacional e às vezes dando um foco maior nas filiais.
O cursinho deseja obter informações como: identificar os tipos de idiomas que estão sendo mais escolhidos, o inglês ou o espanhol; a situação escolar das pessoas que estão fazendo a prova; a média de idade dessas pessoas; comparação das médias em ciências humanas e matemática por idade; média de cada matéria entre os anos 2010 até 2017; comparação das médias entre matemática, ciências humanas, redação por estados, inclusive, dando um destaque maior às filiais onde o cursinho tem; também deseja obter informações de valores estatísticos, como cálculos quartis, mediano, por estado e se há algum valor discrepante em um desses estados. São informações um pouco complexas de se obter, porém trabalhando com análise de dados fica bem mais fácil analisar essas informações.
Também deseja obter informações sobre a média da redação por estado, comparando com a média nacional.
A base de dados que nós iremos trabalhar, ela está disponível aqui no site do INEP. Esse site do INEP possui diferentes microdados, inclusive do ENEM.
Aqui você pode ver ENAD, Encceja, entre outras bases de dados e tem aqui do ENEM. Nós vamos trabalhar aqui do ENEM de 2010 até 2017, está atualizado recentemente, em março de 2019.
Mas esses dados também vão estar disponíveis no curso para você fazer o download porque os dados já passaram por uma etapa de pré-lançamento, um tratamento especial porque aqui os dados estão em diferentes formatos e colocamos tudo em um formato único, que é no formato CSV.
Então você pode baixar os dados no curso, vai estar disponível e, posteriormente, se você tiver interesse, pode acessar os outros dados aqui no site do portal do INEP, o link também vai estar disponível no material do curso.
Neste curso, você irá aprender a fazer algumas manipulações e transformações nos dados que são necessárias para gerar os dados.
Por exemplo, aqui, você vai substituir o valor 1 e f pela palavra completa feminino, você vai aprender a explorar algumas colunas, por exemplo esse tipo de linguagem, você vai aprender a substituir algumas outras flags, por exemplo aqui do 0 que significa inglês, então o 0 vai se converter em inglês. Aqui na situação escolar que também são armazenados em flag, você vai trocar os números pela respectiva situação, neste caso aqui, 1 significa concluído. Você também vai aprender a trabalhar, a converter strings em números quando será possível.
Isso para que? Para você normalizar as colunas onde armazenam as notas, por exemplo aqui as notas de ciências da natureza, linguagens e códigos.
E também vai aprender a fazer diferentes filtros, a trabalhar no centro com pacote dplyr, por exemplo aqui "filter", vamos fazer alguns filtros e selecionando alguns dados importantes, alguns dados necessários para aquele gráfico.
Então não vamos trabalhar às vezes com todo o banco de dados e sim com uma pequena amostra que será o suficiente, ok?
Então vamos lá, você vai fazer tudo isso, os gráficos, você vai trabalhar aqui, por exemplo, fazer esse gráfico de barras, você vai aprender a fazer esse outro gráfico de barras dividido por camadas, também vai aprender a fazer esse gráfico de pirâmide, o outro gráfico de pontos, gráfico de linhas, trabalhando sempre com muitas variáveis, o gráfico de bolhas que tem 4 variáveis num mesmo gráfico, gráfico de boxplot, e por fim vai aprender a trabalhar aqui a montar essa página que armazena diferentes gráficos numa mesma página.
Porém, vamos aprender aqui a montar um gráfico por vez e até chegar nesse resultado final, ok? Vamos lá? Dar início aos nossos estudos?
Importação e seleção dos dados - Importação e merge dos dados
Primeiramente, você vai definir o diretório que você quer trabalhar.
Para descobrir o diretório onde você está trabalhando, você vai utilizar a função getwd, executar e vai passar aqui no console o caminho.
Esse é o diretório atual. Se você deseja mudar, você vai utilizar a função setwd, passar o caminho, por exemplo, o caminho que eu quero trabalhar é esse daqui, o caminho completo se for necessário, executar essa função e vamos verificar novamente... pronto, agora nós estamos trabalhando no diretório desejado.
Em seguida, você vai importar as bibliotecas que serão trabalhadas utilizando a função library, vai chamar o pacote que você deseja, por exemplo, o primeiro aqui é data table, e executar.
Pronto, habilitei o pacote data table.
Vamos também trabalhar com o pacote dplyr, habilitei.
E, por fim, o pacote de gplot2. Se você já fez o curso pré-requisito, o curso anterior chamado Dada Vis com 1 variável, você já vai ter instalado esses três pacotes, você só vai precisar habilitar.
Caso contrário, você vai utilizar a função install.packages e passar o nome do pacote, por exemplo o gplot2, e vai executar essa linha de comando e, posteriormente, habilitar.
Eu não vou instalar aqui porque já foi feito no curso anterior e eu já tenho esse pacote instalado.
Agora que você já instalou e já importou os pacotes e definiu o diretório que você deseja trabalhar, vamos importar todos os dados que serão utilizados.
Todos os dados estão no formato csv e estão disponíveis para você no curso.
Primeiro, você vai importar cada registro, cada base de dados, que eles estão separados por ano, por exemplo, o ano de 2010 está em uma base de 2010, o ano de 2011, na de 2011 e assim por diante.
Você vai utilizar a função fread, vai passar o nome do arquivo, enem 2010.csv, vai passar o parâmetro encoding, para definir a questão de acentuação e caracteres especiais na base de dados em português, que vai ser definido por UTF-8.
Você vai salvar tudo isso num objeto chamado enem 2010.
Colocar no atribuidor, vai executar e pronto.
Aqui do lado direito, já podemos ver que os dados foram executados, ali enem 2010, havendo mais de 230 mil registros com 23 colunas.
Agora você vai fazer isso para a base de 2011, apenas mudando o nome para a de 2011, vai carregar, pronto, carregamos aqui mais um, enem 2011, mais de 260 mil registros e 27 colunas.
Eu vou cortar agora o vídeo, você vai fazer isso até 2017 e eu vou mostrar o resultado final do código para você.
Pronto, aqui está o código. Você vai carregar todos os dados, nada vai mudar, só vai mudar apenas aqui o nome do arquivo, 2012, 2013, até 2017.
Do lado direito, você pode observar aqui que temos todos os objetos, todos os dados já carregados.
Após carregar todos os dados, agora é necessário, ao invés de trabalhar com os muitos objetos que nós temos aqui de 2010 até 2017, correto?
Vamos trabalhar apenas com 1 objeto só, é mais fácil fazer uma junção em todos esses dados em um único objeto.
E isso é possível utilizando a função rbind, e você precisa acrescentar como parâmetro o nome dos objetos que você deseja fazer o merge.
Então vai ser de enem 2010 até o 2017. 2010, 11, 12, 13, 14, 15, 16, e por fim, 2017.
Você vai salvar isso tudo em um objeto chamado merge enem, que vamos executar e, olha só: ao olhar aqui no console, aconteceu um erro.
O que esse erro indica? Esse erro indica que os objetos para fazer o merge, esses objetos aqui 2010 até 2017 não são exatamente iguais.
Nesse caso aqui, por exemplo, ele está indicando que tem objetos com 23 colunas e os outros não tem. E a gente olhando aqui o primeiro objeto tem 23 colunas, 27, 27, 31, 28, 28; e para utilizar essa função todos os objetos têm que ser idênticos na quantidade de colunas, por que ele faz o merge por linhas.
Então, para resolver esse problema, faremos o merge das colunas em comum, adicionando o valor em a, ou seja, não definindo as colunas que não são em comum entre as bases.
Essa solução pode ser feita aqui utilizando o parâmetro como o próprio erro já indica fio, o argumento fio, você vai adicionar aqui no final da linha "fio igual a TRUE" , vai executar novamente, e pronto, o merge está sendo executado.
E no final teremos apenas 1 objeto com todos os dados.
Pronto. Fizemos o merge de todas as bases em uma única base chamada merge enem.
Se você olhar aqui do lado direito nessa janela, merge enem há mais de 2 milhões de registros com 37 colunas. Ou seja, ele fez um merge, uma combinação das colunas aqui, as colunas não comum ele inseriu o valor não definido, ou seja, na.
Agora, nós podemos descartar de todos esses registros aqui, essas bases que não serão utilizadas mais, por quê?
Nós vamos utilizar agora somente esse objeto chamado merge enem.
Para eliminar esses outros registros, você vai utilizar a função rm, passando o nome dos objetos, pode dar um Ctrl C aqui, porque a gente já utilizou o nome dos objetos, e vamos apagar.
Pronto, agora nós temos somente o objeto merge enem.
Esse procedimento é muito importante e muito recomendado também porque a cada objeto armazenado e criado dentro do RStudio, ou se você estiver trabalhando em outra DE, ocupa a memória do computador, principalmente nessas nossas bases de dados que são muito grandes.
Então, é recomendado que vocês sempre eliminem, apaguem os conjuntos de dados que vocês têm certeza que não vai ser utilizado mais.
Nesse caso nós temos certeza porque todos esses dados aqui agora estão dentro do objeto merge enem, ok?
Importação e seleção dos dados - Seleção dos dados
Bom, agora nós temos o objeto com todos os registros e colunas. Porém, você não vai utilizar todas essas colunas para fazer as análises, porque de acordo com os pedidos de análise da instituição você pode analisar, selecionar as colunas de interesse. Consequentemente, o objeto vai ficar mais leve. Eu vou mostrar já para você a importância dessa etapa de seleção.
Primeiro, você vai criar um vetor com o nome das colunas. O vetor já está virado aqui ó. São essas colunas que nós vamos utilizar durante todo o curso.
Você vai salvar num objeto chamado colunas, vai atribuir, vamos alinhar aqui para ficar organizado. Pronto. Criei aqui um vetor chamado colunas. Agora, você vai utilizar uma função do dplyr para fazer a seleção apenas dessas colunas com base nesse objeto.
Primeiro você vai colocar aqui o objeto que você deseja, original, que é o merge Enem, correto? Vai utilizar aqui o concatenador de função do dplyr que foi explicado no curso anterior, vai chamar a função select_, vai passar um parâmetro chamado dots, que ele já indica para você, e vai passar o objeto colunas como valor desse parâmetro.
E esse resultado aqui dessa execução, você vai salvar num objeto chamado Enem. Vai salvar nele, vamos executar. Pronto, executamos, olhamos aqui do lado direito, na aba enviroments, temos os dois objetos: um chamado Enem e o merge Enem.
Um com 23 colunas, que é o que fizemos agora, o Enem, e o outro com 37 colunas. Vamos mudar nossa visualização aqui para grid e eu vou mostrar uma coisa bem interessante. Vamos aumentar aqui o espaçamento.
Olha só a diferença: o nosso objeto Enem tem 338 megas e o nosso objeto merge Enem tem 566. Então é muito importante você se atentar à seleção das colunas porque isso pode desocupar muita memória da sua máquina de trabalho, da sua estação de trabalho, assim, evitando prováveis problemas no futuro por falta de memória, principalmente na hora de fazer, elaborar os gráficos, que consome bastante memória.
Agora você pode simplesmente apagar o merge Enem. Pronto. Você tem todos os dados em um objeto bem menor com todas as colunas desejadas anteriormente, aqui na nossa variável colunas, que serão utilizadas durante todas as análises até o final do curso.
Depois de obtermos todos os dados necessários, ter feito a seleção agora anteriormente apenas as colunas que nós desejamos para fazer as análises, futuros gráficos, agora nós precisamos conhecer um pouco nossa base de dados, por exemplo, o que cada coluna indica, o que cada coluna armazena. Então, você pode fazer isso aqui com a função str enem, passando os dados, executa, pronto.
Aqui você tem um resumo e vamos fazer uma exploração bem rápida de cada coluna da nossa base de dados para saber o que é, por exemplo, o que é uma coluna numérica, o que é uma coluna categórica e assim vai.
No total, nós temos 23 colunas, correto? Com o número da inscrição, o ano que foi realizado a prova, essa coluna é numérica, né? O código do município, o nome do município, a UF de residência do candidato, da candidata, a UF da escola onde foi realizada, a idade do estudante, o sexo do mesmo, F, M, F, M; situação de conclusão, se ele precisa da prova em Braile ou não, município da prova, UF da prova, o tipo de presença em cada matéria, que é do tipo numérico, a nota de cada matéria também era para ser numérico, você pode observar aqui que está em chr, mas mais para frente nós vamos fazer uma exploração mais detalhada para saber porque está em chr, o tipo de língua, que significa o idioma da prova, da parte de idiomas, se é inglês ou espanhol, o status da redação, se ele está presente, se ele fez ou não, e a nota da redação também que era para ser numérico, que era para ser uma nota, ou seja, uma nota decimal, mas está armazenado também como chr, ou seja, uma variável categórica.
Essas variáveis que eram para ser numéricas e estão como categóricas, deve ser algum problema de inserção de dados, deve ter algum caractere especial, por exemplo, alguma letra que não era para estar, alguma pontuação que não era para estar e ela foi, o próprio R reconheceu essa coluna como categórica, como textual, como chr, porém, mais para frente nós vamos corrigir esse problema para gerar as análises e também os gráficos corretamente.
Sobre o curso Data Visualization parte 2: gráficos com multivariáveis
O curso Data Visualization parte 2: gráficos com multivariáveis possui 218 minutos de vídeos, em um total de 66 atividades. Gostou? Conheça nossos outros cursos de Data Visualization em Data Science, ou leia nossos artigos de Data Science.