J'utilise SAS professionnellement depuis près de 5 ans maintenant. Je l'ai installé sur mon ordinateur portable et je dois fréquemment analyser des ensembles de données avec 1 000 à 2 000 variables et des centaines de milliers d'observations.
Je cherchais des alternatives à SAS qui me permettent de réaliser des analyses sur des ensembles de données de taille similaire. Je suis curieux de savoir ce que les autres utilisent pour des situations comme celle-ci. Ce n'est certainement pas du "Big Data" de la manière qui est utilisée aujourd'hui. Mes jeux de données ne sont pas non plus suffisamment petits pour être conservés en mémoire. J'ai besoin d'une solution capable d'appliquer des algorithmes aux données stockées sur un disque dur. Ce sont les choses que j'ai enquêtées en vain:
- R - BigMemory peut créer des matrices stockées hors mémoire, mais les éléments doivent être du même mode. Je travaille avec des données qui sont presque un partage 50/50 entre le caractère et le numérique. Le package FF se rapproche de ce dont j'ai besoin, mais je ne comprends pas très bien quelles procédures sont compatibles avec lui. Je pense que le soutien est quelque peu limité.
- Pandas - J'étais très enthousiasmé par une alternative pythonique à R. Cependant, il doit aussi conserver toutes les données en mémoire.
- Revolution R - Celui-ci est assez prometteur. J'ai une copie sur mon ordinateur personnel (gratuite si vous vous inscrivez à Kaggle) et je ne l'ai pas encore testée comme alternative viable à SAS. Les commentaires sur Revolution R en tant qu'alternative SAS sont très appréciés.
Merci
MISE À JOUR 1
Modification pour ajouter que je recherche des solutions pratiques et réelles que les gens ont utilisées avec succès. Pour la plupart, SAS me permet de parcourir de gros fichiers sans se soucier un peu des contraintes de mémoire. Quelle que soit la manière dont SAS est implémenté, ils ont compris comment rendre la gestion de la mémoire transparente pour l'utilisateur. Mais, c'est le cœur lourd que j'ai utilisé SAS pour mon travail (je le dois) et j'AIMERAIS une alternative FOSS qui me permet de travailler sur de "grandes" données sans avoir à trop réfléchir à l'endroit où se trouvent les données à un heure spécifique (en mémoire ou sur disque).
Les choses les plus proches que j'ai rencontrées sont le package FF de R et quelque chose à l'horizon pour Python appelé Blaze . Et pourtant, ces problèmes existent depuis de nombreuses années, alors qu'ont fait les analystes entre-temps? Comment gèrent-ils ces mêmes problèmes avec les limites de mémoire? La majorité des solutions proposées semblent être:
- Obtenez plus de RAM - Ce n'est pas une bonne solution, imo. Il est facile de trouver un ensemble de données qui peut dépasser la RAM tout en pouvant tenir sur un disque dur. De plus, le flux de travail doit s'adapter à toutes les structures créées lors de l'analyse exploratoire des données.
- Sous-ensemble des données - C'est bien pour l'exploration mais pas pour finaliser les résultats et les rapports. Finalement, tous les processus développés sur un sous-ensemble devront être appliqués à l'ensemble de données (dans mon cas, de toute façon).
- Chunk through the data - C'est ce que j'aimerais en savoir plus sur les personnes qui mettent réellement en œuvre ce flux de travail. Comment est-il fait? Avec quels outils? Peut-il être fait d'une manière transparente pour l'utilisateur? (c.-à-d., créer une structure de données sur disque et le cadre se charge de la segmentation sous le capot).