Trend Calculator
![Software License][ico-license]
![Coverage Status][ico-scrutinizer]
![Total Downloads][ico-downloads], (*1)
Analyze data and try to find a significant trend., (*2)
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., (*3)
, (*4)
This class takes as an input a series of data points in time, performs
regression, determines its statistical significance and returns a trend., (*5)
Time is the independent/explanatory variable, values are the
dependent/outcome/target variable. In simplest terms:, (*6)
"How does value change in time?", (*7)
Installation
Install Trend Calculator with the PHP package manager, Composer:, (*8)
``` bash
composer require revisor/trend, (*9)
## Usage
``` php
$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., (*10)
php
$regression = $trendCalculator->getRegression();
var_dump($regression->getStandardErrorCoefficients());
, (*11)
Change log
Please see the CHANGELOG for more information what has changed recently., (*12)
Contributing
Please see CONTRIBUTING for details., (*13)
Credits
License
The MIT License (MIT). Please see the License for more information., (*14)