Wie kann ich berechnen Sie die Varianz einer Liste in python?
Wenn ich eine Liste wie diese:
results=[-14.82381293, -0.29423447, -13.56067979, -1.6288903, -0.31632439,
0.53459687, -1.34069996, -1.61042692, -4.03220519, -0.24332097]
Möchte ich die Berechnung der Varianz dieser Liste in Python was ist der Durchschnitt der quadrierten Differenzen vom Mittelwert.
Wie kann ich dies angehen? Der Zugriff auf die Elemente der Liste zu tun, die Berechnungen ist verwirrend für mich immer der quadrierten Differenzen.
- Sie tun genau das. Was ist das problem?
- der Zugriff auf die Elemente der Liste, um die quadrierten Differenzen
InformationsquelleAutor minks | 2016-02-23
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie numpy ' s built-in-Funktion
var
:Diese erhalten Sie
28.822364260579157
Wenn aus irgendeinem Grund Sie nicht verwenden können
numpy
und/oder Sie nicht möchten, verwenden Sie eine integrierte Funktion für Sie, können Sie auch berechnen Sie "von hand", das beispielsweise mit einer list comprehension:dem Sie das identische Ergebnis.
Wenn Sie daran interessiert sind, die Standardabweichung, die Sie verwenden können,numpy.std:
@Serge Ballesta sehr gut erklärt der Unterschied zwischen Varianz
n
undn-1
. In numpy können Sie ganz einfach setzen Sie diesen parameter mit der optionddof
; Standardwert:0
, so dass für dien-1
Fall, Sie können einfach tun:Den "von hand" - Lösung ist in @Serge Ballesta ' s Antwort.
Beide Ansätze Ausbeute
32.024849178421285
.Können Sie die parameter auch für
std
:Gut, es gibt zwei Möglichkeiten für die Definition der Varianz. Sie haben die Varianz n, die Sie verwenden, wenn Sie einen vollständigen Satz, und die Varianz n-1,, die Sie verwenden, wenn Sie eine Probe.
Den Unterschied zwischen den 2 ist, ob der Wert
m = sum(xi) /n
ist der wahre Durchschnitt ist, oder ob es nur eine Annäherung an das, was der Durchschnitt sein sollte.Beispiel1 : Sie wollen wissen, die Durchschnittliche Körpergröße der Schülerinnen und Schüler in einer Klasse und Ihrer Varianz : ok, der Wert
m = sum(xi) /n
ist der wahre Durchschnitt, und die Formeln von Cleb sind ok (Varianz n).Beispiel2 : Sie möchten wissen, der Durchschnittliche Stunde, zu der ein bus fährt an der Haltestelle und seine Varianz. Sie beachten die Stunden für einen Monat, und Sie erhalten 30 Werte. Hier wird der Wert
m = sum(xi) /n
ist nur eine Näherung der realen Durchschnitt, und dass die approximation wird genauer mit mehr Werten. In diesem Fall wird die beste Näherung für die tatsächliche Varianz ist die Varianz n-1,Ok, es hat nichts zu tun mit Python, aber es hat einen Einfluss auf die statistische Analyse, und die Frage tagged Statistik und Varianz
Hinweis: normalerweise, statistische Bibliotheken, wie numpy verwenden Sie die Varianz n für das, was Sie nennen
var
odervariance
, und die Varianz n-1, für die Funktion, die die Standardabweichung.Numpy ist in der Tat die elegante und schnelle Weg, es zu tun.
Ich denke, die eigentliche Frage war etwa, wie auf die einzelnen Elemente einer Liste zu tun ist eine solche Berechnung selbst, so wird im folgenden ein Beispiel:
gibt Sie:
Ab
Python 3.4
, die standard-library kommt mit demVarianz
Funktion (stichprobenvarianz oder Varianz n-1,) als Teil derStatistik
Modul:Den population Varianz (oder Varianz n) erhalten werden können über die
pvariance
Funktion:Beachten Sie auch, dass, wenn Sie bereits wissen, die meine auf Ihrer Liste, die
variance
undpvariance
Funktionen haben als zweites argument (bzw.xbar
undmu
), um Ersatz-recomputing der Mittelwert der Stichprobe (das ist Teil der Varianz-Berechnung).