La desviación estándar es la raíz cuadrada de la varianza. La varianza de una variable aleatoria X
se define como
Por tanto, un estimador de la varianza sería
donde denota la media muestral. Para la selección aleatoria , se puede demostrar que este estimador no converge a la varianza real, sino a
Si selecciona muestras al azar y estima la media y la varianza de la muestra, tendrá que utilizar un estimador corregido (insesgado)
que convergerá a . El término de corrección también se denomina corrección de Bessel.
Ahora, de forma predeterminada, MATLABs std
calcula el estimador insesgado con el término de corrección n-1
. Sin embargo, NumPy (como explicó @ajcr) calcula el estimador sesgado sin término de corrección por defecto. El parámetro ddof
permite establecer cualquier término de corrección n-ddof
. Al establecerlo en 1, obtiene el mismo resultado que en MATLAB.
De manera similar, MATLAB permite agregar un segundo parámetro w
, que especifica el "esquema de pesaje". El valor predeterminado,, w=0
da como resultado el término de corrección n-1
(estimador insesgado), mientras que para w=1
, solo se utiliza n como término de corrección (estimador sesgado).
std([1 3 4 6],1)
es equivalente al valor predeterminado de NumPynp.std([1,3,4,6])
. Todo esto se explica con bastante claridad en la documentación de Matlab y NumPy, por lo que recomiendo encarecidamente que el OP se asegure de leerlos en el futuro.