public class LoessInterpolator extends Object implements UnivariateInterpolator, Serializable
For reference, see William S. Cleveland - Robust Locally Weighted Regression and Smoothing Scatterplots
This class implements both the loess method and serves as an interpolation adapter to it, allowing one to build a spline on the obtained loess fit.| Modifier and Type | Field and Description | 
|---|---|
| static double | DEFAULT_ACCURACYDefault value for accuracy. | 
| static double | DEFAULT_BANDWIDTHDefault value of the bandwidth parameter. | 
| static int | DEFAULT_ROBUSTNESS_ITERSDefault value of the number of robustness iterations. | 
| Constructor and Description | 
|---|
| LoessInterpolator()Constructs a new  LoessInterpolatorwith a bandwidth ofDEFAULT_BANDWIDTH,DEFAULT_ROBUSTNESS_ITERSrobustness iterations
 and an accuracy of {#link #DEFAULT_ACCURACY}. | 
| LoessInterpolator(double bandwidth,
                 int robustnessIters)Construct a new  LoessInterpolatorwith given bandwidth and number of robustness iterations. | 
| LoessInterpolator(double bandwidth,
                 int robustnessIters,
                 double accuracy)Construct a new  LoessInterpolatorwith given bandwidth, number of robustness iterations and accuracy. | 
| Modifier and Type | Method and Description | 
|---|---|
| PolynomialSplineFunction | interpolate(double[] xval,
           double[] yval)Compute an interpolating function by performing a loess fit
 on the data at the original abscissae and then building a cubic spline
 with a
  SplineInterpolatoron the resulting fit. | 
| double[] | smooth(double[] xval,
      double[] yval)Compute a loess fit on the data at the original abscissae. | 
| double[] | smooth(double[] xval,
      double[] yval,
      double[] weights)Compute a weighted loess fit on the data at the original abscissae. | 
public static final double DEFAULT_BANDWIDTH
public static final int DEFAULT_ROBUSTNESS_ITERS
public static final double DEFAULT_ACCURACY
public LoessInterpolator()
LoessInterpolator
 with a bandwidth of DEFAULT_BANDWIDTH,
 DEFAULT_ROBUSTNESS_ITERS robustness iterations
 and an accuracy of {#link #DEFAULT_ACCURACY}.
 See LoessInterpolator(double, int, double) for an explanation of
 the parameters.public LoessInterpolator(double bandwidth,
                 int robustnessIters)
LoessInterpolator
 with given bandwidth and number of robustness iterations.
 
 Calling this constructor is equivalent to calling {link LoessInterpolator(bandwidth,
 robustnessIters, LoessInterpolator.DEFAULT_ACCURACY)
 
bandwidth - when computing the loess fit at
 a particular point, this fraction of source points closest
 to the current point is taken into account for computing
 a least-squares regression.
 A sensible value is usually 0.25 to 0.5, the default value is
 DEFAULT_BANDWIDTH.robustnessIters - This many robustness iterations are done.
 A sensible value is usually 0 (just the initial fit without any
 robustness iterations) to 4, the default value is
 DEFAULT_ROBUSTNESS_ITERS.LoessInterpolator(double, int, double)public LoessInterpolator(double bandwidth,
                 int robustnessIters,
                 double accuracy)
                  throws OutOfRangeException,
                         NotPositiveException
LoessInterpolator
 with given bandwidth, number of robustness iterations and accuracy.bandwidth - when computing the loess fit at
 a particular point, this fraction of source points closest
 to the current point is taken into account for computing
 a least-squares regression.
 A sensible value is usually 0.25 to 0.5, the default value is
 DEFAULT_BANDWIDTH.robustnessIters - This many robustness iterations are done.
 A sensible value is usually 0 (just the initial fit without any
 robustness iterations) to 4, the default value is
 DEFAULT_ROBUSTNESS_ITERS.accuracy - If the median residual at a certain robustness iteration
 is less than this amount, no more iterations are done.OutOfRangeException - if bandwidth does not lie in the interval [0,1].NotPositiveException - if robustnessIters is negative.LoessInterpolator(double, int)public final PolynomialSplineFunction interpolate(double[] xval, double[] yval) throws NonMonotonicSequenceException, DimensionMismatchException, NoDataException, NotFiniteNumberException, NumberIsTooSmallException
SplineInterpolator
 on the resulting fit.interpolate in interface UnivariateInterpolatorxval - the arguments for the interpolation pointsyval - the values for the interpolation pointsNonMonotonicSequenceException - if xval not sorted in
 strictly increasing order.DimensionMismatchException - if xval and yval have
 different sizes.NoDataException - if xval or yval has zero size.NotFiniteNumberException - if any of the arguments and values are
 not finite real numbers.NumberIsTooSmallException - if the bandwidth is too small to
 accomodate the size of the input data (i.e. the bandwidth must be
 larger than 2/n).public final double[] smooth(double[] xval,
              double[] yval,
              double[] weights)
                      throws NonMonotonicSequenceException,
                             DimensionMismatchException,
                             NoDataException,
                             NotFiniteNumberException,
                             NumberIsTooSmallException
xval - Arguments for the interpolation points.yval - Values for the interpolation points.weights - point weights: coefficients by which the robustness weight
 of a point is multiplied.NonMonotonicSequenceException - if xval not sorted in
 strictly increasing order.DimensionMismatchException - if xval and yval have
 different sizes.NoDataException - if xval or yval has zero size.NotFiniteNumberException - if any of the arguments and values are
     not finite real numbers.NumberIsTooSmallException - if the bandwidth is too small to
 accomodate the size of the input data (i.e. the bandwidth must be
 larger than 2/n).public final double[] smooth(double[] xval,
              double[] yval)
                      throws NonMonotonicSequenceException,
                             DimensionMismatchException,
                             NoDataException,
                             NotFiniteNumberException,
                             NumberIsTooSmallException
xval - the arguments for the interpolation pointsyval - the values for the interpolation pointsNonMonotonicSequenceException - if xval not sorted in
 strictly increasing order.DimensionMismatchException - if xval and yval have
 different sizes.NoDataException - if xval or yval has zero size.NotFiniteNumberException - if any of the arguments and values are
 not finite real numbers.NumberIsTooSmallException - if the bandwidth is too small to
 accomodate the size of the input data (i.e. the bandwidth must be
 larger than 2/n).Copyright © 2003–2016 The Apache Software Foundation. All rights reserved.