为什么 Jarque-Bera Test 正确的值只返回 0?

Why is Jarque-Bera Test right value only returning 0?

我测试 jarque_bera 的代码如下:

for x in data.columns.values:
    print(x, "-", stats.jarque_bera(data[x]))

结果是

这是否意味着我的数据框的所有列都没有标准化?

jarque_bera 检验正在检验原假设,即您的值的分布具有与正态分布相同的偏度和峰度。

发生的情况是,对于每个测试,您的测试统计量都足够大,以至于 p 值非常小,因此 python 仅显示 0。Scipy 使用 cdf 来计算仅下降到 e-16 的 p 值。使用 sf 可以给你小数,直到它下溢。

from scipy import stats

stats.chi2.cdf(1154.1959249402914, 2)  
#1.0

# scipy reported p-value
1 - stats.chi2.cdf(1154.1959249402914, 2)
#0.0

# This function gives us decimals
stats.chi2.sf(1154.1959249402914, 2)
#2.3417438136962163e-251