Thursday, May 27, 2004

Ferramentas matemáticas

Vou colocar a seguir uma análise simples, sem entrar em detalhes, de algumas ferramentas matemáticas que podem auxiliar o trabalho do economista.

Aplicações comerciais

As aplicações comerciais possuem licenças mais restritivas do que as livres, e são pagas. O preço em geral é bem alto, embora essas aplicações forneçam descontos para edições limitadas para estudantes.

Maple - Software matemático comercial. Trabalha bem com manipulação simbólica (ou seja, resolve muitos dos problemas matemáticos sem a necessidade de atribuição de valores), possui um suporte a programação que é bem elogiado por sua facilidade e é excelente para lidar com gráficos. Recomendo, assim como o Mathematica, no auxílio ao desenvolvimento de modelos econômicos e simulação de modelos contínuos.

Mathematica - Software muito semelhante ao Maple, também comercial. Sua interface é mais fácil que a do Maple, com alguns pequenos detalhes que ajudam no dia-a-dia. Assim como o Maple, ajuda na resolução de derivações, equações diferenciais, resolução de sistemas e outros trabalhos matemáticos.

MATLAB - Sofware diferente dos anteriores. Trata-se de uma linguagem de programação para aplicações científicas. Possui um suporte básico para matemática simbólica, mas seu forte são as aplicações numéricas e discretas. Possui uma vasta biblioteca de funções, como funções estatísticas, maximização, programação linear e redes neurais. Trata-se de uma linguagem que possibilita desde seu uso como simples calculadora à construção de aplicações científicas completas, inclusive com interface gráfica.

Softwares livres

A definição precisa de software livre é encontrada no site da GNU, e vai além da simples gratuidade. Softwares livres em geral não possuem empresas que os desenvolvem, mas sim grupos de pessoas engajadas no desenvolvimento do mesmo. Em geral possuem menos recursos que as aplicações comerciais, mas muitos suportam mais plataformas que as comerciais, e alguns diferenciais podem ir de encontro às espectativas.

GNU Octave - É uma versão livre do MATLAB. Implementa a maioria das funções básicas do MATLAB e possui grande compatibilidade com código escrito para ele, mas sua biblioteca de funções ainda não está completa e não possui muitos dos recursos oferecidos pelo MATLAB.

Scilab - Software semelhante ao MATLAB e ao Octave. Seu código possui algumas diferenças com o do MATLAB, o que exige alterações nos arquivos MATLAB para que funcionem nele. Possui, porém, mais funções e bibliotecas que o Octave.

Maxima - Software derivado do projeto do MIT Macsyma, dos anos 60, que deu origem aos softwares Maple e Mathematica. Possui suporte a manipulação simbólica e solução de alguns tipos de equações diferenciais.

Como pode ser observado, os softwares comerciais ainda possuem grande vantagem de recursos sobre os livres, principalmente tratando-se de manipulação simbólica. Quando falamos de manipulação numérica, muito utilizada em simulação de modelos discretos (em diferenças finitas), os recursos oferecidos pelos softwares livres são suficientes.

Wednesday, May 26, 2004

Economia e computação?

Economia e computação têm algo a ver? O que cada um tem a aprender com o outro?

Pra começar, quando digo computação estou falando mais em termos de ciência do que de ferramenta. Com certeza o computador hoje ajuda (e às vezes atrapalha) a execução de tarefas em praticamente todas as áreas de conhecimento e artes. Nesse ponto não há muito o que discutir, apesar de que mesmo como ferramenta tem gente que subutiliza o computador de uma forma incrível. Ainda tem um monte de gente que faz equações no Word sem o equation editor.

A ciência da computação trata, entre outros pontos, de problemas que são colocados e a forma de resolvê-los (ou ao menos ajudar na sua resolução) através do uso de um computador. Um computador é uma maquininha que, através de operações bem simples sobre dados, retorna uma informação derivada dessas operações. Nada do que o computador faz hoje nós não conseguiríamos fazer sem ele. A questão é o tempo.

O computador que você está usando para ler isto efetua milhões de operações por segundo (na verdade acredito termos ultrapassado as bilhões). 256 Mb de memória RAM (memória temporária do computador) armazenam algo como 2.147.483.648 caracteres. An Inquiry Into The Nature And Causes Of The Wealth Of Nations, de Adam Smith, ocupa menos de 1% disso, e o disco rígido dos computadores hoje armazenam cerca de 40.000 Mb.

O valor que o computador adiciona à ciência é essa enorme capacidade de executar tarefas simples repetidamente em uma velocidade impensável anteriormente. Essa capacidade de lidar rapidamente com uma grande massa de dados inaugurou novas formas de lidar com problemas existentes e possibilitou o aperfeiçoamento de técnicas anteriormente ineficientes por falta de poder de computação das ferramentas até então. Previsões meteorológicas, por exemplo, antes do computador, ficavam prontas somente após o período-alvo da previsão.

A economia vem adotando em algumas de suas áreas e correntes, métodos computacionais para lidar com os problemas econômicos. Os testes econométricos, por exemplo, e principalmente os mais complexos, teriam um esforço proibitivo para serem realizados em dados numerosos. Hoje os cálculos são deixados para o computador, ficando o economista com uma tarefa menos repetitiva e analítica.

A simulação de modelos econômicos também é possibilitada pelo uso do computador como ferramenta. Com o advento de modelos cada vez mais complexos, seu comportamento com valores plausíveis (ou até mesmo implausíveis) pode ser verificado ao longo do tempo simulando em computador o mesmo.

Os exemplos da econometria e da simulação mostram o uso da computação como ferramenta. O Agent-Based Computational Economics (ACE), por outro lado, representa uma abordagem totalmente diferente dos fundamentos econômicos e sua análise. Falando resumidamente (pretendo escrever sobre este assunto aqui em breve), o ACE define uma nova forma de tratar os micro-fundamentos econômicos, modelando agentes heterogêneos, com comportamentos e informações diferentes, interagindo repetidamente entre si.

A modelagem econômica também pode ter suas fronteiras expandidas ao utilizar uma abordagem computacional. O que é definido como estratégia "bottom-up" de modelagem no artigoControles de capitais em economias emergentes, escrito por mim e o meu orientador José Luis Oreiro, é uma forma computacional de modelagem econômica. Essa definição é vaga e abrangente. A idéia é que as possibilidades de formulação de problemas econômicos e suas soluções em um computador são maiores e mais flexíveis que na matemática algébrica comum e diferencial, que é comumente utilizada.

Um último exemplo que posso dar é o uso de redes neurais. As redes neurais são uma forma de "regressão" diferente da usada comumente. Ela não faz nenhuma suposição sobre os dados e suas relações, resultando simplesmente em uma "caixa preta" de processamento. O uso de redes neurais isoladamente pode ter um alto poder de previsão, mas praticamente nenhum valor teórico. O seu uso como elemento auxiliar em um modelo computacional, no entanto, pode ajudar na precisão do mesmo, sem comprometer a capacidade de análise do resto do mesmo.

A computação, portanto, pode impactar de forma intensa métodos de pesquisa na área econômica, abrindo novos caminhos e encurtando outros, e deixando para o economista mais tempo para dedicar-se ao estudo dos fenômenos e teorias econômicas, reduzindo o gasto com cálculos e derivações repetitivas.