Fechar menu lateral

Departamentos

Plano de Ensino

Disciplina: ECO077 - INTRODUÇÃO À MODELAGEM ECONÔMICA E CIÊNCIA DE DADOS

Carga horária: 60

Departamento: DEPTO DE ECONOMIA /ECO

Ementa
keyboard_arrow_down keyboard_arrow_up
Este curso tem o propósito de tratar sobre como ciência de dados, economia e programação podem interagir com o propósito de melhor compreender o mundo ao nosso redor. A maior ênfase aqui não está apenas na programação e nos métodos necessários para analisar os dados, mas também na interpretação dos resultados pela luz da economia. O curso se inicia com uma introdução aos fundamentos de programação na linguagem Python. Na sequência serão exploradas as bibliotecas científicas NumPy, MatPlotlib e SciPy e seu uso em álgebra linear, probabilidade e otimização. A biblioteca científica Pandas é essencial em ciência de dados e será explorada em detalhes: funcionalidades básicas, indexação, formatos de armazenamento, limpeza de dados, remodelagem, mesclar, agrupar, séries temporais e plotagem intermediária. Finalmente passa-se a aplicações em Ciência de Dados: visualização de dados, regressão, estudo de caso: reincidência, mapeamento em Python, classificação, trabalhando com texto, aprendizado de máquina em economia e efeitos Heterogêneos.

Objetivos Gerais

Ao contrário dos cursos de ciência da computação, ciência de dados ou estatística, a ênfase deste curso consiste em reunir conceitos fundamentais de programação e estatística necessários para analisar dados e, subsequentemente, interpretar os resultados através das lentes da economia. Além disso, o foco do curso está em nos concentramos em desenvolver habilidades fundamentais de programação para estudos avançados em economia e finanças.
Objetivos Específicos

Ao final da disciplina, os alunos que concluírem este curso irão:

- reconhecer e compreender as conexões entre a teoria econômica e a prática da ciência de dados, indo além das abordagens estatísticas teóricas.

- trabalhar como analista de dados ou em uma função que requeira conhecimentos de ciência de dados.

- ser capazes de explorar os problemas econômicos em um contexto mais amplo e fornecer insights exclusivos associados a esse contexto.

