Uso SAS profissionalmente há quase 5 anos. Eu o instalei no meu laptop e frequentemente tenho que analisar conjuntos de dados com 1.000 a 2.000 variáveis e centenas de milhares de observações.
Tenho procurado alternativas ao SAS que me permitam realizar análises em conjuntos de dados de tamanhos semelhantes. Estou curioso para saber o que outras pessoas usam para situações como essa. Isso certamente não é "Big Data" da maneira que é usada hoje. Meus conjuntos de dados também não são pequenos o suficiente para armazenar na memória. Preciso de uma solução que possa aplicar algoritmos aos dados armazenados no disco rígido. Estas são as coisas que eu investiguei sem sucesso:
- O R - BigMemory pode criar matrizes armazenadas sem memória, mas os elementos devem ter o mesmo modo. Eu trabalho com dados que são quase uma divisão 50/50 entre caracteres e numéricos. O pacote FF se aproxima do que eu preciso, mas não entendo quais procedimentos são compatíveis com ele. Eu acho que o apoio é um pouco limitado.
- Pandas - fiquei muito empolgado com uma alternativa pitônica ao R. No entanto, ele também tem que armazenar todos os dados na memória.
- Revolução R - Este mostra bastante promessa. Tenho uma cópia no meu computador doméstico (grátis se você se inscrever no Kaggle) e ainda não o testou como alternativa viável ao SAS. Comentários sobre o Revolution R como uma alternativa do SAS são muito apreciados.
obrigado
ATUALIZAÇÃO 1
Edição para acrescentar que estou procurando soluções práticas e reais que as pessoas usaram com sucesso. Na maioria das vezes, o SAS me permite vasculhar arquivos grandes sem me preocupar um pouco com as restrições de memória. No entanto, o SAS foi implementado, eles descobriram como tornar o gerenciamento de memória transparente para o usuário. Mas, é com pesar que eu usei o SAS para o meu trabalho (preciso) e adoraria uma alternativa de software livre que me permita trabalhar em dados "grandes" sem ter que pensar muito sobre onde os dados estão localizados em um local. hora específica (na memória ou no disco).
As coisas mais próximas que me deparei são o pacote FF de R e algo no horizonte para Python chamado Blaze . E, no entanto, esses problemas existem há muitos anos, então o que os analistas estão fazendo nesse meio tempo? Como eles estão lidando com esses mesmos problemas com os limites de memória? A maioria das soluções oferecidas parece ser:
- Obtenha mais RAM - esta não é uma boa solução, imo. É fácil encontrar um conjunto de dados que pode exceder a RAM e ainda caber em um disco rígido. Além disso, o fluxo de trabalho deve acomodar todas as estruturas criadas durante a análise exploratória dos dados.
- Subconjunto dos dados - isso é bom para exploração, mas não para finalização de resultados e relatórios. Eventualmente, quaisquer processos desenvolvidos em um subconjunto terão que ser aplicados a todo o conjunto de dados (no meu caso, de qualquer maneira).
- Analise os dados - é sobre isso que gostaria de saber mais das pessoas que realmente implementam esse fluxo de trabalho. Como isso é feito? Com quais ferramentas? Isso pode ser feito de maneira transparente para o usuário? (ou seja, crie alguma estrutura de dados em disco e o trabalho de estrutura cuida da parte sob o capô).