📜  如何在Python中执行 Anderson-Darling 测试(1)

📅  最后修改于: 2023-12-03 15:08:57.275000             🧑  作者: Mango

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

简介

Anderson-Darling测试是检验一组数据是否来自某一特定分布的近似方法。 在许多情况下,它可以作为Kolmogorov-Smirnov测试的等效方法。 它使用于连续分布,并且相较于Kolmogorov-Smirnov测试更加关注分布的尾部。在本篇文章中,我们将会探究如何在Python中执行Anderson-Darling测试。

前置条件

在继续之前,我们需要安装相关模块。 打开你的终端并输入以下命令:

pip install scipy numpy pandas

在安装期间,我们还应该学习一些重要的概念。

  • 零假设(H0) : 数据来自与特定分布
  • 备择假设(H1) : 数据未来自于特定分布
  • 临界值(alpha) : 一些给定的值,如果我们的评估结果大于它,模型将拒绝零假设
让我们开始吧

让我们先从一些基本的步骤开始。 我们将首先生成一个正态分布的随机数。

import numpy as np

data = np.random.normal(0, 1, 1000)
母分布已知

如果我们已经知道母分布,则我们可以使用scipy.stats.anderson方法执行Anderson-Darling测试。

from scipy.stats import anderson

result = anderson(data, 'norm') # 'norm'表示我们对于母分布有先验知识
print('统计量: %.3f' % result.statistic)
p = 0
for i in range(len(result.critical_values)):
	alpha = (i+1)/len(result.critical_values)
	if result.statistic < result.critical_values[i]:
		print("Not Significant at alpha=%.2f%% level" % (alpha*100))
	else:
		print("Significant at alpha=%.2f%% level" % (alpha*100))

我们在上面的代码段中使用result.critical_values来获得Anderson-Darling的临界值。 在这个例子中,结果要么被拒绝要么被接受。

母分布未知

如果我们不知道母分布,则我们必须使用采样的方法来推断样本所样本的分布。

from scipy.stats import kstest

kstest_result = kstest(data, 'norm')
print("K-S test result:", kstest_result)
结论

这篇文章给出了Anderson-Darling Test的基本介绍,包括如何在Python中执行测试。 它可以用来验证你的数据是否与特定分布相符。此外,我们还介绍了一些相关的基本概念和假设。 最后,我们给出了两个不同示例的代码,其中一个要求提供母分布,另一个则使用样本数据推断母分布。