Oto mój kod:Odchylenie standardowe w numpy
import numpy as np
print(np.std(np.array([0,1])))
produkuje 0.5
Jestem przekonany, że jest to błędne. Co ja robię źle?
Oto mój kod:Odchylenie standardowe w numpy
import numpy as np
print(np.std(np.array([0,1])))
produkuje 0.5
Jestem przekonany, że jest to błędne. Co ja robię źle?
Domyślnie numpy.std
zwraca odchylenie standardowe populacji, w którym to przypadku np.std([0,1])
jest prawidłowo zgłaszane jako 0.5
. Jeśli szukasz odchylenie standardowe próbki, można podać parametr opcjonalny ddof
do std()
:
>>> np.std([0, 1], ddof=1)
0.70710678118654757
ddof
modyfikuje dzielnik sumy kwadratów próbek minus wartość średnią. Dzielnik to N - ddof
, gdzie domyślny ddof
jest 0
, jak widać na podstawie wyniku.
Myślę, że domyślną wartością numpy jest odchylenie standardowe "populacja", którym jest N, a standardowe odchylenie standardowe to N-1. – user1700890
Przyznaję, że moja terminologia może być odwrotna. –
Naprawiono. Dziękuję za poprawienie mnie. –
To się zgadza. 'std = RMS (dane - średnie)'. W tym przypadku: 'std = sqrt ((0,5^2 + 0,5^2)/2) = sqrt (0,25) = 0,5' –
@MadPhysicist, dziękuję, po prostu trochę mylić ze std próbki i populacji. Arkusz kalkulacyjny Google używa przykładowego standardowego odchylenia pod adresem stdev. – user1700890
Ustaw opcjonalny parametr 'ddof' na' 1', aby uzyskać std popd: http://docs.scipy.org/doc/numpy/reference/generated/numpy.std.html –