Forecast
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
Parameter | Â | Description |
Calculation Interval | Optional | The frequency of the regression calculation. Default value: 1 (i.e. at every event) |
Batch Size | Optional | The maximum number of events that should be used for a regression calculation. Default value: 1,000,000,000 events |
Confidence Interval | Optional | Confidence Interval to be used for regression calculation Default value: 0.95 |
Next X Value | Required | Value to be used to forecast the Y value. This can be a constant, or an expression (eg:- x+5) |
Y Stream | Required | Data stream of the dependent variable |
X Stream | Required | Data stream of the independent variable |
Â
Output Parameters
Parameter | Name | Description |
Forecast Y | forecastY | Forecast Y value based on next X and regression equation. |
Standard Error | stdError | 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 |
Â
ExampleÂ
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.Â