Class PolynomialRegression

  • All Implemented Interfaces:
    IsRegression

    public final class PolynomialRegression
    extends Object
    Polynomial Regression is a regression algorithm that models the relationship between a dependent(y) and independent variable(x) as nth degree polynomial.
    The Polynomial Regression equation is given below:

    y = b0 + b1x1 + b2x12 + b2x13 +...... bnx1n
    Author:
    Andrea "Stock" Stocchero
    • Field Detail

      • DEFAULT_DEGREE

        public static final int DEFAULT_DEGREE
        Default degree, 2.
        See Also:
        Constant Field Values
      • DEFAULT_FORMULA_PRECISION

        public static final int DEFAULT_FORMULA_PRECISION
        Default precision to get the formula, 2.
        See Also:
        Constant Field Values
    • Method Detail

      • getDegree

        public final int getDegree()
        Returns the maximum degree of the polynomial.
        Returns:
        the maximum degree of the polynomial
      • getPowers

        public final List<Double> getPowers()
        Returns the powers coefficient.
        Returns:
        the powers coefficient
      • getCoefficients

        public final List<Double> getCoefficients()
        Returns all calculated coefficients as an array, in increasing order of power (from 0 to degree).
        Returns:
        all calculated coefficients as an array
      • isConsistent

        public final boolean isConsistent()
        Description copied from interface: IsRegression
        Returns true if the regression is consistent and usable.
        Specified by:
        isConsistent in interface IsRegression
        Returns:
        true if the regression is consistent and usable
      • predict

        public final double predict​(double x)
        Description copied from interface: IsRegression
        Returns the Y value, calculated by the regression formula at specific X value.
        Specified by:
        predict in interface IsRegression
        Parameters:
        x - value to use to get the predicted value
        Returns:
        the Y value, calculated by the regression formula at specific X value
      • predict

        public final double predict​(Date x)
        Description copied from interface: IsRegression
        Returns the Y value, calculated by the regression formula at specific X value.
        Specified by:
        predict in interface IsRegression
        Parameters:
        x - value to use to get the predicted value
        Returns:
        the Y value, calculated by the regression formula at specific X value
      • predict

        public final double predict​(DataPoint dataPoint)
        Description copied from interface: IsRegression
        Returns the Y value, calculated by the regression formula at specific X value.
        Specified by:
        predict in interface IsRegression
        Parameters:
        dataPoint - value to use to get the predicted value
        Returns:
        the Y value, calculated by the regression formula at specific X value
      • predict

        public final double predict​(TimeSeriesItem item)
        Description copied from interface: IsRegression
        Returns the Y value, calculated by the regression formula at specific X value.
        Specified by:
        predict in interface IsRegression
        Parameters:
        item - value to use to get the predicted value
        Returns:
        the Y value, calculated by the regression formula at specific X value
      • predict

        public final List<Double> predict​(double... xValues)
        Description copied from interface: IsRegression
        Returns a list of Y values, calculated by the regression formula for specific X values.
        Specified by:
        predict in interface IsRegression
        Parameters:
        xValues - values to use to get the predicted values
        Returns:
        a list of Y values, calculated by the regression formula for specific X values
      • predict

        public final List<Double> predict​(List<Double> xValues)
        Description copied from interface: IsRegression
        Returns a list of Y values, calculated by the regression formula for specific X values.
        Specified by:
        predict in interface IsRegression
        Parameters:
        xValues - values to use to get the predicted values
        Returns:
        a list of Y values, calculated by the regression formula for specific X values
      • predictByDates

        public final List<Double> predictByDates​(Date... xValues)
        Description copied from interface: IsRegression
        Returns a list of Y values, calculated by the regression formula for specific X values.
        Specified by:
        predictByDates in interface IsRegression
        Parameters:
        xValues - values to use to get the predicted values
        Returns:
        a list of Y values, calculated by the regression formula for specific X values
      • predictByDates

        public final List<Double> predictByDates​(List<Date> xValues)
        Description copied from interface: IsRegression
        Returns a list of Y values, calculated by the regression formula for specific X values.
        Specified by:
        predictByDates in interface IsRegression
        Parameters:
        xValues - values to use to get the predicted values
        Returns:
        a list of Y values, calculated by the regression formula for specific X values
      • predictByDataPoints

        public final List<Double> predictByDataPoints​(DataPoint... dataPoints)
        Description copied from interface: IsRegression
        Returns a list of Y values, calculated by the regression formula for specific X values.
        Specified by:
        predictByDataPoints in interface IsRegression
        Parameters:
        dataPoints - values to use to get the predicted values
        Returns:
        a list of Y values, calculated by the regression formula for specific X values
      • predictByDataPoints

        public final List<Double> predictByDataPoints​(List<DataPoint> dataPoints)
        Description copied from interface: IsRegression
        Returns a list of Y values, calculated by the regression formula for specific X values.
        Specified by:
        predictByDataPoints in interface IsRegression
        Parameters:
        dataPoints - values to use to get the predicted values
        Returns:
        a list of Y values, calculated by the regression formula for specific X values
      • predictByTimeSeriesItems

        public final List<Double> predictByTimeSeriesItems​(TimeSeriesItem... items)
        Description copied from interface: IsRegression
        Returns a list of Y values, calculated by the regression formula for specific X values.
        Specified by:
        predictByTimeSeriesItems in interface IsRegression
        Parameters:
        items - values to use to get the predicted values
        Returns:
        a list of Y values, calculated by the regression formula for specific X values
      • predictByTimeSeriesItems

        public final List<Double> predictByTimeSeriesItems​(List<TimeSeriesItem> items)
        Description copied from interface: IsRegression
        Returns a list of Y values, calculated by the regression formula for specific X values.
        Specified by:
        predictByTimeSeriesItems in interface IsRegression
        Parameters:
        items - values to use to get the predicted values
        Returns:
        a list of Y values, calculated by the regression formula for specific X values
      • score

        public final RegressionScore score​(List<Double> y)
        Description copied from interface: IsRegression
        Evaluates the regression formula if the model fits enough.
        X values are creating starting from 0 with increment of 1.
        Specified by:
        score in interface IsRegression
        Parameters:
        y - Y values to use for evaluation
        Returns:
        the score of the regression
      • score

        public final RegressionScore score​(List<Double> y,
                                           double starting)
        Description copied from interface: IsRegression
        Evaluates the regression formula if the model fits enough.
        X values are creating starting from passed argument with increment of 1.
        Specified by:
        score in interface IsRegression
        Parameters:
        y - Y values to use for evaluation
        starting - starting value to create X values
        Returns:
        the score of the regression
      • score

        public final RegressionScore score​(List<Double> y,
                                           double starting,
                                           double increment)
        Description copied from interface: IsRegression
        Evaluates the regression formula if the model fits enough.
        X values are creating starting from passed argument with increment of passed argument.
        Specified by:
        score in interface IsRegression
        Parameters:
        y - Y values to use for evaluation
        starting - starting value to create X values
        increment - increment to apply to the starting value
        Returns:
        the score of the regression
      • score

        public final RegressionScore score​(List<Double> x,
                                           List<Double> y)
        Description copied from interface: IsRegression
        Evaluates the regression formula if the model fits enough.
        Specified by:
        score in interface IsRegression
        Parameters:
        x - X values to use for evaluation
        y - Y values to use for evaluation
        Returns:
        the score of the regression
      • scoreByDate

        public final RegressionScore scoreByDate​(List<Date> x,
                                                 List<Double> y)
        Description copied from interface: IsRegression
        Evaluates the regression formula if the model fits enough.
        Specified by:
        scoreByDate in interface IsRegression
        Parameters:
        x - X values to use for evaluation
        y - Y values to use for evaluation
        Returns:
        the score of the regression
      • scoreByDataPoints

        public final RegressionScore scoreByDataPoints​(List<DataPoint> dataPoints)
        Description copied from interface: IsRegression
        Evaluates the regression formula if the model fits enough.
        Specified by:
        scoreByDataPoints in interface IsRegression
        Parameters:
        dataPoints - X and Y values to use for evaluation
        Returns:
        the score of the regression
      • toFormula

        public final String toFormula()
        Description copied from interface: IsRegression
        Returns the formula of the regression.
        Specified by:
        toFormula in interface IsRegression
        Returns:
        the formula of the regression
      • toFormula

        public final String toFormula​(int precision)
        Description copied from interface: IsRegression
        Returns the formula of the regression, using the requested precision.
        Specified by:
        toFormula in interface IsRegression
        Parameters:
        precision - precision to apply to the numbers of the formula
        Returns:
        the formula of the regression
      • toLaTeX

        public final String toLaTeX()
        Description copied from interface: IsRegression
        Returns the formula of the regression.
        Specified by:
        toLaTeX in interface IsRegression
        Returns:
        the formula of the regression
      • toLaTeX

        public final String toLaTeX​(int precision)
        Description copied from interface: IsRegression
        Returns the formula of the regression, using the requested precision.
        Specified by:
        toLaTeX in interface IsRegression
        Parameters:
        precision - precision to apply to the numbers of the formula
        Returns:
        the formula of the regression