domingo, abril 11, 2010

Alternativas para hacer análisis estadístico

Este post fue motivado por la duda de una estudiante. En una materia de la facultad (simulación), se requiere generar una serie de números aleatorios y realizar operaciones estadísticas con esos valores. A continuación, se debe generar un gráfico con los valores calculados.

Ahora bien, con una hoja de cálculo de Excel o Calc, se puede realizar bastante sencillo, pero no sería tan divertido como hacerlo en Java! Así que me puse a investigar un poquito para ver qué alternativas se encuentran que nos ayuden a realizar estos cálculos. Fue así como me topé con las siguientes herramientas:

Para realizar cálculos estadísticos:

Apache Commons Math: ¿Hay algo para lo que Apache no haya realizado un API? Seguramente, pero este paquete ofrece lo básico para realizar análisis estadístico en Java, como por ejemplo, cálculo de varianza, regresión lineal, interpolación, resolución de ecuaciones diferenciales, generación de números aleatorios con restricciones, etc. La verdad es que no parece un paquete tan básico, es más, para los problemas tipos de estadística, alcanza y sobra.

Colt: Una librería para realizar cálculos de alta performance. Aparentemente, los creadores de esta API quieren pelearle mano a mano al clásico lenguaje de físicos, matemáticos y astrónomos: Fortran (si, se sigue usando y mucho).

JUMP Ultimate math package: Puede que sean el 'ultimate' o simplemente no sirva, la descripción del producto es muy, pero muy escaza, así que no daré mucha referencia. Además, es más matemático que estadístico.

Estas son las librerías que más me llamaron la atención, pero pueden encontrar más info en http://math.nist.gov/javanumerics/#libraries


Para realizar gráficos:

JFreeChart: una API clásica para realizar gráficos en Java. Como puede generar imágines, es muy fácil utilizarla en aplicaciones de escritorio como en web.

JCCKit (Java Chart Construction Kit): una librería open source cuya principal ventaja es el tamaño. Menos de 100Kb de espacio que ocupará en nuestra aplicación. Esto resulta útil para aplicaciones móviles sin duda.

BIRT: Como siempre, eclipse también tiene mucho más que un excelente IDE para ofrecer. BIRT es una herramienta para la creación de reportes que por supuesto, también ofrece la generación de gráficos.

Google Chart Tools: no es una librería en sí, sino que podemos generar una imagen (estática o dinámica) a partir de una URL. Esto se usaría más dentro de una aplicación web más que swing.

Más info en http://java-source.net/open-source/charting-and-reporting

Además, puedes estar pensando "Demasiado complicado, por qué no generar directamente un archivo de Excel y listo?". Bueno bueno, para esto tienes JExcelApi, con la que puedes manipular archivos Excel (pero sólo hasta la versión 2003).

Espero que haya sido de utilidad. Si algún dia encuentro tiempo, veré de postear algún ejemplo andando.

Saludos

1 Comments:

At 9:12 a. m., Anonymous Guillermo said...

JFreeChart lo vengo usando desde hace tiempo y son increíbles los gráficos que se pueden hacer y el poco código que hace falta, y los de Google para las aplicaciones web son excelentes.

 

Publicar un comentario

<< Home