Análise de Dados em Python, 4 análises iniciais sobre o Enem.

Lui Magno
comunidadeds
Published in
7 min readNov 7, 2023

Um guia prático e rápido para começar a análise de dados utilizando Python.

Você não precisa ser um profissional para começar a explorar e fazer análise de dados em Python. Uma semana de estudos (ou até menos) e práticas vão te abrir os olhos em relação a essa linguagem. Análise de Dados são para todos, e até uma pessoa comum pode aprender bastante sobre a própria rotina, ou sobre a sua rotina de trabalho com dados.

Existem muitos dados disponíveis na internet: Kaggle, fontes de dados do governo e até você mesmo! Explorar esses dados, para quem vê de fora, parece uma complicação imensa, mas Python é mais simples do que você imagina. Com um conhecimento bem inicial das bibliotecas e um background básico de programação, é possível criar gráficos bem interessantes que já dizem muito, e que já inspiram muitas perguntas.

Onde encontrar dados para realizar uma análise de dados em Python?

Em 2020/2021, quando estava desesperadamente precisando de um tema para escrever meu TCC, fiz essa mesma pergunta. De onde eu vou tirar dados para fazer uma análise utilizando Python?

Depois de muita pesquisa e aconselhamento, encontrei o site do INEP ( Instituto Nacional de Estudos e Pesquisas Educacionais Anísio Teixeira). Lá estão concentrados dados dos mais diversos tipos relacionados à educação, e dentre eles estão os dados do Exame Nacional do Ensino Médio, o ENEM.

Pronto, agora eu já tinha uma ideia do que fazer e de onde os dados viriam:

Mas agora é que o desafio começava de verdade. A base de dados “Microdados_Enem2019” consistia em dados das provas e do questionário socioeconômico (QSE) de quase 5 milhões de alunos. Eu precisei, obviamente, diminuir essa fonte de dados, pois seria ambicioso demais e até suscetível a erro querer realizar uma análise de dados de todos os participantes do exame de forma única. Abaixo você irá encontrar os dados do Enem:

A ideia então foi seguir um processo de filtragem de dados por região. Brasil -> Ceará -> Fortaleza. De 5 milhões de alunos, a minha base de dados agora era de quase 100 mil alunos, um número ainda grande, mas bem razoável.

OBS: como esse texto não é um tutorial, eu não vou explicar para vocês TODAS as minúcias do meu código, isso vocês podem encontrar em outros blogs ou posts. A ideia aqui é mostrar para vocês que com poucas linhas e um pouco de conhecimento a análise de dados já pode ser feita de forma bem rápida e direta.

  1. Importando o Pandas, uma biblioteca de manipulação de dados do Python. Depois posso falar mais dela, mas de começo vamos entender que ela vai auxiliar no tratamento dos dados.
  2. Criando um dataframe raiz (nossos dados), tirando do arquivo que foi feito o download do site do INEP. Site do Inep — Enem.
  3. Lendo o arquivo .csv do Enem e utilizando o método “.head”, onde eu olho o cabeçalho dos dados.
  4. Finalmente tendo acesso aos dados, onde cada linha dessa tabela corresponde a 1 aluno que fez o Enem 2019 em Fortaleza.

Viu como é fácil? Sim, com 4 linhas de código eu já posso ver informações diretas sobre 100 mil alunos. É muito poder.

Análise de dados 1 — Proporção de Gênero

Vamos explorar mais o poder do Python! Por que não começamos a entender mais o perfil dos estudantes de Fortaleza? Primeiro, quero mostrar para vocês a proporção de gênero dos estudantes, vamos a análise 1:

Utilizando a função “.values_counts” na coluna “TP_SEXO” referente ao gênero dos alunos, vemos que existem dados interessantes: quase 55% dos participantes do ENEM são mulheres, e o restante, 45%, de homens.

Essa análise de dados já pode nos levar a insights interessantes: por que mais mulheres que homens? Existe alguma justificativa ou é só a distribuição normal da população? Mulheres se interessam mais pelo ensino superior? Existe uma presença maior de mulheres na cidade de Fortaleza? Ou no Brasil?

Melhor ainda, vamos traçar um gráfico:

  1. Vamos importar a biblioteca matplotlib, que vai nos auxiliar na hora de plotar gráficos.
  2. Escolhendo a cor das nossas barras.
  3. Gerando as barras a partir dos nossos dados, separados em “Fêmea” e “Macho”, por definição do próprio Ministério da Educação.

