Search This Blog

Wednesday, March 29, 2017

Aula 7 de Métodos Computacionais em Economia - Força Bruta

Na nossa sétima aula de métodos computacionais discutimos vários problemas clássicos usando o método de força bruta (usando a definição do problema). Obviamente, nas próximas aulas iremos aprender estratégias que produzam algoritmos menos custosos. Esses são os slides usados em sala.


Abaixo temos os exemplos apresentados em sala de aula:

Algoritmos de ordenação com complexidade quadrática

Cálculo de máximo e mínimo de uma sequência

Busca linear em uma lista

Cálculo de determinantes usando cofatores

Produto de matrizes em Python

Par mais próximo em python

Substring matching

Fecho convexo

Referências Adicionais para essa aula:

Introduction to the Design and Analysis of Algorithms - Anany Levitin [Seções 3.1, 3.2 e 3.3]

Referências Complementares:

Computational Geometry: Algorithms and Applications - Mark de Berg and Otfried Cheong

Friday, March 24, 2017

Aula 6 de Métodos Computacionais em Economia - Filas e Pilhas

Na nossa sexta aula de métodos computacionais discutimos duas coleções importantes de dados: pilhas e filas. Esses são os slides usados em sala.

Abaixo temos os exemplos apresentados em sala de aula:

Como implementar uma pilha em python?

Como implementar uma fila em python?

Como python aloca memória dinamicamente para uma lista?


Referências Adicionais para essa aula:

Introduction to Algorithms - Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest e Clifford Stein [Seções 10.1, 17.2 and 17.4]

Data Structures and Algorithms in Python - Michael T. Goodrich, Roberto Tamassia, Michael H. Goldwasser [Seções 5.3, 6.1, 6.2]

Fundamentals of Python: Data Structures - Kenneth Lambert [Capítulos 7 e 8]

Data Structures and Algorithms Using Python - Rance D. Necaise [Capítulos 7 e 8]

Solução da série de exercícios

Você pode dar um exemplo de um algoritmo que verifica se um número é um palíndromo usando pilha?

Como usar uma pilha para gerar todas as permutações de um conjunto?

Algoritmo não recursivo para gerar todos os subconjuntos de um dado conjunto

Aula 5 de Métodos Computacionais em Economia - Complexidade computacional



Na nossa quinta aula de métodos computacionais discutimos Complexidade Computacional. Esses são os slides usados em sala.

Abaixo temos os exemplos apresentados em sala de aula:

Medição empírica da complexidade computacional

Referências Adicionais para essa aula:

Introduction to Algorithms - Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest e Clifford Stein [Capítulo 3]

Introduction to the Design and Analysis of Algorithms - Anany Levitin [Capítulo 2]

Soluções da série de exercícios:

Como calcular a complexidade computacional das implementações recursivas da série de fibonacci?

Qual a complexidade computacional de um algoritmo recursivo que satisfaz a relação de recorrência?

Qual a complexidade computacional dessas relações de recorrência de acordo com o Teorema Mestre (master theorem)?

Wednesday, March 22, 2017

Aula 4 de Métodos Computacionais em Economia - Programação Orientada a Objeto

Na nossa quarta aula de métodos computacionais discutimos Noções de Programação Orientada a Objeto. Esses são os slides usados em sala.


Abaixo temos os exemplos apresentados em sala de aula:

Exemplo de Classes

Exemplo de encapsulamento

Exemplo de sobrecarga de operadores

Exemplo de polimorfismo

Exemplos de iteradores

Exemplos de geradores

Exemplo de herança

Exemplo de classe abstrata

Referências Adicionais para essa aula:

1. Usuários de Python podem ter interesse em olhar:

Think Python - Allen Downey

2. Usuários de C++ podem ter interesse em olhar:

Think C++

3. Usuários de Java podem ter interesse em olhar:

Intro to Java Programming

Tuesday, March 14, 2017

Aula 3 de Métodos Computacionais em Economia - Recursão

Na nossa terceira aula de métodos computacionais discutimos recursões. Esses são os slides usados em sala.


