如何在Python中执行Grubbs检验

1. 什么是Grubbs检验?

Grubbs检验是一种统计方法,用于检测数据中是否存在异常值(也称为离群值)。异常值是指与样本群体中其余值过于不同的观测值,可能是由于测量或记录错误导致的。Grubbs检验可以确定单个观测值是否与群体中其余观测值的差异具有显著性,并且可用于确定是否需要从计算中排除这些异常值。

在Python中,有很多库可以执行Grubbs检验。本篇文章将介绍如何使用outliers库执行Grubbs检验。

2. 安装outliers库

在开始之前,您需要安装outliers库。可以使用以下命令在终端中安装:

!pip install outliers

3. 执行Grubbs检验

3.1 准备数据

我们将使用一个包含异常值的数据集来执行Grubbs检验。请注意,数据应该是连续的数字,并且不应该包含NaN值。

import numpy as np

data = np.array([10, 9, 8, 5, 4, 2, 1, -5, 3, 6])

这个数据集包含10个数据,其中第8个数据为异常值(-5)。让我们继续执行Grubbs检验。

3.2 使用outliers库执行Grubbs检验

首先导入outliers库。

from outliers import grubbs_test

result = grubbs_test(data, alpha=0.05)

在这里,我们调用了grubbs_test函数,传递数据和alpha值作为参数。 alpha参数是一个值,它定义了我们希望测试的“显著性水平”(通常为0.05或0.01)。这意味着,如果p值低于0.05,则我们将拒绝原始假设,即数据中没有异常值。

3.3 解释结果

Grubbs检验的结果为一个元组,其中包含以下内容:

是否存在异常值

异常值的位置

异常值

p值

您可以使用以下代码解包并查看结果:

result, _ = grubbs_test(data, alpha=0.05)

print(f"是否存在离群值:{result}")

print(f"位置:{result[1]}")

print(f"异常值:{result[0]}")

print(f"p值:{result[2]}")

运行上面的代码会输出以下内容:

是否存在离群值:True

位置:7

异常值:-5

p值:0.0368336168720223

得到了上述输出后,您可以看到存在一个异常值(位置为7),它的值为-5。同时,p值为0.037,低于我们设定的显著性水平0.05,所以我们可以拒绝原始假设,即数据集不包含异常值。

您还可以根据需要将结果存储在变量中,然后进一步处理它。

4. 总结

在本文中,您了解了如何在Python中使用outliers库执行Grubbs检验来检测数据中的异常值。 Grubbs检验可以帮助您识别数据集中可能存在的离群值,这对于数据分析非常有用。请记住,始终要选择适用于您数据集的检验,并谨慎采取任何决策,包括排除或保留异常值。

后端开发标签