2017-01-03 9 views
2

私はJuliaと遊んでいました。確率分布の尖度を計算する関数がJuliaとMATLABの間で異なって実装されていることを発見しました。ジュリアはJuliaの尖度関数

、実行します。MATLABで

using Distributions 
dist = Beta(3, 5) 
x = rand(dist, 10000) 
kurtosis(x) #gives a value approximately around -0.42 

は行います

x = betarnd(3, 5, [1, 10000]); 
kurtosis(x) %gives something approximately around 2.60 

ここで何が起こっていますか? 2つの言語の間で尖度が異なるのはなぜですか?

+5

正規分布の尖度は3です。したがって、3はしばしば計算された尖度から減算されますが、しばしば*余剰尖度*と呼ばれます。私の推測では、ジュリアは余分な尖度を計算しています。 –

+1

@DanGetzあなたは正しいです、[Juliaのドキュメント](http://distributionsjl.readthedocs.io/en/latest/univariate.html#kurtosis) – excaza

+3

MATLABの[kurtosis]に関するドキュメント(http://mathworks.com/ help/stats/kurtosis.html)は正確に何が計算されるかを示しています。 – Adriaan

答えて

4

としては、ここで説明:http://www.itl.nist.gov/div898/handbook/eda/section3/eda35b.htm

我々は、多くの場合、過剰尖度(尖度 - 3)を使用して正規分布の(過剰)尖度がゼロになるようにします。 distributions.jl docsに示されているように、それはジュリアのkurtosis(x)によって使用されているものです。

Matlabは余分な数値を使用しません(docsにはこの潜在的な問題が記載されています)。