Skip to content

gustavocaldeirasantos/MBA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎓 Análise de Admissões em MBA: o que define a aprovação?

Um estudo de dados end-to-end sobre ~6,2 mil candidaturas a um MBA de elite — da limpeza à modelagem preditiva — usando testes de hipótese, regressão logística (com odds ratios) e clusterização para entender o que realmente pesa no processo seletivo. Com tratamento honesto de classes desbalanceadas.

Python Pandas NumPy SciPy statsmodels scikit-learn Seaborn License


👤 Autor

Gustavo Caldeira — Analista de Dados

LinkedIn Email


📌 Contexto do problema de negócio

Programas de MBA de elite recebem milhares de candidaturas para poucas vagas. Para o comitê de admissões, candidatos e consultorias educacionais, entender o que diferencia quem é aprovado tem valor direto: orienta estratégia de candidatura, políticas de diversidade e calibragem do processo seletivo.

A base reúne 6.194 candidaturas com notas acadêmicas (GPA, GMAT), experiência profissional, área de formação, indústria de origem e dados demográficos. Buscamos responder:

  • 📝 Notas são tudo? Qual pesa mais: GPA ou GMAT?
  • 💼 A experiência profissional faz diferença?
  • ⚖️ Há diferença por gênero ou nacionalidade na taxa de aprovação?
  • 🤖 É possível prever a admissão e quantificar o efeito de cada fator?

Decisão de dados crítica: na base original, a coluna de admissão vinha vazia para a maioria — mas isso não é dado faltante: representa candidatos negados (Deny). Interpretar corretamente esse valor (5.194 negados, 900 admitidos, 100 lista de espera) é o que torna toda a análise válida. Taxa de admissão real: 14,5%.


🧪 Metodologia estatística

# Etapa Técnicas Por que foi escolhida
1 Limpeza & Preparação Decodificação do alvo (Deny/Admit/Waitlist), tratamento de race estrutural, feature engineering A etnia é nula exatamente para internacionais (só se coleta de domésticos) — marcamos como categoria, não imputamos. Criamos um score_academico (GPA+GMAT padronizados).
2 Estatística Descritiva Média, mediana, desvio, CV, assimetria, curtose, normalidade Caracteriza GPA, GMAT e experiência.
3 EDA Avançada Outliers (IQR/Z-score), correlação, taxa de admissão por categoria Núcleo da leitura bivariada: quais grupos são mais aprovados.
4 Estatística Inferencial Teste t de Welch, ANOVA, Qui-quadrado, intervalos de confiança Valida se as diferenças observadas são reais ou acaso.
5 Modelagem Regressão Logística (statsmodels → odds ratios; sklearn → ROC-AUC, balanceada), K-Means Explica e prevê a admissão; segmenta perfis de candidato.

Por que não medir o modelo por acurácia? Com apenas 14,5% de admitidos, prever "negado" para todos daria ~85% de acurácia — e seria inútil. Por isso usamos class_weight='balanced' e avaliamos por ROC-AUC e recall.


💡 Principais insights

Resultados obtidos na execução completa do pipeline (python main.py).

1. 📝 O GMAT é o grande diferenciador — mais que o GPA

Admitidos têm GMAT médio de 693 contra 644 dos demais (teste t de Welch: t = 32,5; p ≈ 10⁻¹⁷²). O GPA também difere (3,36 vs 3,23; p ≈ 10⁻¹²¹), mas o efeito do GMAT é maior. Na regressão logística (variáveis padronizadas):

Fator Odds Ratio p-valor Leitura
GMAT (+1 desvio) 2,39× < 0,001 mais que dobra a chance de admissão
GPA (+1 desvio) 1,57× < 0,001 forte, porém menor que o GMAT
Ser homem 0,42× < 0,001 reduz a chance pela metade (vs mulher)
Experiência, nacionalidade, área ~1,0 n.s. sem efeito significativo

Odds ratios

2. ⚖️ Um gap de gênero expressivo

As mulheres são admitidas a 20,0%, contra 11,4% dos homens — uma diferença estatisticamente significativa (qui-quadrado: χ² = 84,2; p ≈ 10⁻²⁰). Curioso: o número absoluto de admitidos é idêntico (450 cada), embora os homens sejam 64% dos candidatos. A regressão logística confirma o efeito mesmo controlando GPA e GMAT.

