Serge's World

Blogging about software development, astronomy, genealogy and more.

Maths Algorithms in C#: Variance

I talked a bit about variance in the post on standard deviation, so this is a little bit a rehash from what I said there.

The variance is obtained by calculating the data set consisting of each data point in the original data set subtracting the arithmetic mean for the data set, and then squaring it.

We then take the arithmetic mean of the deviations, which gives us the variance for our data set.

public static double StandardDeviation(List<double> values)
{
	double standardDeviation, mean, deviationMean;
	List<double> deviation = new List<double>();
	
	mean = ArithmeticMean(values);

	foreach(double value in values)
	{
		deviation.Add(Math.Pow((value - mean), 2));
	}

	deviationMean = ArithmeticMean(deviation);
	standardDeviation = Math.Sqrt(deviationMean);

	return standardDeviation;
}
		
public static double Variance(List<double> values)
{
	double standardDeviation, variance;

	standardDeviation = StandardDeviation(values);
	variance = Math.Pow(standardDeviation, 2);

	return variance;
}

The full sourcecode for the MathLib library is available at https://github.com/sjmeunier/mathlib

Originally posted on my old blog, Smoky Cogs, on 23 Oct 2009

Updated 5 Oct 2016: Updated code snippet after refactoring MathLib library

Tag Cloud

Algorithms (3) Android (10) Astronomy (25) Audio (1) Audiobooks (1) Barcodes (9) C# (69) Css (1) Deep sky (6) Esoteric languages (3) Family (3) Fractals (10) Gaming (1) Genealogy (14) General (2) Geodesy (3) Google (1) Graphics (3) Hubble (2) Humour (1) Image processing (23) Java (8) Javascript (5) jQuery (3) Jupiter (3) Maths (22) Moon (5) Music (4) Pets (5) Programming (88) Saturn (1) Science (1) Spitzer (4) Sun (4) Tutorials (68) Unity (3) Web (9) Whisky (13) Windows (1) Xamarin (2)