/**
  * @throws RegressionException
  */
 public function testCalculate()
 {
     $linear = new LinearRegression();
     $linear->setSourceSequence($this->rows[0]);
     $linear->calculate();
     /** @var RegressionModel $regressionModel */
     $regressionModel = $linear->getRegressionModel();
     $this->assertEquals('y = 142.4x + -341.2', $regressionModel->getEquation());
     $this->assertEquals(1083, round($regressionModel->getResultSequence()[9][1]));
     $this->assertEquals(940, round($regressionModel->getResultSequence()[8][1]));
     $this->assertEquals(798, round($regressionModel->getResultSequence()[7][1]));
     $regressionModel = RegressionFactory::linear($this->rows[1]);
     $this->assertEquals('y = 0.3x + 12.3', $regressionModel->getEquation());
     $this->assertEquals(13, round($regressionModel->getResultSequence()[0][1]));
     $this->assertEquals(13, round($regressionModel->getResultSequence()[1][1]));
     $this->assertEquals(13, round($regressionModel->getResultSequence()[2][1]));
 }
Beispiel #2
0
<?php

use Regression\ExponentialRegression;
use Regression\LinearRegression;
use Regression\LogarithmicRegression;
use Regression\PowerRegression;
use Regression\RegressionFactory;
use Regression\RegressionModel;
require __DIR__ . '/src/autoload.php';
require __DIR__ . '/vendor/autoload.php';
$testData = [[1, 10], [2, 30], [3, 68], [4, 130], [5, 222], [6, 350], [7, 520], [8, 738], [9, 1010], [10, 1342]];
/**
 * Calculate linear regression call calculate()
 */
$linear = new LinearRegression();
$linear->setSourceSequence($testData);
$linear->calculate();
/** @var RegressionModel $regressionModel */
$regressionModel = $linear->getRegressionModel();
/**
 * Calculate with Fabric method
 */
/** @var RegressionModel $regressionModel */
$regressionModel = RegressionFactory::linear($testData);
/**
 * Calculate Exponential regression call calculate()
 */
$exponential = new ExponentialRegression();
$exponential->setSourceSequence($testData);
$exponential->calculate();
/**