public void CoefficientsTest1()
{
double[][] inputs;
int[] outputs;
MultinomialLogisticRegressionTest.CreateInputOutputsExample2(out inputs, out outputs);
var analysis = new MultinomialLogisticRegressionAnalysis(inputs, outputs);
int inputCount = 5;
int coeffCount = inputCount + 1;
var mlr = analysis.regression;
analysis.Iterations = 100;
analysis.Tolerance = 1e-6;
analysis.Compute();
foreach (var coefficient in analysis.Coefficients)
{
Assert.IsNotNull(coefficient.Analysis);
Assert.IsNotNull(coefficient.Confidence);
Assert.IsNotNull(coefficient.ConfidenceLower);
Assert.IsNotNull(coefficient.ConfidenceUpper);
Assert.IsNotNull(coefficient.Name);
Assert.IsNotNull(coefficient.Class);
Assert.IsNotNull(coefficient.StandardError);
Assert.IsNotNull(coefficient.Value);
}
Assert.AreEqual(13, analysis.Coefficients.Count);
Assert.AreEqual(2, analysis.CoefficientValues.Length);
var class1 = analysis.CoefficientValues[0];
Assert.AreEqual(-11.774547061739975, class1[0], 1e-10);
Assert.AreEqual(0.523813075806107, class1[1], 1e-10);
Assert.AreEqual(0.36820307277024716, class1[2], 1e-10);
Assert.AreEqual(0, class1[3], 1e-6);
Assert.AreEqual(0, class1[4], 1e-6);
Assert.AreEqual(0, class1[5], 1e-6);
var class2 = analysis.CoefficientValues[1];
Assert.AreEqual(-22.721272157115514, class2[0], 1e-10);
Assert.AreEqual(0.46593949381162203, class2[1], 1e-10);
Assert.AreEqual(0.68590438098052586, class2[2], 1e-10);
Assert.AreEqual(0, class2[3], 1e-6);
Assert.AreEqual(0, class2[4], 1e-6);
Assert.AreEqual(0, class2[5], 1e-6);
}