revisor/trend

Analyze data and try to find a significant trend

0.1.0 2017-01-11 14:17 UTC

This package is not auto-updated.

Last update: 2024-04-13 17:46:50 UTC


README

Latest Version on Packagist Software License Build Status Quality Score Coverage Status Total Downloads

Analyze data and try to find a significant trend.

Introduction

Imagine you're looking at points in a graph and you want to draw a single line through the points that represents their change. This is what Trend Calculator does. It tells you if there is a line through the points and how steep it is.

An example of linear regression

This class takes as an input a series of data points in time, performs regression, determines its statistical significance and returns a trend.

Time is the independent/explanatory variable, values are the dependent/outcome/target variable. In simplest terms:

"How does value change in time?"

Installation

Install Trend Calculator with the PHP package manager, Composer:

composer require revisor/trend

Usage

$trendCalculator = new TrendCalculator();

/**
 * $data is an array of arrays
 * In the inner arrays, keys are a time value in any unit (seconds, ie.
 * timestamp, microseconds, days, weeks...), the values are data values.
 * Multiple values for one point in time are allowed - maybe two events
 * occurred at one time.
 */
$data = [
    [1 => 9],
    [1 => 5],
    [2 => 12],
    [4 => 7]
];

/**
 * The resulting trend is a negative or positive float, or zero.
 * 
 * Values other than zero mean that there is a significant trend in the provided
 * data, and the trend goes down (for a negative number) or up (for a positive number).
 *
 * If the value is zero, it means that there is no significant trend.
 */
$trend = $trendCalculator->calculateTrend($data);

The slope of the trend is calculated by mcordingley/Regression. You can access more information about your data by asking the regression itself.

$regression = $trendCalculator->getRegression();
var_dump($regression->getStandardErrorCoefficients());

Change log

Please see the CHANGELOG for more information what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Credits

License

The MIT License (MIT). Please see the License for more information.