Skip to content

vnery5/Econometria

Repository files navigation

Funções e Aplicações de Econometria

A intenção desse GitHub é unificar, simplificar e deixar claro as funções relativas à econometria no Python, usando principalmente o statsmodels, o linearmodels e o scipy. Há uma série de exemplos na pasta Notebooks, contendo aplicações de regressões e testes, MQ2E, modelos de painel, séries temporais, avaliações de políticas públicas e modelos de crescimento econômico.

As funções estão reunidas no arquivo econometric_functions.py. Para usá-las, basta colocar o arquivo no mesmo diretório da sua aplicação e importar como um módulo normal:

import econometric_functions as ef

Caso queira deixar o arquivo em uma pasta separada, coloque o caminho da pasta abaixo e rode esse código no início do seu notebook:

import os
import sys

sCaminhoEconometria = "caminho_da_pasta"
sys.path.append(os.path.abspath(sCaminhoEconometria))

import econometric_functions as ef

As principais funcionalidades estão descritas abaixo:


Regressões e Testes

  • ols_reg(): Executa uma regressão MQO a partir de uma formula, mas com opções mais fáceis para a matriz de covariância (robusta e clusterizada).
  • f_test(): Realiza um teste F de significância conjunta de várias variáveis. Consequentemente, é capaz de realizar um teste t de significância simples ou igualdade de coeficientes.
  • ols_diagnostics(): Talvez uma das maiores contribuições do diretório; é similar ao plot(modelo) do R, plottando gráficos e realizando testes que verificam todas as hipóteses do modelo linear clássico (Gauss-Markov).

Nesse sentido, cooks_distance_outlier_influence() ajuda a averiguar a existência de outliers e observações com alta alavancagem, que poderiam ter muita influência sobre os coeficientes estimados para a regressão. Um exemplo do ols_diagnostics() pode ser visto abaixo:

Diagnósticos MQO


Modelos de Painel e Variáveis Instrumentais

  • xtdescribe_panel(): Similar ao comando do STATA, verifica o grau de balanceamento do painel, ou seja, conta a distribuição do número de aparecimentos dos indivíduos no dataset.
  • panel_structure(): Cria um DataFrame com um MultiIndex de indivíduo-tempo, necessário para os modelos de painel.

Há todos os modelos de painel presentes no livro Introdução a Econometria: uma abordagem moderna (MQO Agrupado, Efeitos Fixos e Efeitos Aleatórios), além de uma implementação do Teste de Hausman.

Além disso, há a implementação de MQ2E para Variáveis Instrumentais. Todos as funções suportam o uso de pesos e de covariâncias robustas e clusterizadas e foram criadas com base no módulo linearmodels.


Modelos Binários, de Contagem e de Seleção Amostral

Implementação de probit(), logit() e poisson(), printando os efeitos marginais e alguns outros comandos interessantes para análises.

Além disso, há uma implementação do modelo heckit() para a correção de seleção amostral. Uma implementação do modelo Tobit para dados truncados pode ser vista aqui.


Séries Temporais

Seguindo a metodologia de Box-Jenkins, apresenta funções de identificação (autocorrelação, teste de estacionariedade e cointegração), estimação (ARIMA, automatizado via pmdarima ou com ordem especificada) e diagnóstico (previsão períodos a frente, previsão frente a dados de teste e métricas de acurácia).

Previsão ARIMA


Avaliação de Políticas Públicas

As funções ainda precisam ser implementadas, mas há uma série de exemplos na pasta Notebooks/Avaliação de Políticas. Os notebooks cobrem os tópicos de Randomização e Variáveis Instrumentais, Diferenças em Diferenças, RDD, Controle Sintético e Propensity Score Matching.

Parte do conteúdo, feito para uma disciplina da faculdade IDP, foi adaptado do livro do World Bank (ver bibliografia) e parte do site Causal Inference for the Brave and The True.

Controle Sintético

Pareamento PSM

Regressão Discontínua


Além desse repositório, tenho um com projetos bem simples para aprender um pouco de Machine Learning e outros temas variados. Ele pode ser acessado aqui.

About

Repositório com algumas funções de econometria em Python

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published