📜  如何在Python中执行 Shapiro-Wilk 测试(1)

📅  最后修改于: 2023-12-03 14:52:50.398000             🧑  作者: Mango

如何在Python中执行 Shapiro-Wilk 测试

Shapiro-Wilk测试是一种用于检验一个随机样本是否来自于某一种正态分布的统计检验。在Python中,可以使用SciPy库中的shapiro函数来执行Shapiro-Wilk测试。

安装SciPy库

如果你还没有安装SciPy库,你可以使用以下命令来安装:

!pip install scipy
使用shapiro函数

shapiro函数的用法如下:

from scipy.stats import shapiro

stat, p = shapiro(data)

其中,data是你要测试的样本数据。shapiro函数将返回两个值:统计量(stat)和p值(p)。根据p值是否小于明确的显著水平(例如0.05)来判断样本是否来自于正态分布。

以下是一个完整的演示代码,其中的样本数据来自于正态分布:

from scipy.stats import shapiro
from numpy.random import seed
from numpy.random import randn

# 设定随机种子
seed(1)

# 生成样本数据,来自于正态分布
data = 5 * randn(100) + 50

# 执行Shapiro-Wilk测试
stat, p = shapiro(data)

# 输出结果
print('Statistic=%.3f, p-value=%.3f' % (stat, p))

# 判断是否来自于正态分布
alpha = 0.05
if p > alpha:
    print('样本看起来来自于正态分布(不能拒绝H0假设)')
else:
    print('样本看起来不是来自于正态分布(可以拒绝H0假设)')

输出结果如下:

Statistic=0.989, p-value=0.748
样本看起来来自于正态分布(不能拒绝H0假设)

在这个例子中,p值大于0.05,因此我们不能拒绝H0假设,即这个样本看起来来自于正态分布。