Accord.Tests.Statistics.TwoMatrixKappaTestTest.KappaTestConstructorTest2 C# (CSharp) Method

KappaTestConstructorTest2() private method

private KappaTestConstructorTest2 ( ) : void
return void
        public void KappaTestConstructorTest2()
        {
            // Example from Congalton

            int[,] matrix1 = // pg 108
            {
                { 65,  4,  22,  24 },
                {  6, 81,   5,   8 },
                {  0, 11,  85,  19 },
                {  4,  7,   3,  90 },
            };

            GeneralConfusionMatrix a = new GeneralConfusionMatrix(matrix1);

            Assert.AreEqual(115, a.RowTotals[0]);
            Assert.AreEqual(100, a.RowTotals[1]);
            Assert.AreEqual(115, a.RowTotals[2]);
            Assert.AreEqual(104, a.RowTotals[3]);

            Assert.AreEqual(75, a.ColumnTotals[0]);
            Assert.AreEqual(103, a.ColumnTotals[1]);
            Assert.AreEqual(115, a.ColumnTotals[2]);
            Assert.AreEqual(141, a.ColumnTotals[3]);



            int[,] matrix2 = // pg 109
            {
                { 45,  4, 12, 24 },
                {  6, 91,  5,  8 },
                {  0,  8, 55,  9 },
                {  4,  7,  3, 55 },
            };

            
            GeneralConfusionMatrix b = new GeneralConfusionMatrix(matrix2);

            Assert.AreEqual(85, b.RowTotals[0]);
            Assert.AreEqual(110, b.RowTotals[1]);
            Assert.AreEqual(72, b.RowTotals[2]);
            Assert.AreEqual(69, b.RowTotals[3]);

            Assert.AreEqual(55, b.ColumnTotals[0]);
            Assert.AreEqual(110, b.ColumnTotals[1]);
            Assert.AreEqual(75, b.ColumnTotals[2]);
            Assert.AreEqual(96, b.ColumnTotals[3]);

            // Check overall accuracy
            Assert.AreEqual(0.74, a.OverallAgreement, 0.005);
            Assert.AreEqual(0.73, b.OverallAgreement, 0.005);


            double kA = a.Kappa;
            double kB = b.Kappa;

            double varA = KappaTest.DeltaMethodKappaVariance(a);
            double varB = KappaTest.DeltaMethodKappaVariance(b);

            // Create the test
            TwoMatrixKappaTest target = new TwoMatrixKappaTest(kA, varA, kB, varB);

            Assert.AreEqual(TwoSampleHypothesis.ValuesAreDifferent, target.Hypothesis);
            Assert.AreEqual(DistributionTail.TwoTail, target.Tail);

            // Compare Kappas (pg 109)
            Assert.AreEqual(0.65, target.EstimatedValue1, 0.05);
            Assert.IsFalse(double.IsNaN(a.Kappa));

            Assert.AreEqual(0.64, target.EstimatedValue2, 0.05);
            Assert.IsFalse(double.IsNaN(b.Kappa));


            // Compare variances: 
            Assert.AreEqual(0.0007778, target.Variance1, 1e-7);
            Assert.IsFalse(double.IsNaN(a.Variance));

            Assert.AreEqual(0.0010233, target.Variance2, 1e-7);
            Assert.IsFalse(double.IsNaN(b.Variance));


            Assert.AreEqual(0.3087, target.Statistic, 1e-5);
            Assert.IsFalse(double.IsNaN(target.Statistic));

            Assert.IsFalse(target.Significant);
        }