Serge's World

Blogging about software development, astronomy, genealogy and more.

Maths Algorithms in C#: Standard Deviation

Standard deviation is a very common calculation in statistical analysis, and is formally defined as the square root of the variance of the data set.

The variance of a data set is how much the data varies from the mean.

So then, in simple terms, what we do is for each data point in the data set, we take the value at that point, subtracting the mean from it, and then squaring it.

Once we have the data set of deviations, we can then find the arithmetic mean of this, which is the variance.

The final step here is to find the squareroot of this which gives us the standard deviation.

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;
}

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)