In this example, the same model and data is fit as in the example 1, but additional information is printed.
import java.text.*; import com.imsl.stat.*; import com.imsl.math.PrintMatrix; import com.imsl.math.PrintMatrixFormat; public class ANOVAFactorialEx2 { public static void main(String args[]) { int nSubscripts = 3, i; int[] nLevels = {3, 2, 10}; double[] y = { 73.0, 102.0, 118.0, 104.0, 81.0, 107.0, 100.0, 87.0, 117.0, 111.0, 90.0, 76.0, 90.0, 64.0, 86.0, 51.0, 72.0, 90.0, 95.0, 78.0, 98.0, 74.0, 56.0, 111.0, 95.0, 88.0, 82.0, 77.0, 86.0, 92.0, 107.0, 95.0, 97.0, 80.0, 98.0, 74.0, 74.0, 67.0, 89.0, 58.0, 94.0, 79.0, 96.0, 98.0, 102.0, 102.0, 108.0, 91.0, 120.0, 105.0, 49.0, 82.0, 73.0, 86.0, 81.0, 97.0, 106.0, 70.0, 61.0, 82.0 }; String[] labels = { "degrees of freedom for the model ", "degrees of freedom for error ", "total (corrected) degrees of freedom ", "sum of squares for the model ", "sum of squares for error ", "total (corrected) sum of squares ", "model mean square ", "error mean square ", "F-statistic ", "p-value ", "R-squared (in percent) ", "Adjusted R-squared (in percent) ", "est. standard deviation of the model error ", "overall mean of y ", "coefficient of variation (in percent) " }; String[] rlabels = {"A", "B", "A*B"}; String[] mlabels = { "grand mean ", "A1 ", "A2 ", "A3 ", "B1 ", "B2 ", "A1*B1 ", "A1*B2 ", "A2*B1 ", "A2*B2 ", "A3*B1 ", "A3*B2 " }; NumberFormat nf = NumberFormat.getInstance(); ANOVAFactorial af = new ANOVAFactorial(nSubscripts, nLevels, y); nf.setMinimumFractionDigits(6); System.out.println("P-value = " + nf.format(af.compute())); nf.setMaximumFractionDigits(4); System.out.println("\n * * * Analysis of Variance * * *"); double[] anova = af.getANOVATable(); for (i = 0; i < anova.length; i++) { System.out.println(labels[i] + " " + nf.format(anova[i])); } System.out.println("\n * * * Variation Due to the " + "Model * * *"); System.out.println("Source\tDF\tSum of Squares\tMean Square" + "\tProb. of Larger F"); double[][] te = af.getTestEffects(); for (i = 0; i < te.length; i++) { System.out.println(rlabels[i] + "\t" + nf.format(te[i][0]) + "\t" + nf.format(te[i][1]) + "\t" + nf.format(te[i][2]) + "\t\t" + nf.format(te[i][3])); } System.out.println("\n* * * Subgroup Means * * *"); double[] means = af.getMeans(); for (i = 0; i < means.length; i++) { System.out.println(mlabels[i] + " " + nf.format(means[i])); } } }
P-value = 0.002299 * * * Analysis of Variance * * * degrees of freedom for the model 5.0000 degrees of freedom for error 54.0000 total (corrected) degrees of freedom 59.0000 sum of squares for the model 4,612.9333 sum of squares for error 11,586.0000 total (corrected) sum of squares 16,198.9333 model mean square 922.5867 error mean square 214.5556 F-statistic 4.3000 p-value 0.0023 R-squared (in percent) 28.4768 Adjusted R-squared (in percent) 21.8543 est. standard deviation of the model error 14.6477 overall mean of y 87.8667 coefficient of variation (in percent) 16.6704 * * * Variation Due to the Model * * * Source DF Sum of Squares Mean Square Prob. of Larger F A 2.0000 266.5333 0.6211 0.5411 B 1.0000 3,168.2667 14.7666 0.0003 A*B 2.0000 1,178.1333 2.7455 0.0732 * * * Subgroup Means * * * grand mean 87.8667 A1 89.6000 A2 84.9000 A3 89.1000 B1 95.1333 B2 80.6000 A1*B1 100.0000 A1*B2 79.2000 A2*B1 85.9000 A2*B2 83.9000 A3*B1 99.5000 A3*B2 78.7000Link to Java source.