Hier ist mein Code:Standardabweichung in numpy
import numpy as np
print(np.std(np.array([0,1])))
es produziert 0.5
Ich bin zuversichtlich, dass dies falsch ist. Was mache ich falsch?
Hier ist mein Code:Standardabweichung in numpy
import numpy as np
print(np.std(np.array([0,1])))
es produziert 0.5
Ich bin zuversichtlich, dass dies falsch ist. Was mache ich falsch?
Standardmäßig gibt numpy.std
die Standardabweichung der Population zurück. In diesem Fall wird np.std([0,1])
korrekt als 0.5
gemeldet. Wenn Sie die Proben-Standardabweichung suchen, können Sie einen optionalen ddof
Parameter std()
liefern:
>>> np.std([0, 1], ddof=1)
0.70710678118654757
ddof
modifiziert den Teiler der Summe der Quadrate der Proben-minus-Mittelwert. Der Divisor ist N - ddof
, wobei der Standardwert ddof
0
ist, wie Sie aus Ihrem Ergebnis sehen können.
Ich denke, Standard von numpy ist "Bevölkerung" Standardabweichung, die N ist und Stichprobe Standardabweichung ist N-1. – user1700890
Ich gebe zu, dass meine Terminologie rückwärts sein kann. –
Behoben. Danke für die Korrektur. –
Das ist richtig. 'std = RMS (Daten - Mittelwert)'. In diesem Fall: 'std = sqrt ((0.5^2 + 0.5^2)/2) = sqrt (0.25) = 0.5' –
@MadPhysicist, danke, ich bin gerade ein wenig mit Stichprobe und Bevölkerung std verwechselt worden. Google-Tabelle verwendet Beispiel-Standardabweichung unter stdev. – user1700890
Setzen Sie den optionalen 'ddof' Parameter auf' 1', um die Population zu erhalten: http://docs.scipy.org/doc/numpy/reference/generated/numpy.std.html –