Abaixo temos os exemplos apresentados em sala de aula:

Implementações da sequencia de Fibonacci

Implementações do fatorial de um número

Solução da Torre de Hanoi

Referências:

Think recursively - Eric S. Roberts

Persian Recursion Anne M. Burns Mathematics Magazine Vol. 70, No. 3 (Jun., 1997), pp. 196-199

The Algorithmic Beauty of Plants - Przemyslaw Prusinkiewicz and Aristid Lindenmayer (1991)

Referências Adicionais para essa aula:

1. Usuários de Python podem ter interesse em olhar:

Think Python - Allen Downey: Capítulo 5.

2. Usuários de C++ podem ter interesse em olhar:

Think C++: Capítulo 4.


Soluções da série de exercícios

Observação: Vários dos exercícios abaixo usam a idéia de Turtle Graphics discutida aqui.

Algoritmo de Euclides

Pinturas de Mondrian usando recursão


Árvores usando recursão


Ilhas de Koch

Ilhas de Koch 2

Sierpinski Gasket

Gosper Hexagonal Curve

Tree OL Systems

Tree OL Systems 2






Aula 2 de Métodos Computacionais em Economia - Coleções Básicas de Dados

Na nossa segunda aula de métodos computacionais discutimos coleções básicas de dados. Esses são os slides usados em sala.

Abaixo temos os exemplos apresentados em sala de aula:

Como usar sequências de dados ou arrays em programação estruturada?

Como usar conjuntos ou sets em programação computacional?

Como usar mapas (maps) ou dicionários em programação computacional?

Soluções de exercícios

Como implementar o produto de matrizes? [Considere apenas a solução convencional nessa resposta. As outras serão discutidas mais para frente no curso]

Como fatorar um número inteiro?






Material de apoio ao curso Métodos Quantitativos em Economia da Defesa

Esse material deve servir de apoio ao curso de Métodos Quantitativos em Economia da Defesa. Os estudantes devem considerar esse material como uma sugestão de estudo. Obviamente, o estudante que ler o material antes da aula aprenderá mais facilmente o assunto.

Plano de Ensino

Pegue seu plano de ensino aqui.

Séries de Exercícios

O aluno deve considerar fazer três tipos de exercícios para aprender bem o conteúdo. O primeiro grupo de exercícios consiste dos exercícios apresentados ainda em sala de aula no quadro que são resolvidos em conjunto com o professor e colegas, que usualmente complementam o conteúdo de sala de aula. O segundo grupo de exercícios consiste de exercícios que aparecem nas referências complementares ao curso. O terceiro grupo de exercícios é formado por séries de exercícios que serão apresentados no fim de cada tópico. Alguns dos exercícios dessa séries tem o propósito de revisar a teoria (primeiro tipo) e outros têm o propósito de fazer o aluno pensar sobre a teoria (segundo tipo). Alguns desses exercícios (segundo tipo) podem ser consideradas difíceis e, por isso, todos têm uma solução. Eles são importantes pois fazem os estudantes pensarem com mais cuidado sobre o que aprenderam. Se você não conseguir resolver todos, não desanime. Escreva o problema e tente entendê-los: (1) Qual a definição usada pare resolver esse problema? Você deveria lembrar dessa definição? (2) Quais propriedades foram usadas? Você deveria conhecer essas propriedades? E agora, você conseguiu? Se ainda não conseguiu, refaça as mesmas perguntas para entender porque não conseguiu. É válido ainda mencionar que as soluções desses exercícios foram postadas no PRorum.com. Logo, a ferramenta de comentários desse forum pode ser usada para esclarecer algum detalhe da resolução que não tenha ficado claro.

Plano de Estudo de Álgebra Linear

Qualquer livro de Álgebra Linear que o aluno se sinta confortável é suficiente para acompanhar o curso. Entretanto, aqui nesse material vamos focar nos livros que estão disponíveis no plano de ensino:

Ref1: Introdução à Álgebra Linear - Adilson Gonçalves e Rita M. L. de Souza [Adilson]

