/** * @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])); }
<?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(); /**