public void RegressTest()
{
double[][] X =
{
new double[] { 4.47 },
new double[] { 208.30 },
new double[] { 3400.00 },
};
double[][] Y =
{
new double[] { 0.51 },
new double[] { 105.66 },
new double[] { 1800.00 },
};
double eB = 0.5303528166;
double eA = -3.290915095;
var target = new MultivariateLinearRegression(1, 1, true);
target.Regress(X, Y);
Assert.AreEqual(target.Coefficients[0, 0], eB, 0.001);
Assert.AreEqual(target.Intercepts[0], eA, 0.001);
Assert.AreEqual(target.Inputs, 1);
Assert.AreEqual(target.Outputs, 1);
// Test manually including an constant term to generate an intercept
double[][] X1 =
{
new double[] { 4.47, 1 },
new double[] { 208.30, 1 },
new double[] { 3400.00, 1 },
};
var target2 = new MultivariateLinearRegression(2, 1, false);
target2.Regress(X1, Y);
Assert.AreEqual(target2.Coefficients[0, 0], eB, 0.001);
Assert.AreEqual(target2.Coefficients[1, 0], eA, 0.001);
Assert.AreEqual(target2.Inputs, 2);
Assert.AreEqual(target2.Outputs, 1);
}