This documentation is for WSO2 Complex Event Processor 4.0.0. View documentation for the latest release.
WSO2 Complex Event Processor is succeeded by WSO2 Stream Processor. To view the latest documentation for WSO2 SP, see WSO2 Stream Processor Documentation.
Skip to end of metadata
Go to start of metadata

Siddhi enables users to forecast future events using linear regression on real time, data streams. The forecast function takes in a dependent event stream (Y), an independent event stream (X) and a user specified next X value, and returns the forecast Y value based on the regression equation of the historical data.

Input Parameters




Calculation Interval


The frequency of regression calculation.

Default value: 1 (i.e. at every event)

Batch Size


The maximum number of events used for a regression calculation

Default value: 1,000,000,000 events

Confidence Interval


Confidence Interval to be used for regression calculation

Default value: 0.95

Next X Value


Value to be used to forecast the Y value. This can be a constant, or an expression (eg:- x+5)

Y Stream


Data stream of the dependent variable

X Stream


Data stream of the independent variable


Output Parameters




Forecast Y


Forecast Y value based on next X and regression equation.

Standard Error


Standard Error of the Regression Equation

β coefficients

beta0, beta1

β coefficients of the simple linear regression

Input Stream Data

Name given in the input stream

All items sent in the input stream



The following query submits an expression to be used as the next X value (X+2) a dependent input stream (Y) and an independent input stream (X) that will be used to perform linear regression between Y and X streams, and compute the forecast Y value based on the next X value given by the user.

from StockExchangeStream#transform.timeseries:forecast(X+5, Y, X)

select *

insert into StockForecaster     


When executed, the above query will return the forecast Y value based on the regression equation established using the Y stream and the X stream and the standard error of the regression equation (ε), β coefficients and all the items available in the input stream. 

  • No labels