Ref2: Mathematics for Economists - Carl P. Simon and Lawrence E. Blume (já disponível em português) [Simon]

Ref3: Matemática para Economistas - Alpha C. Chiang e Kevin Wainwright. [Chiang]

Tópico 1: Vetores e Noções de Espaços Vetoriais

Leituras:

[Adilson] Seções 1.1 a 1.6 e Seções 4.1 a 4.4.

[Adilson] Para ter uma visão geométrica, veja o resto do capítulo 1.

[Simon] Capítulo 10 e Seções 27.1, 27.2 e 27.6

[Chiang] Não tem uma apresentação adequada desse tópico. [Aparece algo na seção 4.3]

Série de Exercícios: Veja aqui.

Exercícios repetitivos: Veja Seções 1.2 a 1.5 do Schaum's Outline of Linear Algebra - Seymour Lipschutz and Marc Lipson.

Aplicações

Um vetor é uma entidade básica de representação em matemática que aparece em muitas situações em economia. Por exemplo, pode falar em vetor de preços de n coordenadas quando nos referimos a cesta de consumo de n produtos ou a um mercado financeiro com n ativos.

Um espaço vetorial é um conjunto com certa estrutura que é usado em muitas situações em economia. A grande maioria dos problemas importantes em economia está definido em espaços vetoriais ou em translações desses espaços, ou seja, a solução pertence a um determinado espaço vetorial ou uma translação desse espaço. Por exemplo, o Rn é um espaço vetorial. A solução de um sistema linear homogêneo é um subespaço vetorial e a solução de um sistema linear não homogêneo é a translação de um subespaço vetorial.

Em finanças, um subespaço vetorial particularmente importante é aquele subespaço gerado pelo payoff de todos os ativos do mercado. Veja aqui a definição exata desse subespaço nas notas de aula do curso de finanças. Qual a relevância de um determinado direito contigente pertencer ou não a esse subespaço? Por exemplo, considerados dados os preços dos ativos, eu consigo encontrar um único preço para qualquer direito contigente que pertence a esse subespaço. Se ele não pertencer, o que ocorre?


Tópico 2: Matrizes

Leituras:

[Adilson] Capítulo 2

[Simon] Capítulo 8

[Chiang] Seções 4.1, 4.2, 4.4, 4.5 e 4.6


Série de Exercícios: Veja aqui.


Exercícios repetitivos: Veja Seções 2.2 a 2.7 do Schaum's Outline of Linear Algebra - Seymour Lipschutz and Marc Lipson.

Aplicações

Uma matriz também é uma entidade básica de representação em matemática que aparece em muitas situações em economia.

Matrizes de dados serão muito usadas em econometria, onde cada coluna guardará dados de uma determinada variável aleatória de interesse. Por exemplo, imagine que você quer explicar o salário de um indivíduo usando variáveis relacionadas com o indivíduo. Quais as variáveis que você acredita que podem explicar o salário do indivíduo? Suponha que você acredite que escolaridade, gênero, escolaridade da mãe são variáveis que podem explicar o salário. Então você pode construir uma matriz de dados que inclui essas variáveis em cada coluna.

Em finanças, matrizes também são usadas para guardar payoffs dos ativos em um mercado financeiro. Por exemplo, suponha que o mercado tenha J ativos e seja modelado por S estados. Então, uma matriz de ordem S x J pode ser usada para guardar esses ativos. Veja por exemplo esse modelo nas notas de aula do curso de finanças.

Outras matrizes importantes que aparecem muito em Econometria e Finanças são as Matrizes de Variância-Covariância. Por exemplo, a teoria básica de escolha de carteiras supõe que investidores desejam construir carteiras que possuem altos valores esperados e baixas variâncias. Um conceito fundamental que aparece nesse contexto é a idéia de diversificação. Veja um exemplo simples sobre esse assunto no PRorum.


Tópico 3: Operações Elementares/Sistemas Lineares

Leituras:

[Adilson] Capítulo 3: Seções 3.1, 3.2 e 3.3.

[Simon] Capítulos 6 e 7

[Chiang] Não tem uma apresentação adequada desse tópico.