1 - Introdução ao Python.
1.1 - Sobre o Python.
1.1.1. O que é o Python?
1.1.2. Programação científica.
1.2. Instalando o ambiente Python.
1.2.1. Anaconda.
1.2.2. Jupyter Notebooks.
1.2.3. Instalando bibliotecas.
1.2.4. Trabalhando com arquivos Python.
1.3. Um exemplo introdutório.
1.3.1. A tarefa: construir o gráfico de um ruido branco.
1.4. Funções em Python.
1.4.1. Conceitos básicos sobre uma função.
1.4.2. Definindo funções.
1.4.3. Aplicações.
1.5. Fundamentos de Python.
1.5.1. Tipos de dados.
1.5.2. Entradas e saídas.
1.5.3. Iterações.
1.5.4. Comparações e operadores lógicos.
1.5.5. Mais funções.
1.6. Introdução à Programação Orientada à Objetos.
1.6.1. Objetos.
1.6.2. Classes.
1.6.3. Métodos.
2. Python para computação científica.
2.1. Bibliotecas científicas.
2.1.1. Velocidade de execução.
2.1.2. Vetorização.
2.2. O pacote NumPy.
2.2.1. Vetores NumPy.
2.2.2. Operações com vetores.
2.2.3. Outras funcionalidades.
2.3. O pacote MatPlotlib.
2.3.1. A API no estilo do Matlab.
2.4. O pacote SciPy.
2.4.1. SciPy x NumPy.
2.4.2. O subpacote scipy.stats.
2.4.3. O subpacote scipy.optimize.
2.4.4. O subpacote scipy.integrate.
2.5. Álgebra linear aplicada.
2.5.1. Vetores e matrizes.
2.5.2. Portfolios.
2.6. Probabilidade.
2.6.1. Distribuições discretas.
2.6.2. Distribuições contínuas.
2.7. Otimização.
2.7.1. Derivadas e pontos críticos.
2.7.2. Apicação: Teoria do Consumidor.
3. Pandas.
3.1. Introdução ao Pandas.
3.1.1 O pacote Pandas.
3.1.2. Séries.
3.1.3. DataFrame.
3.1.4. Tipos de dados.
3.1.5. Alterando DataFrames.
3.2. Funcionalidades Básicas.
3.2.1. Dados estaduais de desemprego.
3.2.2. Dados em pandas.
3.2.3. Agregações em DataFrame.
3.2.4. Transformações.
3.2.5. Seleção Booleana.
3.3. Indexação.
3.3.1. O que é indexação?
3.3.2. Definindo o índice.
3.3.3. Reconfigurando o índice.
3.3.4. Como escolher um índice com cuidado.
3.4. Formatos de Armazenamento.
3.4.1. Formatos de arquivo.
3.4.2. Gravando DataFrames.
3.4.3. Lendo arquivos em DataFrames.
3.4.4. Prática.
3.5. Limpeza de dados.
3.5.1. Limpeza de dados.
3.5.2. Métodos de String.
3.5.3. Conversões de tipo.
3.5.4. Dados ausentes.
3.5.5. Estudo de caso.
3.5.6. Apêndice: Desempenho dos métodos .str.
3.6. Remodelagem.
3.6.1. Tidy Data.
3.6.2. Remodelando seus dados.
3.6.3. Long vs Wide.
3.6.4. set_index, reset_index e transposição.
3.6.5. stack e unstack.
3.6.6. melt.
3.6.7. pivot e pivot_table.
3.6.8. Visualizando a remodelagem.
3.7. Mesclar.
3.7.1. Combinação de Datasets.
3.7.2. pd.concat.
3.7.3. pd.merge.
3.7.4. Argumentos para merge.
3.7.5. df.join.
3.7.6. Estudo de caso.
3.7.7. Exemplo extra: atrasos de companhias aéreas.
3.7.8. Visualizando operações de mesclagem.
3.8. Agrupando.
3.8.1. Dividir-Aplicar-Combinar.
3.8.2. Estudo de caso: Atrasos de companhias aéreas.
3.9. Séries temporais.
3.9.1. Introdução.
3.9.2. Analisando Strings como dados.
3.9.3. Formatação de dados.
3.9.4. Extraindo dados.
3.9.5. Acessando propriedades dos dados.
3.9.6. Leads e Lags: df.shift.
3.9.7. Cálculos contínuos: .rolling.
3.9.8. Mudanças de frequência: .resample.
3.9.9. Opcional: chaves de API.
3.10. Plotagem intermediária.
3.10.1. Introdução.
3.10.2. Replicando uma figura profissional.
3.10.3. Dados.
3.10.4. Aquecimento.
3.10.5. Limpeza de Dados.
3.10.6. Construindo o gráfico.
3.10.7. Salvando a Figura.
4 - Aplicações em Ciência de Dados.
4.1. Visualização de dados: regras e diretrizes.
4.1.1. Introdução.
4.1.2. Passos para a criação de gráficos eficazes.
4.1.3. Tipos de visualização.
4.1.4. Cor em plotagens.
4.1.5. Regras de visualização.
4.2. Regressão.
4.2.1. Introdução à Regressão.
4.2.2. Regressão linear.
4.2.3. Regressão Lasso.
4.2.4. Random Forests.
4.2.5. Neural Networks.
4.3. Estudo de caso: reincidência.
4.3.1. Introdução à reincidência.
4.3.2. Descrição de dados.
4.3.3. Estatísticas descritivas.
4.3.4. Regressão.
4.4. Mapeamento em Python.
4.4.1. Mapeamento em Python.
4.4.2. Estudo de caso: votação em Wisconsin.
4.5. Classificação.
4.5.1. Introdução à Classificação.
4.5.2. Exemplo: regressão logística.
4.5.3. Avaliação de modelo.
4.5.4. Classificadores de neural networks.
4.5.5. Aplicação: Prevendo recessões nos EUA.
4.6. Trabalhando com Texto.
4.6.1. Introdução.
4.6.2. Avalanches.
4.6.3. Previsão de incidentes a partir de texto.
4.6.4. Aprendizagem Não Supervisionada.
4.7. Machine Learning (Aprendizado de máquina) em economia.
4.7.1. Introdução.
4.7.2. Política de previsão.
4.7.3. Estimation of nuisance functions.
4.7.4. Efeitos Heterogêneos.
4.8. Efeitos Heterogêneos.
4.8.1. Antecedentes e Dados.
4.8.2. Resultados potenciais e efeitos do tratamento.
4.8.3. Inferência de aprendizado de máquina genérico.
4.8.4. Casual Trees and Forests.
1. Thomas J. Sargent and John Stachurski. QuantEcon: lectures on Python programming for economics and finance, 2020. URL: https://python-programming.quantecon.org/.
2. Chase Coleman, Spencer Lyon and Jesse Perla. More Contributors. QuantEcon: lectures on programming, data science, and economics, 2020. https://datascience.quantecon.org/.