5 votos

¿Qué biblioteca debo usar para el análisis de series temporales en Java?

Estoy buscando una biblioteca para hacer análisis de series temporales en Java pero no encuentro nada adecuado.

He encontrado muchas bibliotecas como Math3 o JSAT pero no hay mucho que pueda usar para mi problema.

Como ejemplo, me gustaría calcular la desviación estándar a lo largo del tiempo, promedio móvil, etc. para una serie de tiempo específica.

2 votos

Hay algo raro en tu segunda oración... ¿Podrías corregirla, por favor?

0 votos

No olvides que las clases como esta siempre se pueden "envolver" en una clase llena de funciones para realizar las cosas que enumeraste (que tendrás que implementar tú mismo). Encontrar una clase simple de series temporales que admita el TIPO de operación que necesitas debería ser suficiente: ¿considera si necesitas puntos fijos en el tiempo o variables? ¿Necesitas insertar/reemplazar un período de tiempo arbitrario con un nuevo valor? ¿Puedes permitirte almacenar un tipo genérico para cada periodo de tiempo (como un Double) o tiene que ser un tipo intrínseco como double por cuestiones de rendimiento? ¿Cómo persiste esto?... Implementa las cosas que enumeraste tú mismo.

7voto

Robert S. Barnes Puntos 1061

Trabajo intensivamente con series temporales y tengo experiencia en Java y lenguajes de script como MATLAB y R. Le sugiero enfáticamente que debería crear sus propias implementaciones en Java y dejar de buscar y depender de implementaciones prefabricadas. No son confiables. Uno debería ser capaz de escribir std, corr, cov, ma, etc., fácilmente a mano. Codificarlos de forma independiente realmente puede mejorar su comprensión del problema subyacente.

En resumen, Java no es una buena herramienta para el análisis. Puede querer hacer prototipos e investigaciones en MATLAB, R y Python, e implementar las características requeridas en Java después de la investigación preliminar.

0 votos

Creo que commons math es bastante confiable. Estoy de acuerdo en que la mayoría de las cosas simples son más fáciles de codificar que de descifrar algo como TA-Lib, por ejemplo. enlace a apache commons math

0 votos

Hola Brian, estoy de acuerdo. Personalmente también uso commons math como una biblioteca de utilidades. Sin embargo, a menudo escribo un wrapper alrededor de estas implementaciones de terceros, para tener un control total sobre la interfaz.

0 votos

Estoy de acuerdo en que no hay un líder obvio en el mercado, pero no creo que no deba haber uno (es decir, no sería malo si pudiéramos depender de algo decente, como pandas para python). De hecho, estoy sorprendido de que nadie haya aprovechado este mercado todavía, aunque hay algunos candidatos. Para cosas sencillas como la desviación estándar, está bien re-implementar, pero para cosas más complicadas podría ser muy útil usar funciones más eficientes/optimizadas.

2voto

Rob Chanter Puntos 397

Tablesaw es similar a Pandas de Python: https://github.com/jtablesaw/tablesaw

1voto

Piskvor Puntos 46986

Hace algún tiempo se me ocurrió TimEL, una biblioteca de Java que he estado escribiendo para evaluar expresiones de datos de series temporales.

0 votos

404 No Encontrado nginx

1 votos

¡Gracias por señalar eso @RayTayek! He actualizado el enlace con el repositorio de GitHub.

1voto

Steven Puntos 169

Aquí está la biblioteca para el modelado de series temporales. Hay modelos de suavizamiento exponencial (simple, doble, triple) con estimación de máxima verosimilitud y otras clases de utilidad para series temporales:

0voto

Chris Lieb Puntos 106

Puede resultarte útil encontrar TA-Lib:

TA-Lib es ampliamente utilizado por desarrolladores de software de trading que requieren realizar análisis técnico de datos del mercado financiero.

    Incluye 200 indicadores como ADX, MACD, RSI, Estocástico, Bandas de Bollinger, etc... (más información)
    Reconocimiento de patrones de velas
    API de código abierto para C/C++, Java, Perl, Python y 100% Managed .NET

Es bastante útil y versátil: puedes expandir su uso más allá de la desviación estándar y los promedios móviles, y también a otros lenguajes de programación, como se mencionó anteriormente.

¡Buena suerte!

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X