Série de Exercícios: Veja aqui.


Exercícios repetitivos: Veja Seções 3.2 a 3.11 do Schaum's Outline of Linear Algebra - Seymour Lipschutz and Marc Lipson.

Aplicações

Existem várias aplicações de sistemas lineares em Economia.

Por exemplo, em finanças a solução de sistemas lineares pode ser usada para caracterizar se um mercado financeiro é completo ou incompleto. Veja por exemplo essa caracterização nas notas de aula do curso de finanças.

Uma outra aplicação super interessante é o cálculo do Page Rank ou do modelo de Leontief usado em análise de Insumo-Produto. Veja por exemplo um post sobre esse assunto no PRorum

Tópico 4: Inversa de matrizes

Leituras:

[Adilson] Capítulo 3: Seção 3.4.

[Simon] Não tem uma apresentação adequada desse tópico.

[Chiang] Não tem uma apresentação adequada desse tópico.

Série de Exercícios: Veja aqui.


Exercícios repetitivos: Veja Seção 3.12 do Schaum's Outline of Linear Algebra - Seymour Lipschutz and Marc Lipson.

Aplicações

A idéia de inversão de matrizes aparece muito em econometria em vários contextos diferentes. Por exemplo, o estimador mais popular de um Modelo de Regressão Linear, conhecido como método dos mínimos quadrados, dependem explicitamente de uma inversão.

Tópico 5: Determinantes

Leituras:

[Adilson] Capítulo 5: Seções 5.1, 5.2, 5.3 e 5.5.

[Simon] Capítulos 9 e 26.

[Chiang] Não tem uma apresentação adequada desse tópico.

Série de Exercícios: Veja aqui.


Exercícios repetitivos: Veja Seções 8.2 a 8.8 do Schaum's Outline of Linear Algebra - Seymour Lipschutz and Marc Lipson.

Aplicações

Os determinantes aparecem como ferramenta básica em várias situações no curso de economia. No nosso curso de Economia Quantitativa I, determinantes podem ser usadas como uma ferramenta importante de caracterização de matrizes quadradas. Se o determinante de uma matriz A de ordem n é nulo, o sistema linear Ax=0 possui infinitas soluções, o núcleo de A contém infinitos elementos e a imagem de T(x)=Ax não é o Rn.

No nosso curso também usaremos determinantes também para caracterizar se uma matriz é positiva ou negativa definida e isso será fundamental para verificar as condições de segunda ordem de um problema de otimização interior (sem restrições).


Plano de Estudo de Cálculo e Otimização

Tópico 1: Introdução ao Cálculo Diferencial

Leituras:

[Simon] Capítulo 2, Seção 3.5, Seção 4.1, Capítulo 5.

[Chiang] Capítulo 6

Série de Exercícios: Veja aqui.


Exercícios repetitivos: Veja Seções 3.1 a 3.8 e 4.1 a 4.5 do Schaum's Outline of Introduction to Mathematical Economics - Dowling.

Aplicações

Cálculo diferencial aparece como ferramenta básica para o estudo de otimização, que é por sua vez uma ferramenta essencial em Microeconomia e Econometria.

Tópico 2: Introdução ao Cálculo Integral

Leituras:

[Simon] Apêndice A4

[Chiang] Seções 13.2 a 13.5

Série de Exercícios: Veja aqui.

Exercícios repetitivos: Veja Seções 14.1, 14.2 e 15.1 a 15.4 do Schaum's Outline of Introduction to Mathematical Economics - Dowling.

Aplicações

Cálculo integral aparece como ferramenta básica para o estudo de estatística.


Funções Várias Variáveis, Cálculo de Várias Variáveis, Análise Convexa e Otimização

Para esse plano de estudo, vou focar apenas no livro Mathematics for Economists - Carl P. Simon and Lawrence E. Blume [Simon]. Também citarei bastante as notas do curso de Microeconomia I do Professor José Guilherme de Lara Resende do Departamento de Economia da UnB, pois existe um link muito forte entre essa parte do curso e o curso de Microeconomia I.

