public void RegressTest()
{
MultipleLinearRegression target = new MultipleLinearRegression(1, true);
double[][] inputs =
{
new double[] { 80 },
new double[] { 60 },
new double[] { 10 },
new double[] { 20 },
new double[] { 30 },
};
double[] outputs = { 20, 40, 30, 50, 60 };
double error = target.Regress(inputs, outputs);
Assert.AreEqual(1, 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("pt-BR"));
Assert.AreEqual("y(x0) = -0,264705882352941*x0 + 50,5882352941176", str);
}