私はアルゴリズムを書いて、毎日のリターンの分布の尖度を計算しています。尖度の計算を Excel の計算と一致させようとしています。Excel の計算では、この Web ページの上部にある式を使用していると思われます: http://www.macroption.com/kurtosis-excel-kurt/
その式をエミュレートするために使用した私のコードは次のとおりです(戻り値は、一連の毎日の戻り値で構成されるnumpy配列です):
def kurtosis(returns):
n = len(returns)
avg = np.average(returns)
std = np.std(returns)
coefficient = 1.0 * n * (n+1) / ((n-1) * (n-2) * (n-3) * std**4.0)
term = (3 * (n-1)**2.0) / ((n-2) * (n-3))
summation = 0
for x in returns:
summation += ( (x - avg) ) ** 4.0
kurt = coefficient * summation - term
return kurt
どうやら、Excel と私のコードで使用される数式に違いがあるようです... Excel では尖度が 1.94 ですが、私のコードでは 2.81 の値が得られます。
2 つの値が異なる理由について、誰かが手がかりを持っていますか?