type - pandas python
Diferentes std en pandas vs numpy (1)
La desviación estándar difiere entre pandas y números. ¿Por qué y cuál es el correcto? (La diferencia relativa es de 3.5%, que no debería venir del redondeo, esto es alto en mi opinión).
Ejemplo
import numpy as np
import pandas as pd
from StringIO import StringIO
a=''''''0.057411
0.024367
0.021247
-0.001809
-0.010874
-0.035845
0.001663
0.043282
0.004433
-0.007242
0.029294
0.023699
0.049654
0.034422
-0.005380''''''
df = pd.read_csv(StringIO(a.strip()), delim_whitespace=True, header=None)
df.std()==np.std(df) # False
df.std() # 0.025801
np.std(df) # 0.024926
(0.024926 - 0.025801) / 0.024926 # 3.5% relative difference
Yo uso estas versiones:
pandas: ''0.14.0'' numpy: ''1.8.1''
En pocas palabras, ninguno es "incorrecto". Pandas usa el estimador imparcial ( N-1
en el denominador), mientras que Numpy por defecto no lo hace.
Para hacer que se comporten igual, pase ddof=1
a numpy.std()
.
Para mayor discusión, vea