如何在Python中执行 Anderson-Darling 测试
Anderson-Darling test:它的全称是Anderson-Darling Goodness of Fit Test (AD-Test),用来衡量我们的数据与指定分布的拟合程度。大多数情况下,此测试用于确定数据是否服从正态分布。
安装 scipy 和 numpy 库的语法:
pip3 install scipy numpy
Scipy 是一个用于科学计算的Python库。它提供了 anderson()函数来进行 Anderson-Darling 测试。
安德森()函数:
句法:
anderson(arr, dist=’norm’)
参数:
arr: It is an array of sample data
dist: It specifies the type of distribution to test against. By Default it is set to ‘norm’ but we can also use ‘expon’ or ‘logistic.’
示例 1:
Python3
# 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)
Python3
# 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)
输出:
检验统计量为 0.18。可以将该值与每个显着性水平对应的每个临界值进行比较,以检查测试结果是否显着。
例如:
- α = 0.01 的临界值等于 1.021。因为这个检验统计量 (0.18) 不大于这个临界值,所以不能说检验结果在 0.01 的显着性水平上是显着的。
- α = 0.025 的临界值等于 0.858。因为这个检验统计量 (0.18) 不大于这个临界值,所以不能说检验结果在 0.025 的显着性水平上是显着的。
由于检验结果在任何显着性水平上都不显着,这意味着我们不能拒绝该检验的原假设。因此,我们没有足够的证据来声称给定的数据不是正态分布的。
示例 2:
现在让我们考虑对 0 到 20 之间的 100 个随机整数样本进行 Anderson-Darling 检验。
Python3
# 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)
输出:
检验统计量为 2.073。可以将该值与每个显着性水平对应的每个临界值进行比较,以检查测试结果是否显着。
例如:
- α = 0.01 的临界值等于 1.021。因为这个检验统计量 (0.18) 不大于这个临界值,所以不能说检验结果在 0.01 的显着性水平上是显着的。
- α = 0.025 的临界值等于 0.858。因为这个检验统计量 (0.18) 不大于这个临界值,所以不能说检验结果在 0.025 的显着性水平上是显着的。
由于检验结果在任何显着性水平上都不显着,这意味着我们不能拒绝该检验的原假设。因此,我们没有足够的证据来声称给定的数据不是正态分布的。