Ejemplo n.º 1
0
        public void MahalanobisTest()
        {
            double[] x = { 1, 0 };
            double[,] y =
            {
                { 1, 0 },
                { 0, 8 },
                { 0, 5 }
            };

            // Computing the mean of y
            double[] meanY = Tools.Mean(y);

            // Computing the covariance matrix of y
            double[,] covY = Tools.Covariance(y, meanY);

            // Inverting the covariance matrix
            double[,] precision = covY.Inverse();

            // Run actual test
            double expected = 1.33333;
            double actual   = Distance.SquareMahalanobis(x, meanY, precision);

            Assert.AreEqual(expected, actual, 0.0001);
        }
Ejemplo n.º 2
0
        public void MeanTest3()
        {
            double[] values   = { -5, 0.2, 2 };
            double   expected = -0.93333333333333324;
            double   actual   = Tools.Mean(values);

            Assert.AreEqual(expected, actual);
        }
Ejemplo n.º 3
0
        public void MeanTest()
        {
            double[,] matrix =
            {
                { 2, -1.0, 5 },
                { 7,  0.5, 9 },
            };

            double[] rowMean = Tools.Mean(matrix, 0);
            Assert.IsTrue(rowMean.IsEqual(4.5000, -0.2500, 7.0000));

            double[] colMean = Tools.Mean(matrix, 1);
            Assert.IsTrue(colMean.IsEqual(2, 5.5));
        }
Ejemplo n.º 4
0
        public void MeanTest4()
        {
            double[,] matrix =
            {
                { 2, -1.0, 5 },
                { 7,  0.5, 9 },
            };

            double[] sums = Matrix.Sum(matrix);
            Assert.IsTrue(sums.IsEqual(9.0, -0.5, 14.0));

            double[] expected = { 4.5000, -0.2500, 7.0000 };
            double[] actual   = Tools.Mean(matrix, sums);

            Assert.IsTrue(expected.IsEqual(actual));
        }
Ejemplo n.º 5
0
        public void StandardDeviationTest3()
        {
            double[,] matrix =
            {
                { 2, -1.0, 5 },
                { 7,  0.5, 9 },
            };

            double[] means = Tools.Mean(matrix);
            Assert.IsTrue(means.IsEqual(4.5000, -0.2500, 7.0000));

            double[] stdev = Tools.StandardDeviation(matrix, means);
            Assert.IsTrue(stdev.IsEqual(3.5355339059327378, 1.0606601717798212, 2.8284271247461903));

            double[] stdev2 = Tools.StandardDeviation(matrix);
            Assert.IsTrue(stdev2.IsEqual(stdev));
        }
Ejemplo n.º 6
0
        public void CenteringTest()
        {
            double[,] C2 = Matrix.Centering(2);

            Assert.IsTrue(Matrix.IsEqual(C2, new double[, ] {
                { 0.5, -0.5 },
                { -0.5, 0.5 }
            }));

            double[,] X =
            {
                { 1, 5, 2,   0 },
                { 6, 2, 3, 100 },
                { 2, 5, 8,   2 },
            };



            double[,] CX = Matrix.Centering(3).Multiply(X); // Remove means from rows
            double[,] XC = X.Multiply(Matrix.Centering(4)); // Remove means from columns

            double[] colMean = Tools.Mean(X, 1);
            double[] rowMean = Tools.Mean(X, 0);

            Assert.IsTrue(rowMean.IsEqual(new double[] { 3.0, 4.0, 4.3333, 34.0 }, 0.001));
            Assert.IsTrue(colMean.IsEqual(new double[] { 2.0, 27.75, 4.25 }, 0.001));


            double[,] Xr = X.Subtract(rowMean, 0);          // Remove means from rows
            double[,] Xc = X.Subtract(colMean, 1);          // Remove means from columns

            Assert.IsTrue(Matrix.IsEqual(XC, Xc));
            Assert.IsTrue(Matrix.IsEqual(CX, Xr, 0.00001));

            double[,] S1 = XC.Multiply(X.Transpose());
            double[,] S2 = Xc.Multiply(Xc.Transpose());
            double[,] S3 = Tools.Scatter(X, colMean, 1);

            Assert.IsTrue(Matrix.IsEqual(S1, S2));
            Assert.IsTrue(Matrix.IsEqual(S2, S3));
        }
Ejemplo n.º 7
0
        public void MedianTest()
        {
            double[,] matrix =
            {
                {   2, -1.0,  5 },
                {   7,  1.7,  9 },
                {  -4,  2.5,  6 },
                { 0.2,  0.5, -2 },
            };

            double[] mean = Tools.Mean(matrix);
            Assert.IsTrue(mean.IsEqual(1.3000, 0.9250, 4.5000));

            double[] median = Tools.Median(matrix);
            Assert.IsTrue(median.IsEqual(1.1000, 1.1000, 5.5000));


            matrix = matrix.Transpose();
            mean   = Tools.Mean(matrix);
            Assert.IsTrue(mean.IsEqual(2.0000, 5.8999999999999995, 1.5000, -0.43333333333333335));

            median = Tools.Median(matrix);
            Assert.IsTrue(median.IsEqual(2.0000, 7.0000, 2.5000, 0.2000));
        }