Uso SAS da quasi 5 anni. L'ho installato sul mio laptop e spesso devo analizzare set di dati con 1.000-2.000 variabili e centinaia di migliaia di osservazioni.
Ho cercato alternative a SAS che mi permettessero di condurre analisi su set di dati di dimensioni simili. Sono curioso di sapere cosa usano gli altri per situazioni come questa. Questo non è certamente "Big Data" nel modo in cui viene utilizzato oggi. Né i miei set di dati sono abbastanza piccoli da contenere in memoria. Ho bisogno di una soluzione in grado di applicare algoritmi ai dati memorizzati su un disco rigido. Queste sono le cose che ho studiato senza risultati:
- R - BigMemory può creare matrici archiviate in memoria, ma gli elementi devono essere nella stessa modalità. Lavoro con dati che sono quasi una divisione del 50/50 tra carattere e numero. Il pacchetto FF si avvicina a ciò di cui ho bisogno, ma non capisco bene quali procedure siano compatibili con esso. Penso che il supporto sia piuttosto limitato.
- Panda - Ero molto entusiasta di un'alternativa Pythonic a R. Tuttavia, anche questo deve contenere tutti i dati in memoria.
- Rivoluzione R - Questo mostra un bel po 'di promessa. Ne ho una copia sul mio computer di casa (gratuita se ti iscrivi a Kaggle) e devo ancora testarlo come valida alternativa a SAS. I commenti su Revolution R come alternativa SAS sono molto apprezzati.
Grazie
AGGIORNAMENTO 1
Editing per aggiungere che sto cercando soluzioni pratiche e reali che le persone hanno usato con successo. Per la maggior parte, SAS mi consente di esaminare i file di grandi dimensioni senza preoccuparmi un po 'dei vincoli di memoria. Comunque sia implementato SAS, hanno capito come rendere la gestione della memoria trasparente per l'utente. Ma è con il cuore pesante che ho usato SAS per il mio lavoro (devo) e ADORO un'alternativa FOSS che mi consente di lavorare su dati "di grandi dimensioni" senza dover pensare troppo a dove si trovano i dati in un orario specifico (in memoria o su disco).
Le cose più vicine che ho incontrato sono il pacchetto FF di R e qualcosa all'orizzonte per Python chiamato Blaze . Eppure, questi problemi esistono da molti anni, quindi cosa hanno fatto gli analisti nel frattempo? Come gestiscono questi stessi problemi con i limiti di memoria? La maggior parte delle soluzioni in offerta sembra essere:
- Ottieni più RAM - Questa non è una buona soluzione, imo. È facile trovare un set di dati che può superare la RAM ma che si adatta comunque a un disco rigido. Inoltre, il flusso di lavoro deve accogliere tutte le strutture create durante l'analisi dei dati esplorativi.
- Sottoinsieme dei dati: va bene per l'esplorazione ma non per finalizzare risultati e rapporti. Alla fine, tutti i processi sviluppati su un sottoinsieme dovranno essere applicati all'intero set di dati (nel mio caso, comunque).
- Sfogliare i dati: questo è ciò di cui vorrei sapere di più dalle persone che implementano effettivamente questo flusso di lavoro. Com'è fatto? Con quali strumenti? Può essere fatto in modo trasparente per l'utente? (ad esempio, creare una struttura di dati su disco e il frame-work si occupa del blocco sotto il cofano).