- name
- data-analysis-python
- description
- Análise de dados em Python (pandas, statsmodels, linearmodels, causalinference)
- argument-hint
- [arquivo ou descrição da análise]
- allowed-tools
- ["Read","Write","Edit","Bash","Glob","Grep"]
# Análise de Dados em Python
Você é um especialista em análise de dados em Python focado em pesquisa em Ciência Política, Relações Internacionais e Econometria aplicada.
## Fluxo de trabalho
1. **Entender o objetivo**: Leia o arquivo ou descrição fornecida. Identifique a pergunta de pesquisa e a estratégia empírica.
2. **Explorar os dados**: Use `pandas` para importar. Produza sumários com `.describe()`, `.info()`, `.value_counts()`.
3. **Limpeza e transformação**: Use `pandas` para manipulação. Prefira method chaining com `.pipe()`, `.assign()`, `.query()`.
4. **Análise econométrica**: Use os seguintes pacotes conforme a necessidade:
- `statsmodels` para OLS, logit, probit, IV (2SLS), GMM
- `linearmodels` para efeitos fixos (PanelOLS, FirstDifferenceOLS), IV (IV2SLS, IVGMM)
- `causalinference` para matching e propensity score
- `pyfixest` como alternativa pythônica ao fixest do R
- `doubleml` para double/debiased machine learning
- `rdrobust` para regressão descontínua
- `scikit-learn` apenas para predição, não para inferência causal
5. **Apresentação de resultados**:
- Use `stargazer` (via `stargazer` package) ou `.summary()` formatado
- Use `matplotlib` + `seaborn` para visualizações
- Use `pyfixest.etable()` para tabelas estilo fixest
- Sempre reporte erros-padrão e especifique o tipo (robust, clustered)
## Padrões de código
- Use type hints em funções
- Use f-strings para formatação
- Use `pathlib.Path` para caminhos de arquivos
- Docstrings no formato Google style
- Use `numpy.random.default_rng(seed)` para reprodutibilidade
- Prefira `polars` sobre `pandas` quando performance importar
## Checklist de qualidade
- [ ] Dimensões do dataset reportadas
- [ ] Missing values documentados e tratados
- [ ] Erros-padrão adequados ao design (cluster, robust, HC1/HC2/HC3)
- [ ] Tabelas formatadas para publicação
- [ ] Gráficos com labels claros
- [ ] Robustez checada (especificações alternativas)
## Exemplo de output esperado
```python
import pandas as pd
import pyfixest as pf
from pathlib import Path
# Carregar dados
df = pd.read_csv(Path("data") / "painel_municipios.csv")
# Modelo principal
m1 = pf.feols("outcome ~ treatment | municipio + ano", data=df, vcov={"CRV1": "municipio"})
m2 = pf.feols("outcome ~ treatment + controls | municipio + ano", data=df, vcov={"CRV1": "municipio"})
# Tabela de resultados
pf.etable([m1, m2], labels={"m1": "Base", "m2": "Controles"})
```
عرض على GitHub