This practical, succinct article shows you how to calculate the variance and standard deviation of a given array of numbers. You will see the code in vanilla Javascript and TypeScript.
Javascript
// Calculate the average of all the numbers
const calculateMean = (values) => {
const mean = (values.reduce((sum, current) => sum + current)) / values.length;
return mean;
};
// Calculate variance
const calculateVariance = (values) => {
const average = calculateMean(values);
const squareDiffs = values.map((value) => {
const diff = value - average;
return diff * diff;
});
const variance = calculateMean(squareDiffs);
return variance;
};
// Calculate stand deviation
const calculateSD = (variance) => {
return Math.sqrt(variance);
};
// Test our function
const input = [1, 4, 7, 9, 32, 48, 54, 66, 84, 91, 100, 121];
const variance = calculateVariance(input);
const sd = calculateSD(variance);
console.log(`Variance: ${variance}`);
console.log(`Standard Deviation: ${sd}`);
Output:
Variance: 1583.409722222222
Standard Deviation: 39.79208114967376
TypeScript
If you use TypeScript as your development language, then you might want to examine this piece of code:
// Calculate the average of all the numbers
const calculateMean = (values: number[]): number => {
const mean = (values.reduce((sum, current) => sum + current)) / values.length;
return mean;
}
// Calculate variance
const calculateVariance= (values: number[]): number => {
const average = calculateMean(values);
const squareDiffs = values.map((value: number): number => {
const diff = value - average;
return diff * diff;
})
const variance = calculateMean(squareDiffs);
return variance;
}
// Calculate stand deviation
const calculateSD = (variance: number): number => {
return Math.sqrt(variance);
}
// Test it
const input = [1, 4, 7, 9, 32, 48, 54, 66, 84, 91, 100, 121];
const variance = calculateVariance(input);
const sd = calculateSD(variance);
console.log(`Variance: ${variance}`);
console.log(`Standard Deviation: ${sd}`);
It will produce the same results as the snippet of the Javascript code in the previous section.