Package com.leumanuel.woozydata.service
Class TimeSeriesAnalysisService
java.lang.Object
com.leumanuel.woozydata.service.TimeSeriesAnalysisService
Service class for time series analysis and forecasting.
Provides methods for various time series operations including moving averages,
decomposition, forecasting, and outlier detection.
- Version:
- 1.0
- Author:
- Leu A. Manuel
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiondouble[]arimaModel(double[] data, int arLag, int d, int maLag) Fits an ARIMA (Autoregressive Integrated Moving Average) model.double[]armaModel(double[] data, int arLag, int maLag) Fits an ARMA (Autoregressive Moving Average) model.double[]autoRegressiveModel(double[] data, int lag) Fits an Autoregressive (AR) model to the time series data.Decomposes time series into trend, seasonal, and residual components.detectTimeSeriesOutliers(DataFrame df, String timeCol, String valueCol) Detects outliers in time series data using IQR method.double[]exponentialMovingAverage(double[] data, double alpha) Calculates Exponential Moving Average (EMA).Generates forecasts for future time periods.double[]movingAverageModel(double[] data, int lag) Fits a Moving Average (MA) model to the time series data.seasonalAdjustment(DataFrame df, String timeCol, String valueCol) Removes seasonal component from time series.double[]simpleMovingAverage(double[] data, int windowSize) Calculates Simple Moving Average (SMA) for a time series.
-
Constructor Details
-
TimeSeriesAnalysisService
public TimeSeriesAnalysisService()
-
-
Method Details
-
simpleMovingAverage
public double[] simpleMovingAverage(double[] data, int windowSize) Calculates Simple Moving Average (SMA) for a time series.- Parameters:
data- Array of time series valueswindowSize- Size of the moving window- Returns:
- Array containing moving averages
- Throws:
IllegalArgumentException- if windowSize is larger than data length
-
autoRegressiveModel
public double[] autoRegressiveModel(double[] data, int lag) Fits an Autoregressive (AR) model to the time series data.- Parameters:
data- Array of time series valueslag- Number of lagged terms to include- Returns:
- Array of AR coefficients
- Throws:
IllegalArgumentException- if lag is larger than data length
-
movingAverageModel
public double[] movingAverageModel(double[] data, int lag) Fits a Moving Average (MA) model to the time series data.- Parameters:
data- Array of time series valueslag- Number of lagged error terms- Returns:
- Array of MA coefficients
- Throws:
IllegalArgumentException- if lag is larger than data length
-
armaModel
public double[] armaModel(double[] data, int arLag, int maLag) Fits an ARMA (Autoregressive Moving Average) model.- Parameters:
data- Array of time series valuesarLag- AR component lagmaLag- MA component lag- Returns:
- Array containing combined AR and MA coefficients
-
arimaModel
public double[] arimaModel(double[] data, int arLag, int d, int maLag) Fits an ARIMA (Autoregressive Integrated Moving Average) model.- Parameters:
data- Array of time series valuesarLag- AR component lagd- Order of differencingmaLag- MA component lag- Returns:
- Array containing model coefficients
-
exponentialMovingAverage
public double[] exponentialMovingAverage(double[] data, double alpha) Calculates Exponential Moving Average (EMA).- Parameters:
data- Array of time series valuesalpha- Smoothing factor (0 < alpha < 1)- Returns:
- Array containing exponential moving averages
- Throws:
IllegalArgumentException- if alpha is not between 0 and 1
-
forecast
Generates forecasts for future time periods.- Parameters:
df- DataFrame containing time series datatimeCol- Column containing time valuesvalueCol- Column containing series valuesperiods- Number of periods to forecast- Returns:
- DataFrame containing forecasted values
-
decompose
Decomposes time series into trend, seasonal, and residual components.- Parameters:
df- DataFrame containing time series datatimeCol- Column containing time valuesvalueCol- Column containing series values- Returns:
- DataFrame with decomposed components
-
seasonalAdjustment
Removes seasonal component from time series.- Parameters:
df- DataFrame containing time series datatimeCol- Column containing time valuesvalueCol- Column containing series values- Returns:
- DataFrame with seasonally adjusted values
-
detectTimeSeriesOutliers
Detects outliers in time series data using IQR method.- Parameters:
df- DataFrame containing time series datatimeCol- Column containing time valuesvalueCol- Column containing series values- Returns:
- DataFrame containing identified outliers
-