如何在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)
输出:
检验统计量为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)
输出:
检验统计量为2.073。这个值可以与每个显著性水平所对应的每个临界值进行比较,以检查测试结果是否显著。
:
- α=0.01的临界值等于1.021。因为这个测试统计量(0.18)不大于这个临界值,所以测试结果不能说在0.01的显著性水平上是显著的。
- α=0.025的临界值等于0.858。因为这个测试统计量(0.18)不大于这个临界值,所以测试结果不能说在0.025的显著性水平上是显著的。
由于检验结果在任何显著性水平上都不显著,这意味着我们不能拒绝这个检验的无效假设。因此,我们没有足够的证据来声称给定的数据不是正态分布。