標準差(或方差),分為 總體標準差(方差)和 樣本標準差(方差)。
前者分母為n,後者為n-1。後者是無偏的。
pandas裡的 .std() 和 .var() 都是算的無偏的。
而numpy是有偏的。
那麼在pandas裡想算有偏的(即總體標準差或總體方差),怎麼做?
參考這裡。
下面的內容複製自上述連結:
Pandas 0.8.1:
import pandas as pd
a=pd.Series([0, 1, 3, 6])
a.mean(), a.std(), a.var()
a.values.mean(), a.values.std(), a.values.var()
I would expect both last lines to return the same result. However, the former returned:
(2.5, 2.6457513110645907, 7.0)
and the latter:
(2.5, 2.2912878474779199, 5.25)
上面是無偏,下面是有偏。