如何在Python中进行Grubbs测试
在这篇文章中,我们将讨论在Python编程语言中执行Grubbs测试的不同方法。
格鲁布斯检验也被称为最大归一化残差检验或极端求和偏差检验,是用于检测假定来自正态分布群体的单变量数据集中的异常值的检验。这个测试是针对假设而定义的。
- Ho:数据集中没有异常值
- Ha:数据库中正好有一个加油员。
方法1:进行两边的Grubbs’测试
在这个方法中,为了进行grubb测试,用户需要调用outlier_utils包中的smirnov_grubbs.test()函数,并将所需的数据作为参数传递。
语法: smirnov_grubbs.test(data, alpha)
参数:
- data: 一个数据值的数字向量
- alpha: 检验要使用的显著性水平。
示例:
在这个例子中,我们正在进行双侧Grubbs测试,它将使用python编程语言中的smirnov_grubbs.test()函数检测数据集两端的异常值。
import numpy as np
from outliers import smirnov_grubbs as grubbs
# define data
data = np.array([20, 21, 26, 24, 29, 22,
21, 50, 28, 27])
# perform Grubbs' test
grubbs.test(data, alpha=.05)
输出:
array([20, 21, 26, 24, 29, 22, 21, 28, 27])
方法2:进行单侧格鲁布斯试验
在这种方法中,为了得到单边grubb测试,用户需要调用grubbs.min_test()函数来得到给定数据集的最小离群值,或者调用grubbs.max_test()来得到给定数据集的最大离群值。
语法:
grubbs.min_test(data, alpha)
grubbs.max_test(data, alpha)
示例 1:
在这个例子中,我们将使用grubbs.min_test()函数对给定的数据在python编程语言中进行单边Grubbs’测试。
import numpy as np
from outliers import smirnov_grubbs as grubbs
# define data
data = np.array([20, 21, 26, 24, 29,
22, 21, 50, 28, 27, 5])
print("Data after performing min one-side grubb's test: ")
# perform min Grubbs' test
grubbs.min_test(data, alpha=.05)
输出:
Data after performing min one-side grubb's test:
array([20, 21, 26, 24, 29, 22, 21, 50, 28, 27, 5])
示例 2:
在这个例子中,我们将使用grubbs.max_test()函数对给定的数据用python编程语言进行单边Grubbs’测试。
import numpy as np
from outliers import smirnov_grubbs as grubbs
# define data
data = np.array([20, 21, 26, 24, 29, 22,
21, 50, 28, 27, 5])
print("Data after performing min one-side grubb's test: ")
# perform max Grubbs' test
grubbs.max_test(data, alpha=.05)
输出:
Data after performing min one-side grubb's test:
array([20, 21, 26, 24, 29, 22, 21, 28, 27, 5])
方法3:使用格里布检验法提取离群点的指数
在这种方法中,用户需要按照下面的语法来获得给定数据中存在离群点的索引。
grubbs.max_test_indices()函数:该函数返回阵列中存在的离群点的索引。
语法: grubbs.max_test_indices(data,alpha)
import numpy as np
from outliers import smirnov_grubbs as grubbs
# define data
data = np.array([20, 21, 26, 24, 29, 22,
21, 50, 28, 27, 5])
grubbs.max_test_indices(data, alpha=.05)
输出:
[7]
方法4:使用Grubb测试提取离群点的值
在这种方法中,用户需要按照下面的语法来获得给定数据中存在离群点的数值。
grubbs.max_test_outlines()函数:该函数返回阵列中存在的离群值。
grubbs.max_test_outlines(data,alpfa)
import numpy as np
from outliers import smirnov_grubbs as grubbs
# define data
data = np.array([20, 21, 26, 24, 29, 22,
21, 50, 28, 27, 5])
grubbs.max_test_outliers(data, alpha=.05)
输出:
[50]