Para motivar essa parte do curso, eu sugiro que antes da aula, vocês leiam a primeira aula do curso de Microeconomia I do Professor José Guilherme, que você pode acessar aqui.

Para essa parte do curso serão usadas as seguintes séries de exercícios:

Funções de Várias Variáveis e Cálculo: Veja aqui.

Análise Convexa: Veja aqui.

Otimização: Veja aqui.

Otimização Interior: Veja aqui.

Otimização com Restrições: Veja aqui.

Tópico 1: Funções Várias Variáveis (Lineares, Formas Quadráticas, Polinômios, Funções Contínuas, Funções Homogêneas e Homotéticas, Funções Côncavas, Funções Convexas, Funções Quase-Côncavas e Funções Quase-Convexas)

Leituras:

[Simon] Capítulo 13, Capítulo 20: Seções 20.1 e 20.4, Capítulo 21: Seções 21.1, 21.2 e 21.3

Aplicações

Várias das funções apresentadas aqui são usadas extensivamente nos cursos de Economia.

Funções Homogêneas e Homotéticas aparecem por exemplo em Microeconomia I. Por exemplo, a função de Demanda Marshalliana é uma função homogênea de grau 0. Por outra lado, várias funções de utilidade que aparecem no curso de Microeconomia I são homotéticas. Veja as aulas de Microeconomia que apresentam essa informação aqui e aqui.

Funções Côncavas, Funções Convexas, Funções Quase-Côncavas e Funções Quase-Convexas também aparecem em Microeconomia I. Em geral funções de utilidade são côncavas ou quase-côncavas (quando as preferências forem convexas), curvas de indiferença são (estritamente) convexas etc.

Polinômios quadráticos aparecem em econometria. Veja por exemplo aqui o problema de otimização que precisamos resolver para encontrar os parâmetros de um modelo de regressão linear. Também usaremos polinômios quadráticos em nosso curso para caracterizar as condições de segunda ordem de um problema de otimização interior (sem restrições).

Tópico 2: Derivada parcial/Diferencial

Leituras:

[Simon] Capítulo 14: Seções 14.1 a 14.4 e 14.8

Exercícios repetitivos: Veja Seções 5.1 a 5.3 do Schaum's Outline of Introduction to Mathematical Economics - Dowling.

Aplicações

Derivadas parciais e diferenciais aparecem em muitos lugares no Curso de Economia. Usamos derivadas para resolver problemas de otimização que será um procedimento comum em Microeconomia I, para definir elasticidades etc. O diferencial total aparece por exemplo na definição da Taxa Marginal de Substituição. Veja exemplo de derivadas e diferenciais totais usados no curso de Microeconomia aqui.

Tópico 3: Cálculo de várias variáveis (Polinomios de Taylor)

Leituras:

[Simon] Seções 30.2 e 30.3

Aplicações

Polinomios de Taylor são usados em várias situações. No nosso curso, usaremos esses polinômios para estudar as condições de segunda ordem de um problema de otimização irrestrito (interior).

Tópico 4: Introdução a Otimização

Leituras:

[Simon] Seção 17.1 e 30.1 (Apenas o tópico relacionado com o Teorema de Weierstrass)

Aplicações

Usamos o teorema de Weierstrass em várias situações em Economia quando desejamos garantir a existência da solução de um problema de otimização, sem precisar especificar a forma da função que desejamos otimizar e/ou resolvê-lo.

No curso de Microeconomia I, pode-se garantir a existência da Função de Utilidade Indireta utilizando o Teorema de Weierstrass sempre que a função de utilidade for contínua.. Veja esse conteúdo nas Notas de Microeconomia I do Professor José Guilherme.

No curso de finanças usamos esse resultado para mostrar que na ausência de arbitragem, sempre existe uma solução para o problema de otimização de carteira. Veja aqui os slides associados a esse teorema.

Otimização em geral é uma ferramenta básica de Microeconomia e Econometria.

Tópico 5: Condições de Primeira Ordem

Leituras:

[Simon] Seções 17.2

Aplicações

