Este projeto realiza uma analise exploratoria e clusterizacao dos perfis socioeconomicos dos participantes do ENEM 2024 no estado da Paraiba, utilizando tecnicas de aprendizado de maquina nao supervisionado para identificar grupos de candidatos com caracteristicas similares.
- Compreender quem sao os estudantes que realizaram o ENEM 2024 na Paraiba
- Identificar grupos de candidatos com caracteristicas socioeconomicas semelhantes
- Analisar fatores como renda familiar, escolaridade dos responsaveis, condicoes de moradia e acesso a recursos educacionais
- Gerar insights para politicas publicas educacionais
O projeto esta dividido em tres etapas sequenciais:
Arquivo: primeira_etapa.ipynb
Atividades realizadas:
- Carregamento dos microdados do ENEM 2024 (fonte: INEP)
- Filtragem dos dados da Paraiba (128.546 participantes)
- Renomeacao de colunas para melhor compreensao
- Tratamento de valores ausentes
- Selecao de variaveis relevantes para analise socioeconomica
Arquivo: segunda_etapa.ipynb
Output: dados_transformados_clusterizacao_v2.csv
Atividades realizadas:
- Selecao de 19 variaveis relevantes para clusterizacao
- Pipeline de transformacao com scikit-learn:
- Ordinais (escolaridade): OrdinalEncoder + StandardScaler
- Ordinais (bens): OrdinalEncoder + StandardScaler
- Numericas: StandardScaler + SimpleImputer (mediana)
- Binarias: SimpleImputer (moda) + StandardScaler
- Categoricas: OneHotEncoder (drop first) + StandardScaler
- Padronizacao completa: Todas as variaveis (incluindo one-hot encoded) foram padronizadas com StandardScaler
- Geracao de 35 features transformadas
Arquivo: terceira_etapa.ipynb
Output: dados_com_clusters_e_perfis.csv
Atividades realizadas:
- Aplicacao do DBSCAN com analise de parametros (eps, min_samples)
- Comparativo DBSCAN com e sem PCA (5 a 35 componentes)
- Aplicacao do K-Means com metodo do cotovelo e silhouette analysis
- Comparacao de metricas entre algoritmos
- Identificacao e nomeacao de 4 perfis socioeconomicos
- Visualizacoes e analise cruzada com variaveis categoricas
Na primeira versao da segunda etapa, apenas as variaveis numericas continuas foram padronizadas. As variaveis one-hot encoded (0/1) permaneceram sem padronizacao, o que causou:
- DBSCAN encontrava apenas 2 clusters (basicamente dividindo por uma variavel dominante)
- As variaveis continuas (renda, escolaridade) dominavam o calculo de distancia
- As variaveis categoricas tinham pouco peso na clusterizacao
Apos a padronizacao completa de todas as variaveis (incluindo one-hot encoded), os resultados mudaram drasticamente:
| Metrica | Sem Padronizacao Completa | Com Padronizacao Completa |
|---|---|---|
| DBSCAN (clusters) | 2 | 166 |
| DBSCAN + PCA 5 (clusters) | - | 4 |
| Estrutura dos dados | Aparentemente binaria | Multi-cluster |
- Variaveis one-hot (0/1) tem variancia muito menor que variaveis continuas
- Sem padronizacao, o algoritmo "ignora" as categoricas no calculo de distancia
- Com padronizacao, todas as variaveis tem peso equivalente (media=0, desvio=1)
- Isso permite identificar subgrupos baseados em combinacoes de todas as caracteristicas
| Algoritmo | Clusters | Silhouette | Calinski-Harabasz | Davies-Bouldin |
|---|---|---|---|---|
| DBSCAN (PCA 5) | 4 | 0.2901 | - | - |
| DBSCAN (PCA 15) | 68 | 0.2162 | 2226 | 1.13 |
| DBSCAN (original) | 166 | 0.1157 | 1326 | 1.49 |
| K-Means (k=13) | 13 | 0.1527 | 8606 | 1.44 |
| K-Means (k=4) | 4 | 0.1371 | - | - |
Escolha final: K-Means com k=4 para melhor interpretabilidade, alinhado com o DBSCAN+PCA5.
| Perfil | N | % | Caracteristicas Principais |
|---|---|---|---|
| Baixa Renda com Capital Cultural | 20.197 | 15.7% | Menor renda, porem pais com escolaridade na media. Alta proporcao de treineiros. |
| Vulnerabilidade Socioeconomica | 76.299 | 59.4% | Maior grupo. Renda e escolaridade dos pais abaixo da media, menor indice de bens. |
| Classe Media Emergente | 11.239 | 8.7% | Renda acima da media, pais com baixa escolaridade. Mobilidade social ascendente. |
| Classe Alta | 20.811 | 16.2% | Maior renda, pais com alta escolaridade, maior acesso a tecnologia e escola privada. |
-
Vulnerabilidade e a maioria: 59.4% dos participantes estao em situacao de vulnerabilidade socioeconomica, com deficit tanto economico quanto de capital cultural.
-
Capital cultural vs renda: O perfil "Baixa Renda com Capital Cultural" revela que escolaridade dos pais e renda nao estao perfeitamente correlacionados.
-
Mobilidade social: A "Classe Media Emergente" (8.7%) representa familias onde os filhos estao superando o nivel educacional dos pais.
-
Treineiros como estrategia: O perfil "Baixa Renda com Capital Cultural" tem a maior proporcao de treineiros (z=+1.98), indicando que pais mais escolarizados incentivam a pratica do ENEM.
-
Desigualdade no acesso: A "Classe Alta" tem amplo acesso a tecnologia e maior presenca em escolas privadas.
- Python 3.x
- Pandas - Manipulacao de dados
- NumPy - Operacoes numericas
- Scikit-learn - Algoritmos de ML e pre-processamento
- Matplotlib/Seaborn - Visualizacoes
- Jupyter Notebook - Ambiente de desenvolvimento
| Tipo | Variaveis | Transformacao |
|---|---|---|
| Ordinais | esc_mae, esc_pai, tem_computador_notebook, tem_carro |
OrdinalEncoder + StandardScaler |
| Numericas | renda_log, pessoas_residencia, total_bens, ano_conclusao |
StandardScaler |
| Binarias | tem_internet_wifi, possui_renda, treineiro |
Imputer (moda) + StandardScaler |
| Categoricas | faixa_etaria, sexo, estado_civil, cor_raca, nacionalidade, status_conclusao, tipo_ensino, tipo_escola |
OneHotEncoder + StandardScaler |
DBSCAN:
- Testados eps de 0.5 a 4.0 e min_samples de 5 a 20
- Melhor configuracao: eps=2.5, min_samples=10
- Comparativo com PCA: melhor silhouette com 5 componentes (0.2901)
- Encontrou 166 clusters nos dados originais, 4 clusters com PCA 5
K-Means:
- Testados k de 2 a 14
- Melhor k pelo silhouette: k=13 (0.1527)
- Escolhido k=4 para maior interpretabilidade e alinhamento com DBSCAN+PCA5
pip install pandas numpy matplotlib seaborn scikit-learn jupyter-
Obter os microdados do ENEM 2024:
- Acesse: https://www.gov.br/inep/pt-br/acesso-a-informacao/dados-abertos/microdados/enem
- Baixe e extraia o arquivo de microdados
-
Executar os notebooks em ordem:
jupyter notebook primeira_etapa.ipynb jupyter notebook segunda_etapa.ipynb jupyter notebook terceira_etapa.ipynb
clusterization_enem/
├── README.md
├── primeira_etapa.ipynb # Pre-tratamento dos dados
├── segunda_etapa.ipynb # Transformacao dos dados
├── terceira_etapa.ipynb # Clusterizacao e analise
├── dados_transformados_clusterizacao_v2.csv # Dataset transformado (gerado)
└── dados_com_clusters_e_perfis.csv # Dataset com perfis (gerado)
Instituto Nacional de Estudos e Pesquisas Educacionais Anisio Teixeira (INEP)
- Link: https://www.gov.br/inep/pt-br/acesso-a-informacao/dados-abertos/microdados/enem
- Ano: 2024
- Estado: Paraiba (PB)
- Registros: 128.546 participantes
Este projeto utiliza dados publicos disponibilizados pelo INEP/MEC.
Projeto de analise de dados socioeconomicos do ENEM 2024 - Paraiba