R como alternativa a SAS para datos grandes

8

Sé que R no es particularmente útil para analizar grandes conjuntos de datos dado que R carga todos los datos en la memoria, mientras que algo como SAS hace análisis secuenciales. Dicho esto, hay paquetes como bigmemory que permiten a los usuarios realizar análisis de datos grandes (análisis estadístico) de manera más eficiente en R.

Quería saber, además de toda la información teórica, si alguien ha usado / está usando R para analizar grandes conjuntos de datos en un entorno empresarial y cuáles son los problemas típicos que podrían surgir. Por conjuntos de datos grandes me refiero a conjuntos de datos que tienen un tamaño de ~ 200 GB. Además, cualquier idea sobre ejemplos de la vida real de la migración de SAS a R en tales casos de uso sería útil.

xbsd
fuente
1
R 3.0 (que es la versión actual) puede acceder a grandes matrices. En una máquina de 64 bits, debería poder direccionar esa cantidad de memoria si tiene tanta.
Glen_b -Reinstate Monica el
Hay algunos paquetes para aumentar la memoria, como ffy bigmemory. @Glen_b, ¿cree que la nueva R (con una máquina de 64 bits) rivalizará con SAS (en términos del posible tamaño de los conjuntos de datos)?
Stéphane Laurent
@ StéphaneLaurent SAS utiliza un enfoque diferente, lo que significa que no se limita a la memoria direccionable (este enfoque no es realmente posible para R debido a su flexibilidad), por lo que los límites no serán los mismos ... pero en realidad no sé cuáles son los límites de SAS.
Glen_b -Reinstate a Mónica el

Respuestas:

4

He trabajado en conjuntos de datos muy grandes en R y no he tenido problemas.

Existen varios enfoques que funcionan, pero mi paradigma básico es que encuentro formas de procesar los datos "secuencialmente". Obviamente, SAS tiene las mismas restricciones fundamentales de memoria si lo está usando en la misma máquina, usar R es solo un poco más DIY.

En todos los casos que he encontrado, estoy haciendo un análisis de algún tipo de resumen de los datos, o estoy haciendo un análisis de fragmentos de los datos y luego resumiendo los resultados. De cualquier manera, eso es fácil de lograr en R.

Es bastante fácil crear resúmenes si tiene sus datos estructurados de alguna manera (realmente de alguna manera). Hadoop es una herramienta líder para crear resúmenes, pero es fácil realizar el procesamiento por lotes en archivos R Data, y si sus datos caben en su dispositivo de almacenamiento local, también es más rápido procesarlos por lotes de esa manera (en términos de tiempo de procesamiento y tiempo de desarrollo).

También es bastante fácil agrupar su análisis por partes, también usando el mismo proceso de pensamiento.

Si realmente te mueres por hacer un modelo lineal directamente en un gigantesco conjunto de datos, entonces creo que bigmemory es tu respuesta, como lo sugiere Stéphane Laurent.

Realmente no creo que haya una "respuesta" a "cómo lidiar con las limitaciones de memoria" o "pasar a una nueva plataforma", pero este es mi largo aliento de dos centavos.

geneorama
fuente
3

No tengo experiencia en la parte revolucionaria de análisis, pero hay un blog sobre esto

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

Utiliza hadoop (computación distribuida) para resolver este problema de memoria.

user23900
fuente
1
Por favor proporcione más información. Si el enlace ya no funciona, la respuesta aún debería ser útil.
Sven Hohenstein
No creo que su "solución" fuera Hadoop (80 núcleos Hadoop eran dos veces más lentos que el SAS de 16 núcleos), pero parece que LSF ( en.wikipedia.org/wiki/Platform_LSF ) es aproximadamente el mismo tipo de cosas.
Darren Cook,