예제 #1
0
        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);
        }
예제 #2
0
        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);
        }
예제 #3
0
        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));
        }
예제 #4
0
        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));
        }
예제 #5
0
 /// <summary>
 /// Returns OLS-coefficients for the fitted model.
 /// </summary>
 public List <double> getCoefficients()
 {
     return(Regression.BetaEstimates(yVar.values, getXVariableLists()));
 }