Meu local de trabalho tem funcionários de uma ampla variedade de disciplinas, por isso geramos dados de várias formas diferentes. Consequentemente, cada equipe desenvolveu seu próprio sistema para armazenar dados. Alguns usam bancos de dados Access ou SQL; algumas equipes (para meu horror) dependem quase inteiramente das planilhas do Excel. Freqüentemente, os formatos de dados mudam de projeto para projeto. Em alguns casos, chamá-lo de 'sistema' é muito gentil.
Os problemas que isso implica são que eu tenho que escrever um novo código para limpar os dados de cada projeto, o que é caro; as pessoas que editam planilhas manualmente tornam quase impossível a reprodutibilidade e a auditoria de dados; e ainda pior, há uma chance de os dados serem perdidos ou incorretos.
Tive a oportunidade de discutir esses problemas com um membro do conselho da empresa e preciso descobrir o que dizer a ele. Acho que já o convenci de que temos um problema e que acertar isso permitirá uma melhor ciência e economia de dinheiro. A questão é: o que devemos procurar e como chegamos lá?
Mais especificamente:
Como devemos armazenar dados, de maneira que possamos acompanhar desde a criação até a publicação em um jornal? (Bancos de dados armazenados em um servidor central?)
Como você padroniza os formatos de banco de dados?
Existem bons recursos para educar as pessoas sobre como cuidar de dados? (Como regra geral, higienistas ocupacionais e engenheiros de explosivos não são nerds de dados; portanto, prefere conteúdo não técnico.)
fonte
Respostas:
Vale a pena considerar as idéias do mundo do software. Em particular, você pode pensar em configurar: um repositório de controle de versão e um servidor de banco de dados central.
O controle de versão provavelmente ajuda você com arquivos flutuantes livres, como Excel e arquivos de texto, etc. Mas isso também pode incluir arquivos associados a dados, como R, SAS etc. A idéia é que exista um sistema que rastreie as alterações nas seus arquivos, permitindo saber o que aconteceu quando e reverter para um ponto no passado, se necessário.
Onde você já possui bancos de dados SQL, a melhor coisa a fazer é configurar um servidor central e contratar um DBA capaz . O DBA é a pessoa encarregada de garantir e manter a integridade dos dados. Parte da descrição do trabalho envolve coisas como backups e ajustes. Porém, outra parte é mais relevante aqui - controlar como os dados entram no sistema, garantir que as restrições sejam atendidas, implementar políticas de acesso para evitar danos aos dados, configurar visualizações para expor formatos de dados personalizados ou simplificados etc. implementação de uma metodologia em torno do processo de dados. Mesmo que você não contrate um DBA real (os bons são muito difíceis de recrutar), ter um servidor central ainda permite que você comece a pensar em instituir algum tipo de metodologia em torno dos dados.
fonte
Um recurso on-line gratuito é o conjunto de Diretrizes de Boas Práticas Estatísticas do Centro de Serviços Estatísticos da Universidade de Reading .
Em particular:
fonte
Acho que, em primeiro lugar, você deve se perguntar: por que as pessoas usam o Excel para realizar tarefas para as quais o Excel não foi criado?
1) Eles já sabem como usá-lo 2) Funciona. Talvez de uma maneira desajeitada, mas funciona e é isso que eles querem
Copio uma série de números, pressiono um botão e tenho uma trama. Tão fácil quanto isso.
Portanto, faça com que eles entendam quais vantagens eles podem ter usando conjuntos de dados centralizados, bancos de dados adequados (observe que o Access NÃO é um deles) e assim por diante. Mas lembre-se dos dois pontos acima: você precisa configurar um sistema que funcione e que seja fácil de usar.
Já vi muitas vezes sistemas mal feitos que me fizeram querer voltar não ao Excel, mas a caneta e papel!
Apenas como exemplo, temos um sistema de pedidos horrível onde eu trabalho.
Costumávamos preencher um formulário de pedido, que era uma planilha do Excel, onde você digitava o nome do produto, a quantidade, o custo etc. a secretária que faria o pedido e foi isso. Ineficiente, mas funcionou.
Agora temos um sistema de pedidos on-line, com um banco de dados centralizado e tudo mais. Isso é um horror. Não demorei 10 minutos para preencher um formulário maldito por causa dos atalhos de teclado pouco comuns e das várias esquisitices do software. E note que eu sou bastante entendido em informática, então imagine o que acontece com pessoas que não gostam de computadores ...
fonte
Sublinho todas as respostas já dadas, mas vamos chamar um gato de gato: em muitos espaços de trabalho, é quase impossível convencer a gerência de que é necessário investir em ferramentas de software "exóticas" (exóticas para elas), e muito menos contratar alguém que possa definir e mantê-lo. Eu disse a alguns clientes que eles se beneficiariam muito com a contratação de um estatístico com um conhecimento aprofundado sobre software e bancos de dados, mas "não posso fazer" é a resposta geral.
Desde que isso não aconteça, existem algumas coisas simples que você pode fazer com o Excel que facilitarão a vida. E o primeiro disso é sem dúvida o controle de versão. Mais informações sobre controle de versão com o Excel podem ser encontradas aqui .
Algumas coisas sobre o uso do excel
As pessoas que usam o EXCEL frequentemente gostam dos recursos da fórmula do EXCEL. No entanto, essa é a fonte mais importante de erros nas folhas do EXCEL e de problemas ao tentar ler arquivos EXCEL no que diz respeito à minha experiência. Recuso-me a trabalhar com folhas contendo fórmulas.
Também forço todos com quem trabalho a entregar as folhas do EXCEL em um formato simples, o que significa que:
Se houver uma estrutura geral que os dados sempre tenham, pode ser bom desenvolver um modelo com macros VB subjacentes para adicionar dados e gerar o conjunto de dados para análise. Isso geralmente evita que todo funcionário crie seu próprio sistema "genial" de armazenamento de dados e permita que você escreva seu código em função disso.
Dito isto, se você pode convencer todos a usar o SQL (e um front end para inserir dados), é possível vincular o R diretamente a esse. Isso aumentará bastante o desempenho.
Estrutura e gerenciamento de dados
Como regra geral, os dados armazenados nos bancos de dados (ou folhas EXCEL, se eles insistirem) devem ser o mínimo absoluto, o que significa que qualquer variável que possa ser calculada a partir de outras variáveis não deve estar contida no banco de dados. Lembre-se, às vezes pode ser benéfico armazenar essas variáveis derivadas ou transformadas, se os cálculos forem entediantes e demoram muito tempo. Mas eles devem ser armazenados em um banco de dados separado, se necessário, vinculado ao original.
Deve-se pensar também no que é considerado como um caso (e, portanto, uma linha). Como exemplo, as pessoas tendem a produzir séries temporais criando uma nova variável para cada ponto no tempo. Embora isso faça sentido em um EXCEL, a leitura desses dados exige bastante inversão da matriz de dados. O mesmo para comparar grupos: deve haver um indicador de grupo e uma variável de resposta, não uma variável de resposta para cada grupo. Dessa forma, as estruturas de dados também podem ser padronizadas.
A última coisa que encontro com frequência é o uso de métricas diferentes. Os comprimentos são dados em metros ou centímetros, as temperaturas em Celsius, Kelvin ou Farenheit, ... Deve-se indicar em qualquer front end ou modelo, qual é a unidade em que a variável é medida.
E mesmo depois de todas essas coisas, você ainda deseja ter uma etapa de controle de dados antes de começar a análise. Novamente, pode ser qualquer script que seja executado diariamente (por exemplo, durante a noite) em novas entradas e que sinalize problemas imediatamente (fora do intervalo, tipo errado, campos ausentes, ...) para que possam ser corrigidos o mais rápido possível. Se você precisar retornar a uma entrada feita há 2 meses para descobrir o que está errado e por quê, é melhor obter algumas "habilidades Sherlock" boas para corrigi-la.
meus 2 centavos
fonte
VisTrails: um fluxo de trabalho científico baseado em Python e sistema de proveniência . Esta palestra dada no PyCon 2010 tem algumas boas idéias. Vale a pena ouvir, mesmo se você não estiver interessado em usar o VisTrails ou python. No final, acho que se você pudesse exigir que houvesse uma maneira clara de reproduzir os dados. E exigem alguma validação que eles possam.
Citação:
fonte
Acabei de encontrar esta página da Web hospedada pelo ICPSR sobre planos de gerenciamento de dados . Embora eu ache que os objetivos do ICPSR serão um pouco diferentes dos seus negócios (por exemplo, eles estão muito interessados em tornar os dados facilmente dissemináveis sem violar a confidencialidade), imagino que eles tenham informações úteis para as empresas. Em particular, conselhos sobre a criação de metadados me parecem universais.
fonte
No caso de escalas muito menores, experimentei usar o dropbox para compartilhar / sincronizar uma cópia dos arquivos de dados (e scripts e resultados) com outros pesquisadores / colaboradores (escrevi sobre isso aqui ).
A outra ferramenta que usei é o Google Docs para coletar e compartilhar dados (sobre o que escrevi aqui )
fonte
O Dropbox + packrat é bom para compartilhar arquivos com backup / controle de versão.
Em seguida, você carrega esses arquivos (após canonização / massagem automatizada) em um banco de dados e faz as análises com os dados limpos. Coloque os scripts para automatizar o ciclo Extract-Transform-Load sob controle de versão (ou pelo menos uma pasta dropbox separada com a opção packrat ...).
Quando seu servidor de banco de dados eventualmente falha (ou precisa ser fragmentado ou o que for), você tem um pipeline para mover dados de amigáveis para as pessoas (Excel, formulários da web etc.) para amigáveis para análise (normalmente normalizados e restritos, sempre limpos).
Essa fase "ETL" é do data warehousing. E se você não está construindo um sistema de processamento de transações online, provavelmente está construindo um armazém de dados. Portanto, aceite-o e tire proveito do que as pessoas aprenderam ao construí-las nos últimos 30 anos.
Diverta-se.
fonte