R comme alternative à SAS pour les données volumineuses

8

Je sais que R n'est pas particulièrement utile pour analyser de grands ensembles de données étant donné que R charge toutes les données en mémoire alors que quelque chose comme SAS fait une analyse séquentielle. Cela dit, il existe des packages tels que bigmemory qui permettent aux utilisateurs d'effectuer une analyse de données volumineuses (analyse statistique) plus efficacement dans R.

Je voulais savoir, à part toutes les informations théoriques, est-ce que quelqu'un a utilisé / utilise R pour analyser de grands ensembles de données dans un environnement d'entreprise et quels sont les problèmes typiques qui pourraient survenir. Par grands ensembles de données, je fais référence à des ensembles de données d'une taille d'environ 200 Go. De plus, toute réflexion sur des exemples concrets de migration de SAS vers R dans de tels cas d'utilisation serait utile.

xbsd
la source
1
R 3.0 (qui est la version actuelle) peut accéder à de grands tableaux. Sur une machine 64 bits, vous devriez pouvoir traiter autant de mémoire si vous en avez beaucoup.
Glen_b -Reinstate Monica
Il existe des packages pour augmenter la mémoire, tels que ffet bigmemory. @Glen_b, pensez-vous que le nouveau R (avec une machine 64 bits) rivalisera avec SAS (en termes de taille possible des jeux de données)?
Stéphane Laurent
@ StéphaneLaurent SAS utilise une approche différente ce qui signifie qu'elle ne se limite pas à la mémoire adressable (cette approche n'est pas vraiment possible pour R à cause de sa flexibilité), donc les limites ne seront pas les mêmes ... mais je ne sais pas vraiment quelles sont les limites de SAS.
Glen_b -Reinstate Monica

Réponses:

4

J'ai fait du travail sur de très grands ensembles de données dans R, et je n'ai pas eu de problèmes.

Il existe plusieurs approches qui fonctionnent, mais mon paradigme de base est que je trouve des moyens de traiter les données "séquentiellement". De toute évidence, SAS a les mêmes contraintes de mémoire fondamentales si vous l'utilisez sur la même machine, utiliser R est juste un peu plus bricolage.

Dans tous les cas que j'ai rencontrés, je fais soit une analyse sur une sorte de résumé des données, soit je fais une analyse sur des morceaux de données, puis je résume les résultats. Dans les deux cas, c'est facile à réaliser dans R.

Il est assez facile de créer des résumés si vous avez vos données structurées d'une certaine manière (vraiment de n'importe quelle manière). Hadoop est un outil de premier plan pour créer des résumés, mais il est facile de faire un traitement par lots sur les fichiers R Data, et si vos données tiennent sur votre périphérique de stockage local, il est également plus rapide de les traiter par lots de cette façon (en termes de temps de traitement et temps de développement).

Il est également assez facile de regrouper votre analyse par morceaux en utilisant également le même processus de réflexion.

Si vous mourez vraiment d'envie de faire un modèle linéaire directement sur un gigantesque ensemble de données, alors je pense que bigmemory est votre réponse, comme l'a suggéré Stéphane Laurent.

Je ne pense pas vraiment qu'il y ait une "réponse" à "comment gérez-vous les contraintes de mémoire" ou "passer à une nouvelle plate-forme", mais ce sont mes deux cents de longue haleine.

geneorama
la source
3

Je n'ai pas de pratique sur la partie analytique révolutionnaire mais il y a un blog à ce sujet

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

Il utilise le hadoop (calcul distribué) pour résoudre ce problème de mémoire.

user23900
la source
1
Veuillez fournir plus d'informations. Si le lien ne fonctionne plus, la réponse devrait toujours être utile.
Sven Hohenstein du
Je ne pense pas que leur "solution" était Hadoop (80 cœurs Hadoop était deux fois plus lent que SAS 16 cœurs), mais il semble que LSF ( en.wikipedia.org/wiki/Platform_LSF ) soit à peu près le même genre de chose.
Darren Cook