R como uma alternativa ao SAS para grandes dados


8

Eu sei que R não é particularmente útil para analisar grandes conjuntos de dados, uma vez que R carrega todos os dados na memória, enquanto algo como o SAS faz análise sequencial. Dito isto, existem pacotes como o bigmemory que permitem aos usuários realizar análises de grandes dados (análise estatística) com mais eficiência no R.

Eu queria saber, além de todas as informações teóricas, alguém usou / está usando R para analisar grandes conjuntos de dados em um ambiente corporativo e quais são os problemas típicos que podem surgir. Por conjuntos de dados grandes, estou me referindo a conjuntos de dados com tamanho de ~ 200 GB. Além disso, qualquer reflexão sobre exemplos reais da migração do SAS para o R nesses casos de uso seria útil.


1
O R 3.0 (que é a versão atual) pode acessar matrizes grandes. Em uma máquina de 64 bits, deve ser possível endereçar essa quantidade de memória, se você tiver essa quantidade.
Glen_b -Reinstala Monica

Existem alguns pacotes para aumentar a memória, como ffe bigmemory. @Glen_b, você acha que o novo R (com uma máquina de 64 bits) rivalizará com o SAS (em termos de tamanho possível dos conjuntos de dados)?
Stéphane Laurent

@ O StéphaneLaurent SAS usa uma abordagem diferente, o que significa que não se limita à memória endereçável (essa abordagem não é realmente possível para o R devido à sua flexibilidade), portanto os limites não serão os mesmos ... mas eu realmente não sei quais são os limites do SAS.
Glen_b -Reinstala Monica

Respostas:


4

Eu trabalhei em conjuntos de dados muito grandes no R e não tive problemas.

Existem várias abordagens que funcionam, mas meu paradigma básico é que encontro maneiras de processar os dados "sequencialmente". Obviamente, o SAS tem as mesmas restrições de memória fundamentais, se você o estiver usando na mesma máquina, usar R é um pouco mais simples.

Em todos os casos que já encontrei, estou analisando algum tipo de resumo dos dados ou analisando partes dos dados e, em seguida, resumindo os resultados. De qualquer maneira, isso é fácil de realizar na R.

É muito fácil criar resumos se você tiver seus dados estruturados de alguma forma (realmente de qualquer maneira). O Hadoop é uma ferramenta líder na criação de resumos, mas é fácil fazer o processamento em lote nos arquivos R Data, e se os dados caberem no dispositivo de armazenamento local, também será mais rápido processá-los em lote dessa maneira (em termos de tempo de processamento e tempo de desenvolvimento).

Também é muito fácil agrupar sua análise por partes, usando o mesmo processo de pensamento.

Se você está realmente morrendo de vontade de criar um modelo linear diretamente em um conjunto de dados gigantesco, acho que a grande memória é sua resposta, conforme sugerido por Stéphane Laurent.

Eu realmente não acho que exista uma "resposta" para "como você lida com restrições de memória" ou "muda para uma nova plataforma", mas esses são meus longos centavos.


3

Não tenho experiência prática com a parte revolucionária da análise, mas há um blog sobre isso

http://www.r-bloggers.com/allstate-compares-sas-hadoop-and-r-for-big-data-insurance-models/

Ele usa o hadoop (computação distribuída) para resolver esse problema de memória.


1
Forneça mais informações. Se o link não funcionar mais, a resposta ainda deve ser útil.
Sven Hohenstein

Não acho que a "solução" deles tenha sido o Hadoop (80 núcleos do Hadoop eram duas vezes mais lentos que o SAS de 16 núcleos), mas parece que o LSF ( en.wikipedia.org/wiki/Platform_LSF ) é aproximadamente o mesmo tipo de coisa.
precisa
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.