Mathematische Grundlage
Für $n$ Daten $x_1$, $x_2$, …, $x_n$ schreibt man den Mittelwert als $\bar{x}$, wobei \[ \bar{x} = \frac{1}{n}\sum_{i = 1}^n x_i \; . \]
Die Varianz $\sigma^2$ wird wie folgt berechnet. \[ \begin{align*} \sigma^2 & = \frac{1}{n} \sum_{i=1}^n \left(x_i - \bar{x} \right)^2 \\ & = \frac{1}{n} \sum_{i=1}^n x_i^2 - \left(\frac{1}{n} \sum_{i=1}^n x_i\right)^2 \\ & = \overline{x^2} - \bar{x}^2 \end{align*} \]
Die Funktion zur Ermittlung des Mittelwerts
Dies wird ungefähr folgendermaßen aussehen:
function average(arr) {
let ave = 0; // Vergessen Sie nicht die Initialisierung
for (let i = 0; i < arr.length; i++) { // Seien Sie vorsichtig mit Schleifenbedingung
ave += arr[i];
}
// Das Folgende kann auch als return ave / arr.length
// zusammengeschrieben werden
ave /= arr.length;
return ave;
}
Anmerkungen
-
Vergessen Sie nicht, die Variablen zu initialisieren.
-
Sie können die Anzahl der Elemente in einem Array mit
.length
ermitteln. -
Beachten Sie, dass die Array-Indizes bei 0 beginnen.
-
Achten Sie genau auf die Schleifenbedingung in for-Schleife.
-
Die letzten beiden Zeilen können auch zusammen als
return ave / arr.length
geschrieben werden. In diesem Fall istave
jedoch nicht das, was es wirklich bedeutet. (tatsächlich enthält das endgültigeave
den Mittelwert multipliziert mitn
). Es ist also besser, den Variablennamen vonave
in z. B.n_ave
zu ändern (was $n$ mal den Mittelwert bedeutet).
Funktion zur Ermittlung der Varianz
Je nachdem, welche Formel Sie verwenden, variiert dies geringfügig, aber im Allgemeinen sieht es etwa so aus.
function variance(arr) {
let vari = 0; // Variablennamen var ist nicht erlaubt
let ave = average(arr);
for (let i = 0; i < arr.length; i++) {
vari += (arr[i] - ave) * (arr[i] - ave);
}
vari /= arr.length;
return vari;
}
Anmerkungen
-
Beachten Sie, dass Sie
var
nicht als Variablennamen verwenden können (es wird in JavaScript bereits verwendet) -
Der Quadrat kann geschrieben werden als
(arr[i] - ave) ** 2
.
Überprüfung der Zahlen
Um den Mittelwert und die Varianz anhand der in der Aufgabe angegebenen Daten darzustellen, kann man zum Beispiel wie folgt schreiben.
data = [ 71, 80, 89 ]
console.log(average(data), variance(data))
In diesem Fall sollten die Werte als
80 54
angezeigt werden.