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
.lengthermitteln. -
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.lengthgeschrieben werden. In diesem Fall istavejedoch nicht das, was es wirklich bedeutet. (tatsächlich enthält das endgültigeaveden Mittelwert multipliziert mitn). Es ist also besser, den Variablennamen vonavein z. B.n_avezu ä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
varnicht 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 54angezeigt werden.