### Example 2: Contingency Table

The following example, which illustrates the use of Kappa and McNemar tests, uses the same distance vision data as in Example 1.

```
import java.text.*;
import com.imsl.stat.*;
import com.imsl.math.*;

public class ContingencyTableEx2 {

public static void main(String args[]) {
double[][] table = {
{821.0, 112.0, 85.0, 35.0},
{116.0, 494.0, 145.0, 27.0},
{72.0, 151.0, 583.0, 87.0},
{43.0, 34.0, 106.0, 331.0}
};
String[] rlabels = {
"Gamma", "Tau B", "Tau C", "D-Row", "D-Column", "Correlation",
"Spearman", "GK tau rows", "GK tau cols.", "U - sym.",
"U - rows", "U - cols.", "Lambda-sym.", "Lambda-row", "Lambda-col.",
"l-star-rows", "l-star-col.", "Lin. trend", "Kruskal row",
"Kruskal col.", "Kappa", "McNemar", "McNemar df=1"
};
ContingencyTable ct = new ContingencyTable(table);
NumberFormat nf = NumberFormat.getInstance();
nf.setMinimumFractionDigits(4);

System.out.println("Pearson chi-squared statistic = "
+ nf.format(ct.getChiSquared()));
System.out.println("p-value for Pearson chi-squared = "
+ nf.format(ct.getP()));
System.out.println("degrees of freedom = " + ct.getDegreesOfFreedom());
System.out.println("G-squared statistic = "
+ nf.format(ct.getGSquared()));
System.out.println("p-value for G-squared = "
+ nf.format(ct.getGSquaredP()));
System.out.println("degrees of freedom = " + ct.getDegreesOfFreedom());

nf.setMaximumFractionDigits(2);
nf.setMinimumFractionDigits(2);
PrintMatrix pm = new PrintMatrix("\n* * * Table Values * * *");
PrintMatrixFormat pmf = new PrintMatrixFormat();
pmf.setNumberFormat(nf);
pm.print(pmf, table);

pm.setTitle("* * * Expected Values * * *");
pm.print(pmf, ct.getExpectedValues());

nf.setMinimumFractionDigits(4);
pmf.setNumberFormat(nf);
pm.setTitle("* * * Contributions to Chi-squared* * *");
pm.print(pmf, ct.getContributions());

nf.setMinimumFractionDigits(4);
System.out.println("* * * Chi-square Statistics * * *");
System.out.println("Exact mean = " + nf.format(ct.getExactMean()));
System.out.println("Exact standard deviation = "
+ nf.format(ct.getExactStdev()));
System.out.println("Phi = " + nf.format(ct.getPhi()));
System.out.println("P = " + nf.format(ct.getContingencyCoef()));
System.out.println("Cramer's V = " + nf.format(ct.getCramersV()));

System.out.println("\n             stat.      std. err.   "
+ "std. err.(Ho) t-value(Ho)  p-value");
double[][] stat = ct.getStatistics();
for (int i = 0; i < stat.length; i++) {
StringBuffer sb = new StringBuffer(rlabels[i]);

int len = sb.length();
for (int j = 0; j < (13 - len); j++) {
sb.append(' ');
}
sb.append(nf.format(stat[i][0]));

len = sb.length();
for (int j = 0; j < (24 - len); j++) {
sb.append(' ');
}
sb.append(nf.format(stat[i][1]));

len = sb.length();
for (int j = 0; j < (36 - len); j++) {
sb.append(' ');
}
sb.append(nf.format(stat[i][2]));

len = sb.length();
for (int j = 0; j < (50 - len); j++) {
sb.append(' ');
}
sb.append(nf.format(stat[i][3]));

len = sb.length();
for (int j = 0; j < (63 - len); j++) {
sb.append(' ');
}
sb.append(nf.format(stat[i][4]));

System.out.println(sb.toString());
}
}
}
```

#### Output

```Pearson chi-squared statistic = 3,304.3684
p-value for Pearson chi-squared = 0.0000
degrees of freedom = 9
G-squared statistic = 2,781.0190
p-value for G-squared = 0.0000
degrees of freedom = 9

* * * Table Values * * *
0       1       2       3
0  821.00  112.00   85.00   35.00
1  116.00  494.00  145.00   27.00
2   72.00  151.00  583.00   87.00
3   43.00   34.00  106.00  331.00

* * * Expected Values * * *
0        1       2       3        4
0    341.69  256.92  298.49  155.90  1,053.00
1    253.75  190.80  221.67  115.78    782.00
2    289.77  217.88  253.14  132.21    893.00
3    166.79  125.41  145.70   76.10    514.00
4  1,052.00  791.00  919.00  480.00  3,242.00

* * * Contributions to Chi-squared* * *
0          1         2          3           4
0    672.3626   81.7416  152.6959     93.7612  1,000.5613
1     74.7802  481.8351   26.5189     68.0768    651.2109
2    163.6605   20.5287  429.8489     15.4625    629.5006
3     91.8743   66.6263   10.8183    853.7768  1,023.0957
4  1,002.6776  650.7317  619.8819  1,031.0772  3,304.3684

* * * Chi-square Statistics * * *
Exact mean = 9.0028
Exact standard deviation = 4.2402
Phi = 1.0096
P = 0.7105
Cramer's V = 0.5829

stat.      std. err.   std. err.(Ho) t-value(Ho)  p-value
Gamma        0.7757     0.0123      0.0149        52.1897      0.0000
Tau B        0.6429     0.0122      0.0123        52.1897      0.0000
Tau C        0.6293     0.0121      ?             52.1897      0.0000
D-Row        0.6418     0.0122      0.0123        52.1897      0.0000
D-Column     0.6439     0.0122      0.0123        52.1897      0.0000
Correlation  0.6926     0.0128      0.0172        40.2669      0.0000
Spearman     0.6939     0.0127      0.0127        54.6614      0.0000
GK tau rows  0.3420     0.0123      ?             ?            ?
GK tau cols. 0.3430     0.0122      ?             ?            ?
U - sym.     0.3171     0.0110      ?             ?            ?
U - rows     0.3178     0.0110      ?             ?            ?
U - cols.    0.3164     0.0110      ?             ?            ?
Lambda-sym.  0.5373     0.0124      ?             ?            ?
Lambda-row   0.5374     0.0126      ?             ?            ?
Lambda-col.  0.5372     0.0126      ?             ?            ?
l-star-rows  0.5506     0.0136      ?             ?            ?
l-star-col.  0.5636     0.0127      ?             ?            ?
Lin. trend   ?          ?           ?             ?            ?
Kruskal row  1,561.4859 3.0000      ?             ?            0.0000
Kruskal col. 1,563.0303 3.0000      ?             ?            0.0000
Kappa        0.5744     0.0111      0.0106        54.3583      0.0000
McNemar      4.7625     6.0000      ?             ?            0.5746
McNemar df=1 0.9487     1.0000      ?             0.3459       0.3301
```