|
Algorithms for calculating varianceIn statistics, a formula for calculating the variance of a population of size n is: A formula for calculating the unbiased estimation of the population variance from n finite samples is: The method of calculation may be more easily understood from the table below where the mean is 8.
Note: Details of the variance calculation: 338 = [52 + 72 + 82 + 102 + 102] AlgorithmTherefore a simple algorithm to calculate variance can be described by the following pseudocode: double sum; double sum_sqr; double variance; long n = data.length; // the number of elements in the data array (the actual syntax is language-specific) for i = 1 to n sum += data[i]; sum_sqr += ( data[i] * data[i] ); end for variance = ((n * sum_sqr) - (sum * sum))/(n*(n-1)); AlgorithmAnother algorithm which avoids large numbers in sum_sqr while summing up double avg = 0; double var = 0; long n = data.length; // number of elements for i = 1 to n avg = (avg*i + data[i]) / (i + 1); var = (var * (i - 1) + (data[i] - avg)*(data[i] - avg)) / i; end for return var; // resulting variance The above algorithm does not seem to be correct. The resulting variance does not equal either one of the variances whose formulas are given at the top of the page.
Categories: Statistics
|
|
|