Class RobustPolynomialRegression

  • All Implemented Interfaces:
    IsRegression

    public final class RobustPolynomialRegression
    extends Object
    Robust regression is a form of regression analysis designed to overcome some limitations of traditional parametric and non-parametric methods.
    Regression analysis seeks to find the relationship between one or more independent variables and a dependent variable. Certain widely used methods of regression, such as ordinary least squares, have favourable properties if their underlying assumptions are true, but can give misleading results if those assumptions are not true; thus ordinary least squares is said to be not robust to violations of its assumptions.
    Robust regression methods are designed to be not overly affected by violations of assumptions by the underlying data-generating process.

    In particular, least squares estimates for regression models are highly sensitive to outliers.
    While there is no precise definition of an outlier, outliers are observations that do not follow the pattern of the other observations.
    This is not normally a problem if the outlier is simply an extreme observation drawn from the tail of a normal distribution, but if the outlier results from non-normal measurement error or some other violation of standard ordinary least squares assumptions, then it compromises the validity of the regression results if a non-robust regression technique is used.
    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