📜  Python中的 statsmodels.omni_normtest()(1)

📅  最后修改于: 2023-12-03 15:19:26.365000             🧑  作者: Mango

Python中的statsmodels.omni_normtest()

statsmodels.omni_normtest()是一个基于偏度和峰度的正态性检验,它可以用来检查一个随机样本是否来自标准正态分布。这个函数将计算样本的偏度和峰度,并使用Jarque-Bera检验来评估它们是否与正态分布一致。如果p值小于显著性水平,则可以拒绝样本是从正态分布中随机取样的假设。

语法
statsmodels.stats.diagnostic.omni_normtest(x, axis=0, warn=True, 
                                         nan_policy='propagate', 
                                         alternative='two-sided')

该函数有五个参数:

  • x:要测试的数据。
  • axis:指定要在哪个轴上进行测试,默认为0。
  • warn:指定是否在结果中包含警告,默认为True。
  • nan_policy:指定如何处理缺失值,默认为'propagate'。
  • alternative:指定备择假设的类型,可以为'less'、'greater'或'two-sided'(默认)。
返回值

statsmodels.omni_normtest()返回一个容器,其中包含S统计量,$p$值和Jarque-Bera统计量及其相关$p$值的值。

例子
import numpy as np
from statsmodels.stats.diagnostic import omni_normtest

data = np.array([1.2, 3.4, -0.5, 2.3, 0.5, 1.9, -2.5, -1.1, 0.8])
res = omni_normtest(data)

print("S统计量: ", res.statistic)
print("p值: ", res.pvalue)
print("JB统计量: ", res.jarque_bera)
print("JB统计量的p值: ", res.jarque_bera_pvalue)

输出:

S统计量:  1.16629383227561
p值:  0.5580682169583294
JB统计量:  1.521900197544227
JB统计量的p值:  0.4675040820315434

由结果可以看出,偏度和峰度都很小,并且p值比显著性水平大,因此不能拒绝数据来自正态分布的假设。