Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.commons.math3.analysis.interpolation
Class LoessInterpolator

    java.lang.Object
      org.apache.commons.math3.analysis.interpolation.LoessInterpolator

All Implemented Interfaces:
  Serializable, UnivariateInterpolator

    public class LoessInterpolator

extends Object
implements UnivariateInterpolator, Serializable

Implements the Local Regression Algorithm (also Loess, Lowess) for interpolation of real univariate functions.

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.

Since:
  2.0
Version:
  $Id: LoessInterpolator.java 1379904 2012-09-01 23:54:52Z erans $
See Also:
  Serialized Form

Field Summary
`static double` | `DEFAULT_ACCURACY` Default value for accuracy.
`static double` | `DEFAULT_BANDWIDTH` Default value of the bandwidth parameter.
`static int` | `DEFAULT_ROBUSTNESS_ITERS` Default value of the number of robustness iterations.

Constructor Summary
`LoessInterpolator()` Constructs a new `LoessInterpolator` with a bandwidth of `DEFAULT_BANDWIDTH`, `DEFAULT_ROBUSTNESS_ITERS` robustness iterations and an accuracy of {#link #DEFAULT_ACCURACY}.
`LoessInterpolator(double bandwidth, int robustnessIters)` Construct a new `LoessInterpolator` with given bandwidth and number of robustness iterations.
`LoessInterpolator(double bandwidth, int robustnessIters, double accuracy)` Construct a new `LoessInterpolator` with given bandwidth, number of robustness iterations and accuracy.

Method Summary
`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 `SplineInterpolator` on 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.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### DEFAULT_BANDWIDTH

    public static final double DEFAULT_BANDWIDTH

  Default value of the bandwidth parameter.

  See Also:
    Constant Field Values

### DEFAULT_ROBUSTNESS_ITERS

    public static final int DEFAULT_ROBUSTNESS_ITERS

  Default value of the number of robustness iterations.

  See Also:
    Constant Field Values

### DEFAULT_ACCURACY

    public static final double DEFAULT_ACCURACY

  Default value for accuracy.

  Since:
    2.1
  See Also:
    Constant Field Values

Constructor Detail

### LoessInterpolator

    public LoessInterpolator()

  Constructs a new `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.

### LoessInterpolator

    public LoessInterpolator(double bandwidth,
                             int robustnessIters)

  Construct a new `LoessInterpolator` with given bandwidth and number of robustness iterations.

  Calling this constructor is equivalent to calling {link `LoessInterpolator(bandwidth, robustnessIters, LoessInterpolator.DEFAULT_ACCURACY)`

  Parameters:
    `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`.
  See Also:
    `LoessInterpolator(double, int, double)`

### LoessInterpolator

    public LoessInterpolator(double bandwidth,
                             int robustnessIters,
                             double accuracy)
                      throws OutOfRangeException,
                             NotPositiveException

  Construct a new `LoessInterpolator` with given bandwidth, number of robustness iterations and accuracy.

  Parameters:
    `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.
  Throws:
    `OutOfRangeException` - if bandwidth does not lie in the interval [0,1].
    `NotPositiveException` - if `robustnessIters` is negative.
  Since:
    2.1
  See Also:
    `LoessInterpolator(double, int)`

Method Detail

### interpolate

    public final PolynomialSplineFunction interpolate(double[] xval,
                                                      double[] yval)
                                               throws NonMonotonicSequenceException,
                                                      DimensionMismatchException,
                                                      NoDataException,
                                                      NotFiniteNumberException,
                                                      NumberIsTooSmallException

  Compute an interpolating function by performing a loess fit on the data at the original abscissae and then building a cubic spline with a `SplineInterpolator` on the resulting fit.

  Specified by:
    `interpolate` in interface `UnivariateInterpolator`
  Parameters:
    `xval` - the arguments for the interpolation points
    `yval` - the values for the interpolation points
  Returns:
    A cubic spline built upon a loess fit to the data at the original abscissae
  Throws:
    `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).

### smooth

    public final double[] smooth(double[] xval,
                                 double[] yval,
                                 double[] weights)
                          throws NonMonotonicSequenceException,
                                 DimensionMismatchException,
                                 NoDataException,
                                 NotFiniteNumberException,
                                 NumberIsTooSmallException

  Compute a weighted loess fit on the data at the original abscissae.

  Parameters:
    `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.
  Returns:
    the values of the loess fit at corresponding original abscissae.
  Throws:
    `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).
  Since:
    2.1

### smooth

    public final double[] smooth(double[] xval,
                                 double[] yval)
                          throws NonMonotonicSequenceException,
                                 DimensionMismatchException,
                                 NoDataException,
                                 NotFiniteNumberException,
                                 NumberIsTooSmallException

  Compute a loess fit on the data at the original abscissae.

  Parameters:
    `xval` - the arguments for the interpolation points
    `yval` - the values for the interpolation points
  Returns:
    values of the loess fit at corresponding original abscissae
  Throws:
    `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).

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2003-2013 The Apache Software Foundation. All Rights Reserved.