The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Statistics::Forecast - calculates a future value

DESCRIPTION

This is a dummy Oriented Object module that calculates a future value by using existing values. The new value is calculated by using linear regression.

SYNOPSIS

use Statistics::Forecast;

Create forecast object

my $FCAST = Statistics::Forecast->new("My Forecast Name");

Add data

$FCAST->{DataX} = \@Array_X;
$FCAST->{DataY} = \@Array_Y;
$FCAST->{NextX} = $NextX;

Calculate the result

$FCAST->calc;

Get the result

my $Result_Forecast = $FCAST->{ForecastY);

INTERNALS

The equation for Forecast is:

a+bx, where 'x' is the predicted value and
    _    _
a = y + bx

b = sum((x+x)(y-y))/sum(x-x)**2

METHODS

new

Receives a forecast name, only to remember and returns the blessed data structure as a Statistics::Forecast object.

my $FCAST = Statistics::Forecast->new("My Forecast");
calc

Calculate and return the forecast value.

$FCAST->calc;
dump

Prints data for debuging propose.

$FCAST->dump;
SumX

Returns the sum of X values.

my $SumOfX = $FCAST->{SumX};
SumY

Returns the sum of Y values.

my $SumOfY = $FCAST->{SumY};
SumXX

Returns the sum of X**2 values.

my $SumOfXX = $FCAST->{SumXX};
SumXY

Returns the sum of X * Y values.

my $SumOfXY = $FCAST->{SumXY};
AvgX

Returns the average of X values.

my $AvgX = $FCAST->{AvgX};
AvgY

Returns the average of Y values.

my $AvgY = $FCAST->{AvgY};
N

Return the number of X values.

my $N = $FCAST->{N};

EXAMPLE

use Statistics::Forecast;

my @Y = (1,3,7,12);
my @X = (1,2,3,4);

my $FCAST = Statistics::Forecast->new("My Forecast");

$FCAST->{DataX} = \@X;
$FCAST->{DataY} = \@Y;
$FCAST->{NextX} = 8;
$FCAST->calc;

print "The Forecast ", $FCAST->{ForecastName};
print " has the forecast value: ", $FCAST->{ForecastY}, "\n";

AUTHOR

This module was developed by Alex Falcao (alexjfalcao@hotmail.com)

STATUS OF THE MODULE

This is the first version and calculates forecast value.

VERSION

0.3

COPYRIGHT

This module is released for free public use under a GPL license.