📅  最后修改于: 2023-12-03 15:19:26.365000             🧑  作者: Mango
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值比显著性水平大,因此不能拒绝数据来自正态分布的假设。