In this example, the same model and data is fit as in the example 1, but additional information is printed.
using System; using Imsl.Stat; public class ANOVAFactorialEx2 { public static void Main(String[] args) { int nSubscripts = 3, i; int[] nLevels = new int[]{3, 2, 10}; double[] y = new double[]{ 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 = new String[]{"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 = new String[]{"A", "B", "A*B"}; String[] mlabels = new String[]{"grand mean ", "A1 ", "A2 ", "A3 ", "B1 ", "B2 ", "A1*B1 ", "A1*B2 ", "A2*B1 ", "A2*B2 ", "A3*B1 ", "A3*B2 "}; ANOVAFactorial af = new ANOVAFactorial(nSubscripts, nLevels, y); Console.Out.WriteLine ("P-value = " + af.Compute().ToString("0.000000")); Console.Out.WriteLine ("\n * * * Analysis of Variance * * *"); double[] anova = af.GetANOVATable(); for (i = 0; i < anova.Length; i++) { Console.Out.WriteLine (labels[i] + " " + anova[i].ToString("0.0000")); } Console.Out.WriteLine ("\n * * * Variation Due to the " + "Model * * *"); Console.Out.WriteLine ("Source\tDF\tSum of Squares\tMean Square" + "\tProb. of Larger F"); double[,] te = af.GetTestEffects(); for (i = 0; i < te.GetLength(0); i++) { Console.Out.WriteLine( rlabels[i] + "\t" + te[i,0].ToString("0.0000") + "\t" + te[i,1].ToString("0.0000") + "\t" + te[i,2].ToString("0.0000") + "\t\t" + te[i,3].ToString("0.0000")); } Console.Out.WriteLine("\n* * * Subgroup Means * * *"); double[] means = af.GetMeans(); for (i = 0; i < means.Length; i++) { Console.Out.WriteLine (mlabels[i] + " " + means[i].ToString("0.0000")); } } }
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 4612.9333 sum of squares for error 11586.0000 total (corrected) sum of squares 16198.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 3168.2667 14.7666 0.0003 A*B 2.0000 1178.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 C# source.