2017-07-04 25 views
0

以下のようなデータフレームがあります。クローズ列を計算します:揮発性、exaple window = 2、つまり2行のボラティリティ。 Ipython:pd.rolling_std関数の結果は標準偏差計算と異なります

Date  close 
2010-06-09 3160.0 
2010-06-10 3180.0 
2010-06-11 3215.0 
2010-06-14 3255.0 

Iの関数を使用する次のコードを使用する:

stdDeviation = pd.rolling_std(df['Close'],window=2) 
stdDeviation.head(4) 

結果は:

 Date 
2010-06-09   NaN 
2010-06-10 14.142136 
2010-06-11 24.748737 
2010-06-14 28.284271 
Name: Close, dtype: float64 

が、計算によって標準偏差を計算https://en.wikipedia.org/wiki/Standard_deviation

を私は最初の2つの数字を見つけました:3160、3180、これらのtwの標準偏差o番号は10であり、function.pd.rolling_stdで計算された14.142136とは異なります。

roll_std関数について詳しく教えてください。この関数のclacualtorは何ですか?なぜ違うのですか、私の質問には何か間違いがあります。ありがとう!

答えて

2

パンダは、デフォルトでサンプルの標準偏差を計算します。標本標準偏差の分母には補正係数があるので、nの代わりにn-1で二乗和を除算します。ここで1はサンプル平均に起因する失われた自由度です。同じ結果を得たい場合は、結果として10を与えるrolling_stdにddof=0を渡すことができます。

stdDeviation = pd.rolling_std(df['Close'], window=2, ddof=0) 
+0

ご意見ありがとうございます。私は株式の終値であるクローズのボラティリティを計算したい。私はどちらが正しいかを意味します:サンプルstdまたはstd? – tktktk0711

+0

返品のサンプルから計算しているので、標準偏差のサンプルを使用する必要があります。私が見たいくつかのページは、同意するようです:http://www.macroption.com/historical-volatility-calculation/ – ayhan

+0

あなたのコメントをありがとう、それは私に役立ちます。 – tktktk0711

関連する問題