如何在 python 中执行 jarque-bera 测试
Jarque-Bera 检验是一种拟合优度检验,用于确定样本数据是否表现出与正态分布相对应的偏度和峰度。
Jarque-Bera 检验统计量始终为正数,离零越远,就越有证据表明样本数据不服从正态分布。
本教程介绍如何在 Python 中执行 Jarque-Bera 测试。
如何在 Python 中执行 Jarque-Bera 测试
要在 Python 中执行 Jarque-Bera 测试,您可以使用 Scipy 库中的jarque_bera 函数,该函数使用以下语法:
哈尔克_贝拉(x)
金子:
- x:观察表
此函数返回检验统计量和相应的 p 值。
实施例1
假设我们对遵循正态分布的 5,000 个值的列表执行 Jarque-Bera 测试:
import numpy as np import scipy.stats as stats #generate array of 5000 values that follows a standard normal distribution np.random.seed(0) data = np.random.normal(0, 1, 5000) #perform Jarque-Bera test stats.jarque_bera(data) (statistic=1.2287, pvalue=0.54098)
检验统计量为1.2287 ,相应的 p 值为0.54098 。由于该 p 值不小于 0.05,因此我们无法拒绝原假设。我们没有足够的证据表明这些数据表现出与正态分布显着不同的偏度和峰度。
这个结果应该不足为奇,因为我们生成的数据由 5,000 个遵循正态分布的随机变量组成。
实施例2
现在假设我们对遵循均匀分布的 5,000 个值的列表执行 Jarque-Bera 测试:
import numpy as np import scipy.stats as stats #generate array of 5000 values that follows a uniform distribution np.random.seed(0) data = np.random.uniform(0, 1, 5000) #perform Jarque-Bera test stats.jarque_bera(data) (statistic=300.1043, pvalue=0.0)
检验统计量为300.1043 ,相应的 p 值为0.0 。由于该 p 值小于 0.05,因此我们拒绝原假设。因此,我们有足够的证据证明这些数据表现出与正态分布显着不同的偏度和峰度。
这个结果也应该不足为奇,因为我们生成的数据由 5,000 个服从均匀分布的随机变量组成,其偏度和峰度应该与正态分布非常不同。
何时使用 Jarque-Bera 测试
Jarque-Bera 检验通常用于大型数据集 (n > 2,000),其中其他正态性检验(例如 Shapiro-Wilk 检验)不可靠。
这是在执行分析之前使用的适当测试,其中假设数据集遵循正态分布。 Jarque-Bera 检验可以告诉您这个假设是否满足。