kurtosis

语法

kurtosis(X, [biased=true])

参数

X 是一个向量、矩阵或表。

biased 是一个布尔值,表示是否为有偏估计。默认值为 true,表示为有偏估计。

详情

计算 X 的峰度。kurtosis 函数在计算时会忽略 NULL 值。

若 biased=true,表示结果为有偏估计,计算公式为:

\(k_1 = \dfrac{\displaystyle{\frac{1}{n}} {\sum\limits_{i = 1}^{n} (x_i - \bar{x})^4}} {\left(\displaystyle{\frac{1}{n}} {\sum\limits_{i = 1}^{n} (x_i - \bar{x})^2}\right)^2}\)

若 biased=false,表示结果为无偏估计,计算公式为:

\(k_0 = \displaystyle{\frac{n-1}{(n-2)(n-3)}} ((n+1) k_1 - 3(n-1))+ 3\)

X 为矩阵,计算每列的峰度,返回一个向量。

X 为表,计算每列的峰度,返回一个表。

kurtosis 函数也支持校正偏差查询分区表和分布式表。

DolphinDB 的 kurtosis 默认情况(当 biased=true 时)存在偏差,而 pandas 和 Excel 的 kurt 默认为无偏估计,且减去了正态分布的峰度3。参考下面例子,可以使 DolphinDB 的峰度计算结果与 pandas 和 excel 的结果保持一致:

python
$ m = [1111, 323, 43, 51]
$ df = pandas.DataFrame(m)
$ y = df.kurt()
2.504252

dolphindb
$ m=matrix(1111 323 43 51)
$ kurtosis(m, false) - 3
2.5043

例子

下面的例子使用了 norm 函数生成数据,每次生成的数据都会有细微差别,因此每次计算的结果会有所偏差。

$ x=norm(0, 1, 1000000);
$ kurtosis(x);
3.000249

$ x[0]=100;
$ kurtosis(x);
100.626722

$ m=matrix(1..10, 1 2 3 4 5 6 7 8 9 100);
$ m;

#0

#1

1

1

2

2

3

3

4

4

5

5

6

6

7

7

8

8

9

9

10

100

$ kurtosis(m);
[1.775757575757576,7.997552566718839]