-
Notifications
You must be signed in to change notification settings - Fork 50
Home
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.
The core focus areas of development in the near future will be the following:
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.
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.
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.