public void test_BetaEstimates_returns_correct_values_3_lists() { /*lm(testList ~ a + b + c). R calculated estimates: * B0=-204.7130 B1=-0.3261 B2=114.4783 B3=5.4565 */ List <double> a = new List <double>() { 1, 2, 3.5, 3.2 }; List <double> b = new List <double>() { 1, 1.1, 1.2, 1.3 }; List <double> c = new List <double>() { 17, 15.2, 13.1, 13.0 }; List <List <double> > X = new List <List <double> >() { a, b, c }; List <double> expected = new List <double>() { -204.7130, -0.3261, 114.4783, 5.4565 }; List <double> results = Regression.BetaEstimates(testList, X); results = results.Select(y => Math.Round(y, 4)).ToList(); Assert.AreEqual(expected, results); }
public void test_BetaEstimates_returns_correct_values() { /*BetaEstimates for model lm(testlist ~ testlist2 + testlist3) * should be: B0 = -3.0551, B1=0.0005, B2 = 3.4909. Calculated with R, lm-function.*/ List <List <double> > X = new List <List <double> >() { testList2, testList3 }; List <double> expected = new List <double>() { -3.0551, 0.0005, 3.4909 }; List <double> results = Regression.BetaEstimates(testList, X); results = results.Select(y => Math.Round(y, 4)).ToList(); Assert.AreEqual(expected, results); }
public void test_BetaEstimates_null_List_throws_ArgumentException() { /*Tests that both y and x null parameters are caught.*/ List <double> a = new List <double>() { 1, 1.1, 1.2, 1.3 }; List <double> b = new List <double>() { 17, 15.2, 13.1, 13.0 }; List <List <double> > X = new List <List <double> >() { null, a, b }; Assert.Throws <MathError>(() => Regression.BetaEstimates(testList, X)); X.RemoveAt(0); Assert.Throws <MathError>(() => Regression.BetaEstimates(null, X)); }
public void test_BetaEstimates_different_Count_lists_throws_ArgumentException() { List <double> a = new List <double>() { 1, 2 }; List <double> b = new List <double>() { 1, 1.1, 1.2, 1.3 }; List <double> c = new List <double>() { 17, 15.2, 13.1, 13.0 }; List <List <double> > X = new List <List <double> >() { a, b, c }; Assert.Throws <ArgumentException>(() => Regression.BetaEstimates(testList, X)); }
/// <summary> /// Returns OLS-coefficients for the fitted model. /// </summary> public List <double> getCoefficients() { return(Regression.BetaEstimates(yVar.values, getXVariableLists())); }