Algoritma keur ngitung varian

Ti Wikipédia, énsiklopédi bébas

Rumus pikeun ngitung populasi varian:

\mathit{Variance} = \frac {n\sum_{i=1}^{n} x_i^2 - (\sum_{i=1}^{n} x_i)^2}{n^2}

Rumus pikeun ngitung unbiased estimasi populasi varian tina sampel "terhingga" nyaéta:

\mathit{Variance} = \frac {n\sum_{i=1}^{n} x_i^2 - (\sum_{i=1}^{n} x_i)^2}{n(n-1)}

Cara ngitung bakal leuwih gampang kaharti dina tabel di handap ieu dimana nilai mean = 8.

i xi xi-mean (xi-mean)2
(index) (datum) (deviation) (squared deviation)
1 5 -3 9
2 7 -1 1
3 8 0 0
4 10 2 4
5 10 2 4
n=5 sum=40 0 18


  • mean = 40/5 = 8
  • variance = (5*338 - 402)/(5 * 4) = 4.5
  • standard deviation = \sqrt{\mathit{Variance}}= 2.12

Catetan: Ngitung varian sacara lengkep:

338 = [52 + 72 + 82 + 102 + 102]
40 = [5 + 7 + 8 + 10 + 10]


[édit] Algoritma

Algoritma sederhana keur ngitung varian saperti di handap ieu:

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 = 0 to n
 sum += data[i];
 sum_sqr += ( data[i] * data[i] );
end for

variance = ((n * sum_sqr) - (sum * sum))/(n*(n-1));

[édit] Algoritma

Algoritma sejen keur jumlah angka anu loba

double avg;
double var;
long n = data.length; // number of elements

for i = 0 to n
 avg = (avg*i + data[i]) / (i + 1);
 if (i > 0) var += (var * (i - 1) + (x - avg)*(x - avg)) / i;
end for

return var; // resulting variance