assertEquals($cov1, $knownCovariance[0][0], '', $epsilon); $cov1 = Covariance::fromXYArrays($x, $x); $this->assertEquals($cov1, $knownCovariance[0][0], '', $epsilon); $cov2 = Covariance::fromDataset($matrix, 0, 1); $this->assertEquals($cov2, $knownCovariance[0][1], '', $epsilon); $cov2 = Covariance::fromXYArrays($x, $y); $this->assertEquals($cov2, $knownCovariance[0][1], '', $epsilon); // Second: calculation cov matrix with automatic means for each column $covariance = Covariance::covarianceMatrix($matrix); $this->assertEquals($knownCovariance, $covariance, '', $epsilon); // Thirdly, CovMatrix: Means are precalculated and given to the method $x = array_column($matrix, 0); $y = array_column($matrix, 1); $meanX = Mean::arithmetic($x); $meanY = Mean::arithmetic($y); $covariance = Covariance::covarianceMatrix($matrix, [$meanX, $meanY]); $this->assertEquals($knownCovariance, $covariance, '', $epsilon); } }