Shlomi Fish > Statistics-Descriptive-3.0609 > Statistics::Descriptive::Smoother::Weightedexponential

Statistics-Descriptive-3.0609.tar.gz

Dependencies

Annotate this POD

Website

CPAN RT

 New 1 Open 1
View/Report Bugs
Module Version: 3.0609

NAME

Statistics::Descriptive::Smoother::Weigthedexponential - Implement weighted exponential smoothing

SYNOPSIS

```  use Statistics::Descriptive::Smoother;
my \$smoother = Statistics::Descriptive::Smoother->instantiate({
method   => 'weightedexponential',
coeff    => 0.5,
data     => [1, 2, 3, 4, 5],
samples  => [110, 120, 130, 140, 150],
});
my @smoothed_data = \$smoother->get_smoothed_data();```

DESCRIPTION

This module implement the weighted exponential smoothing algorithm to smooth the trend of a series of statistical data.

This algorithm can help to control large swings in the unsmoothed data that arise from small samples for those data points.

The algorithm implements the following formula:

W(0) = N(0)

W(t) = ( W(t-1) * CoeffA + N(t) * CoeffB ) / (CoeffA + CoeffB)

CoeffA = C * ( W(t-1) / (W(t-1) + N(t) ) )

CoeffB = (1 - C) * ( N(t) * (W(t-1) + N(t)) )

S(t) = (S(t-1)*CoeffA + X(t)*CoeffB) / (CoeffA + CoeffB)

where:

• t = index in the series
• S(t) = smoothed series value at position t
• C = smoothing coefficient. Value in the [0;1] range. `0` means that the series is not smoothed at all, while `1` the series is universally equal to the initial unsmoothed value.
• X(t) = unsmoothed series value at position t

METHODS

\$stats->get_smoothed_data();

Returns a copy of the smoothed data array.

Fabio Ponciroli