Skip to content
Jacob Rachiele edited this page Feb 5, 2018 · 18 revisions

Intro

java-timeseries is a pure java library enabling modeling and analysis of fixed interval, possibly periodic, time series. Once a time series is constructed it may have a simple line chart of it produced, its autocorrelation function estimated, summary statistics computed, and models and predictions based on it made using the ARIMA methodology.

Future Development

The core focus areas of development in the near future will be the following:

Transition to Reactive Streaming Infrastructure

Check out the aptly named 'streaming' branch for an idea of what's to come. The idea is to utilize the RxJava library internally while publicly exposing an interface based on the Java 9 Flow API. This change will allow us to model a time series as an infinite stream. This will also allow clients to observe and automatically react to dynamic updates of time series objects. The desired functionality that is driving this change is to have one or more ARIMA models observe the same time series while updating the model fit and future predictions without any extra work on the part of the programmer.

Enhancements to ARIMA Modeling

There are various areas for improvement to the ARIMA code.

  • When estimated moving average coefficients are non-invertible, they should immediately be converted to their invertible form.
  • Functionality for checking whether the coefficients of an ARIMA model are causal, stationary, and invertible should be implemented.
  • An automatic ARIMA function should be available. The completion of the streaming branch should open up the possibility for a unique implementation.

Unevenly Spaced Time Series

Much of the IOT and streaming data that is flowing today can be viewed as unevenly spaced, or irregular, time series data. An important innovation we can contribute to is the analysis of such series. This paper might be a good starting point.