3. 💼 O "mito da experiência" desmentido

A experiência profissional não diferencia admitidos de não admitidos (5,05 vs 5,01 anos; teste t p = 0,34) e é irrelevante no modelo (OR ≈ 1,0). A quantidade de anos não move o processo — provavelmente importa a qualidade, não capturada nesta base.

4. 🎯 Área de formação e nacionalidade não importam

  • ANOVA: o GMAT médio não difere entre áreas (Humanities/STEM/Business; p = 0,60).
  • Qui-quadrado: nem a área (p = 0,76) nem a nacionalidade (p = 0,44) se associam à admissão.

➡️ O processo é, nessas dimensões, meritocrático em notas e neutro quanto a formação/origem.

5. 🤖 Modelo preditivo com bom poder de discriminação (ROC-AUC 0,82)

A Regressão Logística balanceada atinge ROC-AUC = 0,82 e recall de 0,78 para a classe minoritária (captura 78% dos futuros admitidos). A acurácia (0,74) fica abaixo da linha de base ingênua — um trade-off consciente: priorizamos identificar os admitidos em vez de inflar a acurácia ignorando-os.

Matriz de confusão

6. 🧩 Quatro perfis de candidato (K-Means) com gradiente claro de admissão

Cluster Perfil GPA GMAT Taxa de admissão
3 🏆 Alto desempenho 3,42 714 35,6%
1 / 2 📊 Mediano ~3,26 ~649 ~11%
0 📉 Baixo desempenho 3,08 599 2,6%

A chance de admissão salta de 2,6% (cluster mais fraco) para 35,6% (cluster mais forte) — a nota é destino.


📂 Estrutura do repositório

MBA/
├── data/
│   ├── raw/MBA.csv                      # fonte
│   └── processed/                       # base limpa (gerada pelo pipeline)
├── src/
│   ├── config.py                        # caminhos e parâmetros centralizados
│   ├── data_loader.py                   # 1. carregamento
│   ├── preprocessing.py                 # 2. limpeza + decodificação do alvo
│   ├── descriptive_stats.py             # 3. descritiva (assimetria, curtose, normalidade)
│   ├── eda_advanced.py                  # 4. outliers + correlação + taxa de admissão
│   ├── inferential_stats.py             # 5. teste t, ANOVA, qui-quadrado, IC
│   ├── modeling.py                      # 6. regressão logística + K-Means
│   └── visualization.py                 # funções de plotagem
├── notebooks/
│   ├── notebook_de_analise.ipynb        # narrativa importando src/
│   └── notebook_eda_original.ipynb      # EDA original (versão anterior do projeto)
├── reports/figures/                     # gráficos exportados
├── main.py                              # orquestra o pipeline completo
├── requirements.txt
├── .gitignore
└── README.md

🧱 Decisões de engenharia

  • Modularidade, tipagem e dataclasses para resultados estruturados.
  • Configuração central em config.py (sem números mágicos).
  • Reprodutibilidade: random_state fixo e dependências travadas.

🚀 Como executar localmente

1. Clonar

git clone https://github.com/gustavocaldeirasantos/MBA.git
cd MBA

2. Ambiente virtual

Windows (PowerShell):

py -m venv .venv
.\.venv\Scripts\Activate.ps1

Linux / macOS:

python3 -m venv .venv && source .venv/bin/activate

3. Dependências

pip install -r requirements.txt

4. Rodar o pipeline completo

python main.py

Executa todas as etapas, salva a base limpa em data/processed/ e os gráficos em reports/figures/.

5. (Opcional) Módulo isolado

python -m src.inferential_stats
python -m src.modeling

6. (Opcional) Notebook

Abra notebooks/notebook_de_analise.ipynb no VS Code/Jupyter e selecione o kernel do .venv.


🛠️ Tecnologias

Python · Pandas · NumPy · SciPy · statsmodels · scikit-learn · Seaborn · Matplotlib


📜 Licença

Distribuído sob a licença MIT.


📊 Projeto de portfólio — análise de dados com fundamentação estatística. Dataset público de candidaturas a MBA. As conclusões refletem os padrões desta amostra específica.

About

Analise estatistica de admissoes em MBA: regressao logistica (odds ratios), testes de hipotese e classificacao com Python.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors