Organizando os dados

Dados organizados vs dados bagunçados

Todo mundo tem alguma história de terror para contar sobre uma planilha desorganizada, uma série de erros e um prazo curto. A internet é cheia delas, existe até uma organização sem fins lucrativos na Europa chamada EuSpRig – European Spreadsheet Risks Interest Group (http://www.eusprig.org/) voltada ao gerenciamento de riscos em planilhas.

Um dos casos de terror mais famosos é o da relação entre a Dívida Pública e o PIB, onde de acordo com os autores do estudo, Carmen Reinhart e Kenneth Rogoff, a economia tende a sofrer quando esta relação passa de 90%. O problema é que essa relação pode estar errada por um problema de cálculo na planilha dos pesquisadores que excluiu alguns países da conta.

http://blogs.marketwatch.com/thetell/2013/04/16/the-spreadsheet-error-in-reinhart-and-rogoffs-famous-paper-on-debt-sustainability/

Abaixo segue outra publicação com um resumo de diversos estudos sobre erros em planilhas.

http://panko.shidler.hawaii.edu/SSR/Mypapers/whatknow.htm

A culpa é da ferramenta ou do carpinteiro?

É muito fácil apontar o Microsoft Excel como sendo o problema, mas não é a ferramenta que é ruim e sim o carpinteiro que não possui processos, métodos e sequer planejamento.

Até hoje não existe um tratado formal sobre como devem ser dispostos os dados para análise. O que existe são algumas iniciativas de se chegar em um ótimo de como se deve preparar um banco de dados para facilitar a vida do analista, diminuir erros e aumentar a transparência das pesquisas.

Um bom ponto de partida para uma conversa sobre como devem ser organizados os dados para análise é o artigo de 'Hadley Wickham' chamado 'Tidy Data' no link:

http://vita.had.co.nz/papers/tidy-data.pdf

Dados Bagunçados

Considere a tabela abaixo como dados em um formato bem comum:

##   PRODUTO TAG1 TAMANHO Jan.2015 Fev.2015 Mar.2015
## 1     AAA  YYY    1000       10       11       12
## 2     AAA  III     500       12       14       15
## 3     AAA  YYY     100        8        6        7
## 4     BBB  III    1000        5        4        3
## 5     BBB  YYY     500       10       11       12
## 6     BBB  III     100        6        6        7

Até que esta é uma base relativamente comportada, mas as variáveis são armazenadas tanto em linhas como em colunas. Temos algumas variáveis em colunas (PRODUTO, TAG1, TAMANHO), as DATAS em linhas e os VALORES distribuídos em uma matriz no centro dos dados.

Como é que fazemos para somar o volume de AAA e BBB com tag YYY com uma base desse tipo?

Nas versões mais novas do Excel podemos combinar um 'somases' com a posição relativa de fevereiro nessa tabela e pronto. Não é nada muito difícil, mas resolver problemas de dados no Excel com bases desse tipo pode se resumir em três fases:

  1. Encontre a posição das observações de interesse
  2. Encontre a posição das variáveis que vão filtrar, classificar ou identificar as observações
  3. Aplique a função desejada

É muito fácil ter problemas com esse tipo de dados, pois se os dados mudarem de posição relativa, todos os cálculos 'quebram' e sempre que os dados são atualizados é necessário verificar se as fórmulas contemplam atualizações (i.e. se foram feitas levando-se em consideração que dados podem ser atualizados e tamanhos de tabelas expandidos)

Outro ponto importante é que no Excel os documentos são separados em arquivos e não existe uma entidade centralizadora, cada arquivo é um 'ser' independente com vida própria. Isso faz com que as relações entre planilhas seja caótica.

Dados Organizados

O formato proposto pelo artigo e o qual vamos tentar usar em praticamente todos os posts aqui é o formato comumente chamado de 'long', onde temos as seguintes características:

  1. Cada variável é uma coluna
  2. Cada observação forma uma linha
  3. Cada tipo de unidade observacional forma uma tabela

Os dados acima ficariam com o seguinte formato:

##    PRODUTO TAG1 TAMANHO     DATA VAL
## 1      AAA  YYY    1000 Jan.2015  10
## 2      AAA  III     500 Jan.2015  12
## 3      AAA  YYY     100 Jan.2015   8
## 4      BBB  III    1000 Jan.2015   5
## 5      BBB  YYY     500 Jan.2015  10
## 6      BBB  III     100 Jan.2015   6
## 7      AAA  YYY    1000 Fev.2015  11
## 8      AAA  III     500 Fev.2015  14
## 9      AAA  YYY     100 Fev.2015   6
## 10     BBB  III    1000 Fev.2015   4
## 11     BBB  YYY     500 Fev.2015  11
## 12     BBB  III     100 Fev.2015   6
## 13     AAA  YYY    1000 Mar.2015  12
## 14     AAA  III     500 Mar.2015  15
## 15     AAA  YYY     100 Mar.2015   7
## 16     BBB  III    1000 Mar.2015   3
## 17     BBB  YYY     500 Mar.2015  12
## 18     BBB  III     100 Mar.2015   7

Quem é familiar com tabelas dinâmicas no Excel vai logo perceber que os dados são os mesmos, porém agora podemos criar uma tabela dinâmica e ao invés de ter que saber em que posição de que planilha em qual aba está o dado e suas classificações podemos trabalhar com esses dados chamando-os pelo seu nome.

Colocamos como rótulo de linha PRODUTO e TAG1, DATA como coluna, soma de VAL e filtramos DATA como 'Fevereiro'

O trabalho fica muito mais organizado, a chance de erros diminui muito, mas as tabelas dinâmicas ficam exponencialmente mais complicadas de se trabalhar quando temos que combinar várias fontes de dados, fórmulas não convencionais e campos calculados. Sem contar que o “drag n' drop” da tabela dinâmica é ótimo para facilitar a vida de quem faz a tabela, mas péssimo para reproduzir os resultados, pegar erros e linkar com outras tabelas.

Nos próximos posts vamos mostrar como transformar dados bagunçados em organizados usando o R.

Advertisements

2 thoughts on “Organizando os dados

  1. Pingback: Tutorial R – Organizando dados com Dplyr e Tidyr | Dados Dados Dados

  2. Pingback: Tesouro Direto – Do Excel para o R | Dados Dados Dados

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s