Usamos as condições de primeira ordem para encontrar os pontos críticos.

Exercícios repetitivos: Veja Seção 5.4 do Schaum's Outline of Introduction to Mathematical Economics - Dowling.

Tópico 6: Formas Quadráticas e Condições de Segunda Ordem

Leituras:

[Simon] Capítulo 16: Seções 16.1 e 16.2

Aplicações

Usamos as condições de segunda ordem para caracterizar os pontos críticos.

Tópico 7: Otimização de funções Concavas/Convexas

Leituras:

[Simon] Seção 21.5

Aplicações

Como já mencionado, muitas das funções usadas no nosso curso são côncavas ou convexas e elas possuem particularidades que devem ser explicitadas.

Tópico 8: Otimização restrita (Segunda Ordem)

Leituras:

Seção 18.2

Aplicações

O problema do Consumidor estudado em Microeconomia é exatamente um problema desse tipo. Veja aqui a aula do Professor José Guilherme relacionada com esse assunto.

Exercícios repetitivos: Veja Seção 5.5 do Schaum's Outline of Introduction to Mathematical Economics - Dowling.


Plano de Estudo de estatística

Essa parte do curso pretende introduzir noções básicas de estátística que poderão serão usadas em um curso futuro de análise de dados e/ou aplicados diretamente na análise de dados.

A referência principal dessa parte do curso é o livro: Carvalho, Cajueiro e Camargo (2015) Introdução aos métodos estatísticos para economia e finanças. Editora da UnB.

Também sugere-se o uso do livro Coleção Schaum Estatística - Murray R. Spiegel para aqueles que desejam fazer vários exercícios repetitivos que revisam a teoria.

Slides: Veja Série de exercícios para revisão da teoria dada em sala.

Tópico 1: Introdução à estatística

Leituras:

[Carvalho, Cajueiro e Camargo] Capitulo 1

Slides: Veja aqui.

Tópico 2: Estatística descritiva

Leituras:

[Carvalho, Cajueiro e Camargo] Capitulo 2

Slides: Veja aqui.

Tópico 3: Variáveis aleatórias

Leituras:

[Carvalho, Cajueiro e Camargo] Seções 3.1 a 3.3

Distribuição normal de forma intuitiva.

Slides: Veja aqui.

Tópico 4: Variáveis aleatórias multivariadas

Leituras:

[Carvalho, Cajueiro e Camargo] Seções 4.1 a 4.5

Slides: Veja aqui.

Tópico 5: Estimadores

Leituras:

[Carvalho, Cajueiro e Camargo] Seções 5.1 a 5.5

Slides: Veja aqui.

Tópico 6: Testes de hipóteses

Leituras:

[Carvalho, Cajueiro e Camargo] Seções 6.4.1, 6.4.3 e 6.5

Slides: Veja aqui.

Tópico 7: Regressão linear

Leituras:

[Carvalho, Cajueiro e Camargo] Capítulo 8

Slides: Veja aqui.








Thursday, March 9, 2017

Aula 1 de Métodos Computacionais em Economia: Noções de Programação Estruturada

Nós tivemos nossa primeira aula de método computacionais. Esses são os
slides usados em sala de aula.

Abaixo temos os exemplos apresentados em sala de aula:

Exemplo de Controle de Fluxo usando Condicionais

Exemplo do uso do Loop For em um programa computacional

Exemplo do uso do Loop While em um programa computacional

Referências Adicionais para essa aula:

1. Usuários de Python podem ter interesse em olhar:

Think Python - Allen Downey

2. Usuários de C++ podem ter interesse em olhar:

Think C++

3. Usuários de R podem ter interesse em olhar:

Advanced R - Hadley Wickham

Alguns links externos relacionados com essa aula:

Qual o propósito de incluir "if __name__ == '__main__':" em python?

Como otimização pode me ajudar a encontrar o amor da minha vida?

Computação Humana

Page Rank

Melhores livros de Python

Melhores livros de R

Soluções das séries de exercício:

Questão 1

Questão 2

Questão 3

Questão 4

Questão 5