Wenn ich eine solche Liste habe:
%Vor%Ich möchte die Varianz dieser Liste in Python berechnen, die der Durchschnitt der quadrierten Differenzen vom Mittelwert ist.
Wie kann ich darüber gehen? Der Zugriff auf die Elemente in der Liste, um die Berechnungen auszuführen, verwirrt mich, um die quadratischen Unterschiede zu erhalten.
Sie können die integrierte Funktion von numpy verwenden var
:
Damit erhalten Sie 28.822364260579157
Wenn - aus welchen Gründen auch immer - Sie numpy
nicht verwenden können und / oder Sie keine integrierte Funktion dafür verwenden möchten, können Sie sie auch "von Hand" berechnen, indem Sie z. ein Listenverständnis :
gibt Ihnen das identische Ergebnis.
BEARBEITEN
@Serge Ballesta erklärte sehr gut den Unterschied zwischen der Varianz n
und n-1
. In numpy können Sie diesen Parameter einfach mit der Option ddof
; Der Standardwert ist 0
. Für den Fall n-1
können Sie einfach Folgendes tun:
Die Lösung "von Hand" wäre:
%Vor% Beide Ansätze geben Ihnen 32.024849178421285
.
Nun, es gibt zwei Möglichkeiten, die Varianz zu definieren. Sie haben die Varianz n , die Sie verwenden, wenn Sie eine vollständige Menge haben, und die Varianz n-1 , die Sie verwenden, wenn Sie eine Stichprobe haben.
Der Unterschied zwischen den 2 ist, ob der Wert m = sum(xi) / n
der reale Durchschnitt ist oder ob es nur eine Annäherung an den Mittelwert ist.
Beispiel 1: Sie möchten die durchschnittliche Höhe der Schüler in einer Klasse und ihre Varianz kennen: ok, der Wert m = sum(xi) / n
ist der reale Durchschnitt, und die Formeln von Cleb sind in Ordnung (Varianz n ).
Beispiel 2: Sie möchten die durchschnittliche Stunde, in der ein Bus an der Haltestelle fährt, und dessen Abweichung ermitteln. Sie notieren die Stunde für einen Monat und erhalten 30 Werte. Hier ist der Wert m = sum(xi) / n
nur eine Annäherung des realen Durchschnitts, und diese Annäherung wird mit mehr Werten genauer sein. In diesem Fall ist die beste Näherung für die tatsächliche Varianz die Varianz n-1
Ok, es hat nichts mit Python zu tun, aber es hat Auswirkungen auf die statistische Analyse, und die Frage wird mit > Statistiken und variance
Hinweis: Normalerweise verwenden statistische Bibliotheken wie numpy die Varianz n für das, was sie var
oder variance
nennen, und die Varianz n-1 für die Funktion das gibt die Standardabweichung.
Numpy ist in der Tat der eleganteste und schnellste Weg, es zu tun.
Ich denke, die eigentliche Frage war, wie man auf die einzelnen Elemente einer Liste zugreifen kann, um eine solche Berechnung selbst durchzuführen, also unter einem Beispiel:
%Vor%gibt Ihnen:
%Vor%Tags und Links python list statistics variance