Accord.Statistics.Testing.BhapkarTest.BhapkarTest C# (CSharp) Метод

BhapkarTest() публичный Метод

Creates a new Bhapkar test.
public BhapkarTest ( GeneralConfusionMatrix matrix ) : System
matrix Accord.Statistics.Analysis.GeneralConfusionMatrix The contingency table to test.
Результат System
        public BhapkarTest(GeneralConfusionMatrix matrix)
        {
            int classes = matrix.Classes;
            int samples = matrix.Samples;

            int df = classes - 1;

            int[] rowMarginals = matrix.RowTotals;
            int[] colMarginals = matrix.ColumnTotals;

            d = new double[df];
            for (int i = 0; i < d.Length; i++)
                d[i] = rowMarginals[i] - colMarginals[i];

            S = new double[df, df];

            for (int i = 0; i < df; i++)
            {
                for (int j = 0; j < df; j++)
                {
                    if (i == j)
                    {
                        double u = (rowMarginals[i] - colMarginals[i]);
                        double pii = matrix.Matrix[i, i];

                        S[i, i] = rowMarginals[i] + colMarginals[i] - 2.0 * pii - u * u / (double)samples;
                    }
                    else
                    {
                        double pij = matrix.Matrix[i, j];
                        double pji = matrix.Matrix[j, i];

                        S[i, j] = -(pij + pji) - (rowMarginals[i] - colMarginals[i]) * (rowMarginals[j] - colMarginals[j]) / (double)samples;
                    }
                }
            }

            invS = S.PseudoInverse();

            double chiSquare = d.DotAndDot(invS, d);
            
            Compute(chiSquare, df);
        }
BhapkarTest