public void RegressTest2()
{
var target = new MultipleLinearRegression(2, false);
Assert.IsFalse(target.HasIntercept);
double[][] inputs =
{
new double[] { 80, 1 },
new double[] { 60, 1 },
new double[] { 10, 1 },
new double[] { 20, 1 },
new double[] { 30, 1 },
};
double[] outputs = { 20, 40, 30, 50, 60 };
double error = target.Regress(inputs, outputs);
Assert.AreEqual(2, target.NumberOfInputs);
Assert.AreEqual(1, target.NumberOfOutputs);
double slope = target.Coefficients[0];
double intercept = target.Coefficients[1];
Assert.AreEqual(-0.264706, slope, 1e-5);
Assert.AreEqual(50.588235, intercept, 1e-5);
Assert.AreEqual(761.764705, error, 1e-5);
double r = target.CoefficientOfDetermination(inputs, outputs);
Assert.AreEqual(0.23823529, r, 1e-6);
string str = target.ToString(null, System.Globalization.CultureInfo.GetCultureInfo("en-US"));
Assert.AreEqual("y(x0, x1) = -0.264705882352941*x0 + 50.5882352941176*x1", str);
}