Accord.Tests.Statistics.PartialLeastSquaresAnalysisTest.SimplsRegressionTest_new_method C# (CSharp) Method

SimplsRegressionTest_new_method() private method

private SimplsRegressionTest_new_method ( ) : void
return void
        public void SimplsRegressionTest_new_method()
        {
            double[][] inputs;
            double[][] outputs;

            var pls = CreateWineExample_new_method(out inputs, out outputs);

            MultivariateLinearRegression regression = pls.CreateRegression();

            // test regression intercepts
            double[] intercepts = regression.Intercepts;
            double[] expectedI = { 60.717, -8.509, -4.362 };

            Assert.IsTrue(intercepts.IsEqual(expectedI, 0.01));


            // test regression coefficients
            double[,] coefficients = regression.Coefficients;
            double[,] expectedC = 
                { 
                    { -1.6981, -0.0566, 0.07075 },
                    {  1.2735,  0.2924,	0.57193 },
                    { -4.0000,  1.0000, 0.50000 },
                    {  1.1792, 	0.1226, 0.15919 }
                };

            Assert.IsTrue(coefficients.IsEqual(expectedC, 0.01));


            // Test computation
            double[][] aY = regression.Transform(inputs);

            for (int i = 0; i < outputs.Length; i++)
            {
                for (int j = 0; j < outputs[i].Length; j++)
                {
                    double actualOutput = aY[i][j];
                    double expectedOutput = outputs[i][j];

                    double delta = System.Math.Abs(actualOutput - expectedOutput);
                    double tol = 0.21 * expectedOutput;

                    Assert.IsTrue(delta <= tol);
                }
            }

            // Test output transform
            double[][] bY = pls.TransformOutput(outputs);
            //string str = bY.ToCSharp();
            double[][] expected = new double[][] {
                new double[] { 55.1168117173553, 19.9814652854436, 23.1058025430891, 8.50770527860088E-15 },
                new double[] { 22.6848893220127, 7.39445606402423, 6.83504323067901, 3.73246403168482E-15 },
                new double[] { -0.877117473967739, -2.79934089543989, 0.379941427036153, -1.88457062440663E-16 },
                new double[] { -48.8124364962975, -9.63329642474673, -25.0857657504786, -7.17568385594517E-15 },
                new double[] { -28.1121470691027, -14.9432840292812, -5.23502145032562, -4.87602839189987E-15 } 
            };

            Assert.IsTrue(expected.IsEqual(bY, 1e-6));
        }