Accord.Tests.Statistics.ReceiverOperatingCharacteristicTest.DeLongVarianceTest C# (CSharp) Method

DeLongVarianceTest() private method

private DeLongVarianceTest ( ) : void
return void
        public void DeLongVarianceTest()
        {
            // Example from Sampling Variability of Nonparametric Estimates of the
            // Areas under Receiver Operating Characteristic Curves: An Update

            bool yes = true;
            bool no = false;

            bool[] expected = 
            {
                /* 1*/ yes,
                /* 2*/ no,
                /* 3*/ yes,
                /* 4*/ no,
                /* 5*/ no,
                /* 6*/ yes,
                /* 7*/ yes,
                /* 8*/ no,
                /* 9*/ no,
                /*10*/ yes,
                /*11*/ no,
                /*12*/ no,
                /*13*/ yes,
                /*14*/ no,
                /*15*/ no
            };

            int[] actual = 
            {
                /* 1*/ 1,
                /* 2*/ 2,
                /* 3*/ 5,
                /* 4*/ 1,
                /* 5*/ 1,
                /* 6*/ 1,
                /* 7*/ 2,
                /* 8*/ 1,
                /* 9*/ 2,
                /*10*/ 2,
                /*11*/ 1,
                /*12*/ 1,
                /*13*/ 5,
                /*14*/ 1,
                /*15*/ 1
            };

            ReceiverOperatingCharacteristic curve = new ReceiverOperatingCharacteristic(expected, actual);

            curve.Compute(10);

            Assert.AreEqual(6, curve.PositiveResults.Length);
            Assert.AreEqual(1, curve.PositiveResults[0]);
            Assert.AreEqual(5, curve.PositiveResults[1]);
            Assert.AreEqual(1, curve.PositiveResults[2]);
            Assert.AreEqual(2, curve.PositiveResults[3]);
            Assert.AreEqual(2, curve.PositiveResults[4]);
            Assert.AreEqual(5, curve.PositiveResults[5]);

            Assert.AreEqual(9, curve.NegativeResults.Length);
            Assert.AreEqual(2, curve.NegativeResults[0]);
            Assert.AreEqual(1, curve.NegativeResults[1]);
            Assert.AreEqual(1, curve.NegativeResults[2]);
            Assert.AreEqual(1, curve.NegativeResults[3]);
            Assert.AreEqual(2, curve.NegativeResults[4]);
            Assert.AreEqual(1, curve.NegativeResults[5]);
            Assert.AreEqual(1, curve.NegativeResults[6]);
            Assert.AreEqual(1, curve.NegativeResults[7]);
            Assert.AreEqual(1, curve.NegativeResults[8]);


            Assert.AreEqual(6, curve.PositiveAccuracies.Length);
            Assert.AreEqual(0.3888, curve.PositiveAccuracies[0], 1e-4);
            Assert.AreEqual(1.0000, curve.PositiveAccuracies[1], 1e-4);
            Assert.AreEqual(0.3888, curve.PositiveAccuracies[2], 1e-4);
            Assert.AreEqual(0.8888, curve.PositiveAccuracies[3], 1e-4);
            Assert.AreEqual(0.8888, curve.PositiveAccuracies[4], 1e-4);
            Assert.AreEqual(1.0000, curve.PositiveAccuracies[5], 1e-4);

            Assert.AreEqual(9, curve.NegativeAccuracies.Length);
            Assert.AreEqual(0.5000, curve.NegativeAccuracies[0], 1e-4);
            Assert.AreEqual(0.8333, curve.NegativeAccuracies[1], 1e-4);
            Assert.AreEqual(0.8333, curve.NegativeAccuracies[2], 1e-4);
            Assert.AreEqual(0.8333, curve.NegativeAccuracies[3], 1e-4);
            Assert.AreEqual(0.5000, curve.NegativeAccuracies[4], 1e-4);
            Assert.AreEqual(0.8333, curve.NegativeAccuracies[5], 1e-4);
            Assert.AreEqual(0.8333, curve.NegativeAccuracies[6], 1e-4);
            Assert.AreEqual(0.8333, curve.NegativeAccuracies[7], 1e-4);
            Assert.AreEqual(0.8333, curve.NegativeAccuracies[8], 1e-4);

            Assert.IsFalse(curve.NegativeAccuracies.HasNaN());
            Assert.IsFalse(curve.PositiveAccuracies.HasNaN());

            Assert.AreEqual(0.1285, curve.StandardError, 1e-4);
            Assert.AreEqual(0.0165, curve.Variance, 1e-4);

            Assert.IsFalse(Double.IsNaN(curve.StandardError));
            Assert.IsFalse(Double.IsNaN(curve.Variance));
        }