Example: ANOVA

This example computes a one-way analysis of variance for data discussed by Searle (1971, Table 5.1, pages 165-179). The responses are plant weights for 6 plants of 3 different types - 3 normal, 2 off-types, and 1 aberrant. The 3 normal plant weights are 101, 105, and 94. The 2 off-type plant weights are 84 and 88. The 1 aberrant plant weight is 32. Note in the results that for the group with only one response, the standard deviation is undefined and is set to NaN (not a number).
using System;
using Imsl.Stat;
using Imsl.Math;


public class ANOVAEx1
{
	public static void  Main(String[] args)
	{
		double[][] y = {   new double[]{101, 105, 94}, 
						   new double[]{84, 88}, 
						   new double[]{32}};
		ANOVA anova = new ANOVA(y);
		double[] aov = anova.GetArray();
		
		Console.Out.WriteLine
			("Degrees Of Freedom For Model = " + aov[0]);
		Console.Out.WriteLine
			("Degrees Of Freedom For Error = " + aov[1]);
		Console.Out.WriteLine
			("Total (Corrected) Degrees Of Freedom = " + aov[2]);
		Console.Out.WriteLine("Sum Of Squares For Model = " + aov[3]);
		Console.Out.WriteLine("Sum Of Squares For Error = " + aov[4]);
		Console.Out.WriteLine
			("Total (Corrected) Sum Of Squares = " + aov[5]);
		Console.Out.WriteLine("Model Mean Square = " + aov[6]);
		Console.Out.WriteLine("Error Mean Square = " + aov[7]);
		Console.Out.WriteLine("F statistic = " + aov[8]);
		Console.Out.WriteLine("P value= " + aov[9]);
		Console.Out.WriteLine("R Squared (in percent) = " + aov[10]);
		Console.Out.WriteLine
			("Adjusted R Squared (in percent) = " + aov[11]);
		Console.Out.WriteLine
			("Model Error Standard deviation = " + aov[12]);
		Console.Out.WriteLine("Mean Of Y = " + aov[13]);
		Console.Out.WriteLine
			("Coefficient Of Variation (in percent) = " + aov[14]);
		Console.Out.WriteLine
			("Total number of missing values = " + anova.TotalMissing);
		
		PrintMatrixFormat pmf = new PrintMatrixFormat();
		String[] labels = 
			new String[]{"Group", "N", "Mean", "Std. Deviation"};
		pmf.SetColumnLabels(labels);
		pmf.NumberFormat = null;
		new PrintMatrix("Group Information").Print(pmf, 
			(Object)anova.GetGroupInformation());
	}
}

Output

Degrees Of Freedom For Model = 2
Degrees Of Freedom For Error = 3
Total (Corrected) Degrees Of Freedom = 5
Sum Of Squares For Model = 3480
Sum Of Squares For Error = 70
Total (Corrected) Sum Of Squares = 3550
Model Mean Square = 1740
Error Mean Square = 23.3333333333333
F statistic = 74.5714285714286
P value= 0.00276888252534978
R Squared (in percent) = 98.0281690140845
Adjusted R Squared (in percent) = 96.7136150234742
Model Error Standard deviation = 4.83045891539648
Mean Of Y = 84
Coefficient Of Variation (in percent) = 5.75054632785295
Total number of missing values = 0
          Group Information
   Group  N  Mean   Std. Deviation   
0    0    3  100   5.56776436283002  
1    1    2   86   2.82842712474619  
2    2    1   32   NaN               


Link to C# source.