Viu? 6 linhas foram o suficiente para traçar o gráfico desse dado importante que achamos. Vamos fazer a mesma coisa para um parâmetro importantíssimo quando o assunto é educação: o acesso à internet.

Análise de Dados 2: Acesso à internet

Utilizamos a mesma função do caso anterior, a “.value_counts”. Na tabela do Enem, a letra A corresponde a “sem acesso à internet” e a letra B corresponde a “com acesso à internet”. Ou seja, 22% dos alunos de Fortaleza não têm acesso à internet. Mais um insight muito interessante.

Vamos traçar o gráfico para que o visual nos auxilie na visualização das proporções, isto será nossa análise 2:

Sentiu o poder do Python? Mas tá longe de acabar, essas análises são bem simplórias, vamos aumentar um pouco mais a complexidade.

Análise de dados 3 — Explorando o poder das bibliotecas

O próprio Ministério da Educação separa os alunos participantes do Enem em campos de renda. Onde, de A até Q, os alunos são ranqueados dos que possuem menor renda, até os que possuem maior renda. Agora eu pergunto a vocês, será que o fator renda tem alguma relação com o desempenho dos alunos em matemática?

Vamos descobrir por meio de mais uma análise!

Primeiro, para essa análise mais complexa, vamos utilizar um diagrama de caixa. Para não nos estendermos muito na explicação: um diagrama de caixa indica como estão distribuídos os dados, sendo a caixa uma faixa que contém 50% dos valores e as duas faixas restantes os outros 50%, com 25% abaixo e 25% acima da caixa.

Agora vejam a imagem que eu gerei com a biblioteca matplotlib, criando nossa análise 3:

Estão vendo as caixas? Mesmo não entendendo perfeitamente o que é esse diagrama, conseguimos perceber claramente que existe um aumento da presença de notas altas em caixas de maior renda. Ou seja, as pessoas presentes nas classes O, P e Q, por exemplo, costumam estar bem acima no desempenho do que as pessoas nas classes A, B e C.

Percebeu que análise de dados poderosa? E eu nem estou perto do potencial visual e analítico que essas bibliotecas têm.

Análise de dados 4 — Outra análise social

Vamos fazer o mesmo processo para a categoria raças/etnias. A raça/cor definida pelo aluno tem o seguinte significado no QSE: 1. Branca, 2. Preta, 3. Parda, 4. Amarela, 5. Indígena. Na nossa análise 4, as raças/etnias estão divididas abaixo pela média das notas.

Viram que existe um leve desvio da caixa azul em relação às outras? E as outras caixas mantêm uma leve relação parecida. Já podemos fazer mil e umas perguntas a partir desse gráfico.

Conseguiram notar que, mesmo com pouco código, já conseguimos realizar análises iniciais importantes com Python?

Conclusão

Ser orientado a dados é um dos desafios para as empresas e governos no futuro. Por exemplo, o poder que o Ministério da Educação tem nas mãos com dados como esse é infinito, um universo de possibilidades nas análises de dados e direção de políticas públicas. E é porque a gente nem chegou perto de analisar com profundidade.

O QSE possui diversas outras questões que podem ser utilizadas para traçar o perfil do aluno do Enem, como escolaridade dos pais, meio locomotor, treineiros, níveis de consumo e muito mais.

Nos próximos posts eu pretendo escrever sobre o algoritmo de mineração de dados que apliquei nessa base do ENEM. O Apriori, algoritmo feito para detectar correlações entre alvos de uma base de dados. Utilizado muito no varejo para descobrir porque pessoas compram produto X em função de produto Y, como pão e leite, por exemplo.

Utilizei esse algoritmo para traçar relações entre o desempenho dos alunos e suas características socioeconômicas, pois essas análises iniciais foram muito relevantes para a criação de várias outras hipóteses.

Uma que prevaleceu foi: será que o nível mais alto de escolaridade dos pais influencia mais do que a alta renda deles?

A resposta para isso fica no próximo post! Obrigado por lerem até aqui! Um abraço, e espero que o artigo tenha sido de ajuda.

--

--

Lui Magno
comunidadeds

Cientista de Dados/Backend Developer. Gosto de Ciência, gosto de Cultura Pop em geral e tento criar conteúdo sobre os 2.