NAME Math::LOESS - Perl wrapper of the Locally-Weighted Regression package originally written by Cleveland, et al. VERSION version 0.001000 SYNOPSIS use Math::LOESS; my $loess = Math::LOESS->new(x => $x, y => $y); $loess->fit(); my $fitted_values = $loess->outputs->fitted_values; print $loess->summary(); my $prediction = $loess->predict($new_data, 1); my $confidence_intervals = $prediction->confidence(0.05); print $confidence_internals->{fit}; print $confidence_internals->{upper}; print $confidence_internals->{lower}; CONSTRUCTION new((Piddle1D|Piddle2D) :$x, Piddle1D :$y, Piddle1D :$weights=undef, Num :$span=0.75, Str :$family='gaussian') Arguments: * $x A ($n, $p) piddle for x data, where $p is number of predictors. It's possible to have at most 8 predictors. * $y A ($n, 1) piddle for y data. * $weights Optional ($n, 1) piddle for weights to be given to individual observations. By default, an unweighted fit is carried out (all the weights are one). * $span The parameter controls the degree of smoothing. Default is 0.75. For span < 1, the neighbourhood used for the fit includes proportion span of the points, and these have tricubic weighting (proportional to (1 - (dist/maxdist)^3)^3). For span > 1, all points are used, with the "maximum distance" assumed to be span^(1/p) times the actual maximum distance for p explanatory variables. When provided as a construction parameter, it is like a shortcut for, $loess->model->span($span); * $family If "gaussian" fitting is by least-squares, and if "symmetric" a re-descending M estimator is used with Tukey's biweight function. When provided as a construction parameter, it is like a shortcut for, $loess->model->family($family); Bad values in $x, $y, $weights are removed. ATTRIBUTES model Get an Math::LOESS::Model object. outputs Get an Math::LOESS::Outputs object. x Get input x data as a piddle. y Get input y data as a piddle. weights Get input weights data as a piddle. activated Returns a true value if the object's fit() method has been called. METHODS fit fit() predict predict((Piddle1D|Piddle2D) $newdata, Bool $stderr=false) Returns a Math::LOESS::Prediction object. Bad values in $newdata are removed. summary summary() Returns a summary string. For example, print $loess->summary(); SEE ALSO https://en.wikipedia.org/wiki/Local_regression PDL AUTHOR Stephan Loyd COPYRIGHT AND LICENSE This software is copyright (c) 2019-2023 by Stephan Loyd. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.