foundryts.functions.exponential_regression

foundryts.functions.exponential_regression(include_multiple=True, time_unit='ns', start=None, end=None)

Returns a function that performs exponential regression on a single time series.

Exponential regression finds the parameters of the best-fit exponential curve over points of the input time series. The regression is expressed as y = Ae^(Bx), where A is the initial value and B is the growth rate. The returned function will provide the parameters A and B.

Exponential regression is particularly useful when the data exhibits exponential growth or decay patterns.

  • Parameters:
    • include_multiple (bool , optional) – Whether to include multiple regressions (default is True).
    • time_unit (str , optional) – The time unit of the coefficients, must be one of “s”, “ms”, “us”, “ns” (default is “ns”).
    • start (str | int | datetime.datetime , optional) – Starting point (inclusive) of the time series for computing the exponential regression.
    • end (str | int | datetime.datetime , optional) – End point (exclusive) of the time series for computing the exponential regression.
  • Returns: A function that accepts a single time series and provides parameters for the best-fit exponential curve for the time series.
  • Return type: (FunctionNode) -> SummarizerNode

Dataframe schema

Column nameTypeDescription
max_bounds.first_valuefloatMaximum value of the initial value (A) in y=Ae^(Bx).
max_bounds.second_valuefloatMaximum value of the growth rate (B) in y=Ae^(Bx).
min_bounds.first_valuefloatMinimum value of the initial value (A) in y=Ae^(Bx).
min_bounds.second_valuefloatMinimum value of the growth rate (B) in y=Ae^(Bx).
regression_fit_function.
exponential_regression_fit.
aparameter
floatEstimated parameter ‘A’ (initial value) of the
exponential regression fit in y=Ae^(Bx).
regression_fit_function.
exponential_regression_fit.
bparameter
floatEstimated parameter ‘B’ (growth rate) of the
exponential regression fit in y=Ae^(Bx).
Note

This function is only applicable to numeric series.

Examples

Copied!
1 2 3 4 5 6 7 8 9 10 >>> series = F.points( ... (10, 6.0), (20, 12.0), (30, 24.0), (40, 48.0), (50, 96.0), name="series" ... ) >>> series.to_pandas() timestamp value 0 1970-01-01 00:00:00.000000010 6.0 1 1970-01-01 00:00:00.000000020 12.0 2 1970-01-01 00:00:00.000000030 24.0 3 1970-01-01 00:00:00.000000040 48.0 4 1970-01-01 00:00:00.000000050 96.0
Copied!
1 2 3 4 >>> exponential_regr = F.exponential_regression()(series) >>> exponential_regr.to_pandas() max_bounds.first_value max_bounds.second_value min_bounds.first_value min_bounds.second_value regression_fit_function.exponential_regression_fit.aparameter regression_fit_function.exponential_regression_fit.bparameter 0 50.0 96.0 10.0 6.0 3.0 0.069315