numpy.varやnumpy.stdの自由度

numpy.varnumpy.stdは、それぞれ配列で与えたデータの分散、標準偏差を返す。

numpy.var(a, axis=None, dtype=None, out=None, ddof=0, keepdims=<no value>)

numpy.std(a, axis=None, dtype=None, out=None, ddof=0, keepdims=False)

この関数の引数にddofというのがあり、numpyのドキュメントには以下のように書かれている。

ddof : int, optional
Means Delta Degrees of Freedom. The divisor used in calculations is N – ddof, where N represents the number of elements. By default ddof is zero.

つまり、分散の計算の際にN−ddofで割っていて、デフォルトではddof=0なので、母分散及び母集団の標準偏差として計算される。

ddof=1とすると不偏分散およびその平方根として計算される。

 

ただし正確には、不偏分散の平方根は母集団の標準偏差の不偏推定量ではないらしい。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です