quarta-feira, fevereiro 21, 2007

Portfólio

Falando de programas, alguns comentários sobre os softwares fazem parte do meu portfólio de pesquisa. Minha escolha de uma linguagem para desenvolver um projeto depende de 3 aspectos básicos e um secundário
1 - resolve meu problema de forma confiável
2 - resolve meu problema de forma rápida
3 - resolve meu problema com o mínimo esforço.
4 - manutenção do código

Esses 4 aspectos diferenciam bastante a escolha do programa. Tópicos fundamentais são 1 e 2, mas o 3 é bem importante e o 4 se o programa for compartilhado também.
Outra arvore de decisão é a seguinte
programa free X programa pago
programa com código aberto X código fechado

esse aspecto é mais nebuloso, já que nem sempre a divisão é clara. Por exemplo gauss é uma linguagem paga, mas exceto pela biblioteca de algebra linear (que é de acesso livre mas vem em forma binária) vc tem acesso aos códigos. Matlab é quase a mesma coisa. Outras linguagens como Ox são livres para uso não comercial, mas não há acesso a boa parte dos códigos. Outras linguagens como R são de graça e como acesso total ao código fonte.
Eu defendo programas open source pela sua vantagem nos itens 1 e 3, já que posso checar se o programa realmente está correto, e reduz meu esforço já que evita duplicação de programação pelo fato de provavelmente existir alguém que já tenha desenvolvido algo parecido. Mas nem sempre será feito da forma mais rápida e eficiente. Mas pode ocorrer algo exatamente ao contrário - o software R foi desenvovido para contornar a grande ineficiência do S-Plus, que é pago.
Outro fator é path dependence. Se um ramo de pesquisa desenvolve nesse programa, efeito de network vai alavancar esse programa em detrimento de programas concorrentes. Esse efeito é fácilmente notado em econometria - pessoal de microeconometria em sua maioria trabalha com o stata, que é um programa pago, mas meio chato de programar, mas tem grande base de usuários de base de dados usadas em microeconometria. Matlab é bastante usado em pesquisa acadêmica em finanças (mas perde feio para c++ em implementação profissional). O R vem se tornando o padrão de fato em estatística, mas já tem uma boa base de usuários em finanças e econometria.
Tendo dito isso meu portfólio em pesquisa é dado pelos seguintes programas (em ordem de utilização)
1- R
2- Matlab
3 - S-Plus
4 - Ox
5- Gauss
6- Xplore
7- Sas
8- Stata

Em geral começo o programa em R ou Matlab - em geral pesquisa em estatística em R e finanças em Matlab, mas não é uma regra, já que são os dois mais rápidos no desenvolvimento de programas. S-Plus é fácil de trabalhar, mas não é robusto para simulações ou bases de dados grandes.
Ox quando trabalho com modelos em espaço de estado ou memória longa, e quando rapidez é fundamental. Uma das mais confiáveis no entanto. Gauss normalmente eu uso quando tenho que utilizar maximização de verossimilhança com restrições de desigualdade - a maximização é fácil de implementar no matlab, mas os intervalos de confiança não são usuais.
Xplore é uma linguagem com pedigree claro - Wolfgang Hardle e suas aplicações não paramétricas. Nisso ele é imbativel, e algumas coisas geniais em finanças.
Sas é imbátivel em gerenciamento de bancos de dados grandes, mas é caro demais como linguagem de pesquisa acadêmica e isso impossibilita o compartilhamento de código. Stata é um bom programa para microeconometria, mas tem um design de linguagem bem fraco na minha opinião.
Afora estas linguagens técnicas, duas armas secretas. Uma é usar perl no processamento de dados - rápida, veloz e confiável no tratamento de dados. Nenhuma das linguagens acima é pareo para um bom programa em perl. E é uma linguagem muito engenhosa também. Outra arma é armazenar todos meus dados em um banco de dados SQL (normalmente MySQL por ser rápido), e com isso consigo compartilhar dados entre todos meus programas, e assim qualquer pesquisa pode ficar automatizada rodando cada etapa do processo em um programa diferente se for necessário. SQL também é muito útil para gerenciamento de dados, em especial se envolve datas.
Resumo da história - com uma boa gambiarra vc encaixa todas as peças e o carro anda.

1 Comments:

Blogger Cristiano said...

Serei sincero: trabalho com informática, mas se não fossem suas aulas de Linux em 2000, não estaria desenvolvendo o sistema que me quebra a cabeça. Você é um dos maiores para falar do assunto informática. Definitivamente, um dos grandes nesta matéria.

6:51 PM  

Postar um comentário

<< Home