如何在Python中进行Anderson-Darling测试

如何在Python中进行Anderson-Darling测试

安德森-达林检验:其全称是安德森-达林拟合度检验(AD-Test),用于衡量我们的数据与指定分布的拟合程度。大多数情况下,这个测试是用来寻找数据是否遵循正态分布的。

安装scipy和numpy库的语法:

pip3 install scipy numpy

Scipy是一个用于科学计算的python库。它提供了anderson()函数来进行Anderson-Darling测试。

anderson() 函数:

语法:

anderson(arr, dist=’norm’)

参数:

  • arr: 它是一个样本数据的数组。

  • dist:它指定了要测试的分布类型。默认情况下,它被设置为 “规范”,但我们也可以使用 “指数 “或 “逻辑”。

示例 1:

# Python program to conduct Anderson-Darling Test
  
# Importing libraries
import numpy as np
from scipy.stats import anderson
  
# Creating data
np.random.seed(0)
data = np.random.normal(size=100)
  
# Conduct Anderson-Darling Test 
anderson(data)

输出:

如何在Python中进行Anderson-Darling测试

检验统计量为0.18。这个值可以与每个显著性水平所对应的每个临界值进行比较,以检查测试结果是否显著。

例如:

  • α=0.01的临界值等于1.021。因为这个测试统计量(0.18)不大于这个临界值,所以测试结果不能说在0.01的显著性水平上是显著的。
  • α=0.025的临界值等于0.858。因为这个测试统计量(0.18)不大于这个临界值,所以测试结果不能说在0.025的显著性水平上是显著的。

由于检验结果在任何显著性水平上都不显著,这意味着我们不能拒绝这个检验的无效假设。因此,我们没有足够的证据来声称给定的数据不是正态分布。

示例 2:

现在让我们考虑对100个0到20之间的随机整数样本进行安德森-达林测试。

# Python program to conduct Anderson-Darling Test
  
# Importing libraries
import numpy as np
from scipy.stats import anderson
  
# Creating data
np.random.seed(0)
data = np.random.randint(0, 20, size=100)
  
# Conduct Anderson-Darling Test
anderson(data)

输出:

如何在Python中进行Anderson-Darling测试

检验统计量为2.073。这个值可以与每个显著性水平所对应的每个临界值进行比较,以检查测试结果是否显著。

:

  • α=0.01的临界值等于1.021。因为这个测试统计量(0.18)不大于这个临界值,所以测试结果不能说在0.01的显著性水平上是显著的。
  • α=0.025的临界值等于0.858。因为这个测试统计量(0.18)不大于这个临界值,所以测试结果不能说在0.025的显著性水平上是显著的。

由于检验结果在任何显著性水平上都不显著,这意味着我们不能拒绝这个检验的无效假设。因此,我们没有足够的证据来声称给定的数据不是正态分布。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

Numpy教程