public void KappaTest4()
{
// Example from Congalton
int[,] table = // Analyst #1 (page 108)
{
{ 65, 4, 22, 24 },
{ 6, 81, 5, 8 },
{ 0, 11, 85, 19 },
{ 4, 7, 3, 90 },
};
GeneralConfusionMatrix target = new GeneralConfusionMatrix(table);
Assert.AreEqual(target.RowTotals[0], 115);
Assert.AreEqual(target.RowTotals[1], 100);
Assert.AreEqual(target.RowTotals[2], 115);
Assert.AreEqual(target.RowTotals[3], 104);
Assert.AreEqual(target.ColumnTotals[0], 75);
Assert.AreEqual(target.ColumnTotals[1], 103);
Assert.AreEqual(target.ColumnTotals[2], 115);
Assert.AreEqual(target.ColumnTotals[3], 141);
Assert.AreEqual(0.65, target.Kappa, 1e-2);
Assert.IsFalse(Double.IsNaN(target.Kappa));
double var = target.Variance;
double var0 = target.VarianceUnderNull;
double varD = Accord.Statistics.Testing.KappaTest.DeltaMethodKappaVariance(target);
Assert.AreEqual(0.0007778, varD, 1e-7);
Assert.AreEqual(0.00076995084473426684, var, 1e-10);
Assert.AreEqual(0.00074886435981842887, var0, 1e-10);
Assert.IsFalse(double.IsNaN(var));
Assert.IsFalse(double.IsNaN(var0));
Assert.IsFalse(double.IsNaN(varD));
}